Ласло Краус |
Програмски језици (ЕГ) Испит 13. 2. 2005. |
---|
Саставити на језику C потпрограм за израчунаваље средње вредности оних елемената низа реалних бројева који се не појављују и задатом другом низу.
Саставити на језику C главни програм који прочита два низа реалних бројева, позива горњи потпрограм, испише добијени резултат и понавља претходне кораке све док за дужину једног од низова не прочита недозвољену вредност.
Саставити на језику C главни програм којим се у правоугаоној матрице целих бројева подматрица са задатим индексима горњег левог угла замени садржајем друге правоугаоне матрице. Претпоставити да су параметри уметања исправни, тј. да уметнута матрица не „вири” изван одредишне матрице. Подаци о почетним матрицама се налазе у секвенцијалној текстуалној датотеци. Индексе уметања читати преко са улаза. Резултат треба уписати у другу текстуалну секвенцијалну датотеку.
Саставити на језику FORTRAN потпрограм којим се од низа реалних бројева A = (a1, a2, …, a2n) и образују низови B = (а1, а3, …, а2n−1) и C = (а2, а4, …, а2n).
Саставити на језику FORTRAN главни програм који прочита n и низ од 2n елемената, позива горњи потпрограм, испише добијене резултате и понавља претходне кораке све док за n не прочита недозвољену вредност.
#include <stdio.h> #include <math.h> #define N 50 double srvr (float a[], int m, float b[], int n) { float s=0; int i, j, k=0; for (i=0; i<m; i++) { for (j=0; j<n && a[i]!=b[j]; j++); if (j == n) { s += a[i]; k++; } } if (k) s /= k; return s; } main () { float a[N], n[N]; int i, m, n; while (1) { printf ("m? "); scanf ("%d", &m); if (m<=0 || m>N) break; printf ("A? "); for (i=0; i<m; scanf("%f",&a[i++])); printf ("n? "); scanf ("%d", &n); if (n<=0 || n>N) break; printf ("B? "); for (i=0; i<n; scanf("%f",&b[i++])); printf("srvr= %f\n\n",srvr(a,m,b,n)); } }
#include <stdio.h> #define N 30 main () { int i, j, m, n, a[N][N], s, v, b[N][N], p, q; 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++])); fscanf (dat, "%d%d", &s, &v); for (i=0; i<s; i++) for (j=0; j<v; fscanf(dat,"%d",b[i][j++])); fclose (dat); printf ("Gornji levi ugao? "); scanf ("%d%d", &p, &q); for (i=0; i<v; i++) for (j=0; j<s; j++) a[p+i][q+j] = b[i][j]; 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 Rastavi (A, n, B, C, m) REAL A(2*n), B(n), C(n) m = n; DO i = 1, m B(i) = A(2*i-1) C(i) = A(2*i ) END DO END PROGRAM Rastavljanje PARAMETER (nmax = 20) REAL A(2*nmax), B(nmax), C(nmax) 10 CONTINUE PRINT *, 'n?' READ *, n IF(m.LE.0 .OR. m.GT.nmax)GO TO 99 PRINT *, 'A?' READ *, (A(i), i=1,2*n) CALL Rastavi (A, n, B, C, m) PRINT *, 'B=' PRINT *, (B(i), i=1,m) PRINT *, 'C=' PRINT *, (C(i), i=1,m) GO TO 10 99 CONTINUE END(⇒ почетак)
Copyright © 2005, Laslo Kraus
Последња ревизија: 10.3.2005.