Ласло Краус |
Програмски језици (ЕГ) Испит 7. 4. 2002. |
---|
Саставити на језику C потпрограм за претварање низа реалних бројева у скуп (изостављањем евентуалних вишеструких вредности).
Саставити на језику C главни програм који прочита низ реалних бројева, позива горњи потпрограм, испише добијени резултат и понавља претходне кораке све док за дужину низа не прочита недозвољену вредност.
Саставити на језику C главни програм којим се највећи елемент правоугаоне целобројне матрице доведе у горњи леви угао међусобном заменом одговарајуће две колоне и одговарајуће две врсте матрице. Подаци о почетној матрици се налазе у секвенцијалној текстуалној датотеци. Резултат треба уписати у другу секвенцијалну текстуалну датотеку.
Саставити на језику FORTRAN потпрограм за измену редоследа елемената (тј. за замену првог са последњим, другог са претпоследњим итд) датог реалног низа бројева.
Саставити на језику FORTRAN главни програм који прочита низ реалних бројева, позива горњи потпрограм, испише добијени резултат и понавља претходне кораке све док за дужину низа не прочита недозвољену вредност.
#include <stdio.h> #define N 50 void skup (float a[], int *n) { int i, j, k; for (i=j=0; i<*n; i++) { for (k=i-1; k>=0; k--) if (a[k]==a[i]) break; if (k < 0) a[j++] = a[i] } *n = j; } main () { float a[N]; int i, n; while (1) { printf ("n? "); scanf ("%d", &n); if (n<=0 || n>N) break; printf ("A? "); for (i=0; i<n; scanf("%f",&a[i++])); skup (a, &n); printf ("A="); for (i=0; i<n; printf(" %f",a[i++])); printf ("\n\n"); } }
#include <stdio.h> #define N 30 main () { int i, j, m, n, a[N][N], max, ii, jj, b; 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++) { b = a[i][0]; a[i][0] = a[i][jj]; a[i][jj] = b; } for (j=0; j<n; j++) { b = a[0][j]; a[0][j] = a[ii][j]; a[ii][j] = b; } 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 Redosled (A, n) REAL A(n) DO I = 1, N/2 b = A(i) A(i) = A(n-i+1) A(n-i+1) = b END DO END PROGRAM RedosledT 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 Redosled (A, n) PRINT *, 'A=' PRINT *, (A(i), i=1,n) GO TO 10 99 CONTINUE END(⇒ почетак)
Copyright © 2002, Laslo Kraus
Последња ревизија: 25.4.2002.