Ласло Краус |
Програмски језици (ЕГ) Испит 9. 10. 2004. |
|---|
Саставити на језику C потпрограм за израчунаваље средње вредности оних елемената низа реалних бројева који се појављују и у задатом другом низу.
Саставити на језику C главни програм који прочита два низа реалних бројева, позива горњи потпрограм, испише добијени резултат и понавља претходне кораке све док за дужину једног од низова не прочита недозвољену вредност.
Саставити на језику C главни програм којим се из правоугаоне матрице целих бројева издвоји подматрица задатих димензија са задатим индексима горњег левог угла у почетној матрици. Претпоставити да су параметри издвајања исправни, тј. да нњима одређена подматрица не „вири” изван почетне матрице. Подаци о почетној матрици се налазе у секвенцијалној текстуалној датотеци. Положај и димензије подматрице читати преко главног улаза. Резултат треба уписати у другу текстуалну секвенцијалну датотеку.
Саставити на језику FORTRAN потпрограм којим се од два низа реалних бројева једнаких дужина A = (a1, a2, …, an) и B = (b1, b2, …, bn) образује низ C = (a1, b1, a2, b2, …, an, bn).
Саставити на језику FORTRAN главни програм који прочита два низа, позива горњи потпрограм, испише добијени резултат и понавља претходне кораке све док за дужину низова не прочита недозвољену вредност.
#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], b[N][N], p, q, s, v;
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);
printf ("Gornji levi ugao? ");
scanf ("%d%d", &p, &q);
printf ("Visina i sirina? ");
scanf ("%d%d", &v, &s);
for (i=0; i<v; i++)
for (j=0; j<s; j++) b[i][j] = a[p+i][q+j];
dat = fopen ("izlaz.txt", "w");
fprintf (dat, "%d %d\n", v, s);
for (i=0; i<v; i++) {
for (j=0; j<s; fprintf(dat,"%d ",b[i][j++]));
fputc ('\n', dat);
}
}
SUBROUTINE Slozi (A, B, m, C, n)
REAL A(m), B(m), C(2*m)
DO i = 1, m
C(2*i-1) = A(i)
C(2*i ) = B(i)
END DO
n = m + m
END
PROGRAM Slaganje
PARAMETER (nmax = 20)
REAL A(nmax), B(nmax), C(2*nmax)
10 CONTINUE
PRINT *, 'm?'
READ *, m
IF(m.LE.0 .OR. m.GT.nmax)GO TO 99
PRINT *, 'A?'
READ *, (A(i), i=1,m)
PRINT *, 'B?'
READ *, (B(i), i=1,m)
CALL Slozi (A, B, m, C, n)
PRINT *, 'C='
PRINT *, (C(i), i=1,n)
GO TO 10
99 CONTINUE
END
(⇒ почетак)
Copyright © 2005, Laslo Kraus
Последња ревизија: 9.2.2005.