Ласло Краус |
Програмски језици (ЕГ) Испит 11. 9. 2004. |
---|
Саставити на језику C функцију за изостављање свих елемената реалног низа чије вредности одступају мање oд 20% oд аритметичке средине почетног низа.
Саставити на језику C главни програм који прочита низ реалних бројева, позива горњи потпрограм, испише добијени резултат и понавља претходне кораке све док за дужину низа не прочита недозвољену вредност.
Саставити на језику C главни програм којим се најмањи елемент правоугаоне целобројне матрице доведе у доњи десни угао међусобном заменом одговарајуће две колоне и одговарајуће две врсте матрице. Подаци о почетној матрици се налазе у секвенцијалној текстуалној датотеци. Резултат треба уписати у другу текстуалну секвенцијалну датотеку.
Саставити на језику FORTRAN потпрограм за кружно померање елемената низа целих бројева за k места удесно (на пример, низ 1 2 3 4 5 кружно померено удесно за два места је низ 4 5 1 2 3).
Саставити на језику FORTRAN главни програм који прочита целобројни низ и померај k, позива горњи потпрограм, испише добијени резултат и понавља претходне кораке све док за дужину низа не прочита недозвољену вредност.
#include <stdio.h> #include <math.h> #define N 50 void izost (float a[], int *n) { float sum=0; int i,k=0; for (i=0; i<*n; i++) sum+=a[i]; sum /= *n; for (i=0; i<*n; i++) if (fabs(a[i]-s) > 0.2*fabs(sum)) a[k++] = a[i]; *n = k; } 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++])); izost(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], min, 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); min = a[0][0]; ii = jj = 0; for (i=0; i<m; i++) for (j=0; j<n; j++) if (a[i][j] < min) { min=a[i][j]; ii=i; jj=j; } for (i=0; i<m; i++) { b = a[i][n-1]; a[i][n-1] = a[i][jj]; a[i][jj] = b; } for (j=0; j<n; j++) { b = a[m-1][j]; a[m-1][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 Pomeri (A, n, k) INTEGER A(n), b DO i = 1, k b = A(n) DO j = n-1, 1, -1 A(j+1) = A(j) END DO A(1) = b END DO END PROGRAM Pomeranje PARAMETER (nmax = 20) INTEGER 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) PRINT *, 'k?' READ *, k CALL Pomeri (A, n, k) PRINT *, 'A=' PRINT *, (A(i), i=1,n) GO TO 10 99 CONTINUE END(⇒ почетак)
Copyright © 2005, Laslo Kraus
Последња ревизија: 9.2.2004.