Ласло Краус |
Програмски језици (ЕГ) Испит 28. 4. 2002. |
---|
Саставити на језику C потпрограм за образовање низа од првих n простих бројева.
Саставити на језику C главни програм који прочита цели број n, позива горњи потпрограм и из добијеног низа испише парове простих бројева који се разликују за два.
Саставити на језику C главни програм којим се из правоугаоне целобројне матрице изостави врста и колона која садржи највећи елемент матрице. Подаци о почетној матрици се налазе у секвенцијалној текстуалној датотеци. Резултат треба уписати у другу секвенцијалну текстуалну датотеку.
Саставити на језику FORTRAN потпрограм за изостављање свих елемената реалног низа чије се вредности налазе изван средње трећине опсега бројева у почетном низу.
Саставити на језику FORTRAN главни програм који прочита низ реалних бројева, позива горњи потпрограм, испише добијени резултат и понавља претходне кораке све док за дужину низа не прочита недозвољену вредност.
#include <stdio.h> #define N 150 void prosti (int p[], int n) { int i, j, k, pr; p[0] = 2; i = 1; for (k=3; i<n; k+=2) { for (pr=1,j=0; pr&&p[j]*p[j]<=k; j++) pr = k % p[j] != 0; if (pr) p[i++] = k; } } main () { int p[N], i, n; printf ("n? "); scanf ("%d", &n); prosti (p, n); for (i=0; i<n-1; i++) if (p[i+1]-p[i] == 2) printf ("%d %d\n", p[i], p[i+1]); }
#include <stdio.h> #define N 30 main () { int i, j, m, n, a[N][N], max, ii, jj; FILE *dat; dat = fopen ("ulaz.txt", "r"); fscanf (dat, "%d%d", &m, &n); for (i=0; i<m; i++) for (j=0; j<n; fscanf(dat,"%d",&a[i][j++])); fclose (dat); max = a[0][0]; ii = jj = 0; for (i=0; i<m; i++) for (j=0; j<n; j++) if (a[i][j]>max) { max=a[i][j]; ii=i; jj=j; } for (i=0; i<m; i++) { for (j=jj; j<n-1; j++) a[i][j] = a[i][j+1]; } n--; for (j=0; j<n; j++) { for (i=ii; i<m-1; i++) a[i][j] = a[i+1][j]; } m--; dat = fopen ("izlaz.txt", "w"); fprintf (dat, "%d %d\n", m, n); for (i=0; i<m; i++) { for (j=0; j<n; fprintf(dat,"%d ",a[i][j++])); fputc ('\n', dat); } }
SUBROUTINE Izostavi (A, n) REAL A(n), min, max min = A(1) max = A(2) DO i = 2, n IF (A(i).lt.min) min=A(i) IF (A(i).gt.max) max=A(i) END DO d = min + (max - min) / 3 g = max - (max - min) / 3 j = 0 DO i = 1, n IF (A(i).ge.d .and. A(i).le.g) THEN j = j + 1 A(j) = A(i) END IF END DO n = j END PROGRAM IzostT PARAMETER (nmax = 20) REAL A(nmax) 10 CONTINUE PRINT *, 'n?' READ *, n IF(n.le.0.or.n.gt.nmax)GO TO 99 PRINT *, 'A?' READ *, (A(i), i=1,n) CALL Izost (A, n) PRINT *, 'A=' PRINT *, (A(i), i=1,n) GO TO 10 99 CONTINUE END(⇒ почетак)
Copyright © 2002, Laslo Kraus
Последња ревизија: 1.7.2002.