Ласло Краус |
Програмски језици (ЕГ) Испит 2. 3. 2003. |
|---|
Саставити на језику C потпрограм за налажење коефицијената полинома који представља први извод задатог полинома са реалним коефицијентима.
Саставити на језику C главни програм који прочита ред и коефицијенте полинома, позива горњи потпрограм, испише добијени резултат и понавља претходне кораке све док за ред полинома не прочита недозвољену вредност.
Саставити на језику C главни програм којим се врши међусобна замена колоне реалне правоугаоне матрице која садржи најмањи елемент са колоном која садржи највећи елемент. Подаци о почетној матрици се налазе у секвенцијалној текстуалној датотеци (димензије у првом реду, иза тога свака врста у засебном реду). Резултат треба уписати у другу секвенцијалну текстуалну датотеку. Имена датотека читати преко главног улаза рачунара.
Саставити на језику FORTRAN потпрограм за кружно померање елемената низа целих бројева за k места улево (на пример, низ 1 2 3 4 5 кружно померено улево за два места је низ 3 4 5 1 2).
Саставити на језику FORTRAN главни програм који прочита целобројни низ и померај k, позива горњи потпрограм, испише добијени резултат и понавља претходне кораке све док за дужину низа не прочита недозвољену вредност.
#include <stdio.h>
#define N 50
void izvod (float a[], int n, float b[], int *m) {
int i;
for (i=1; i<=n; i++) b[i-1] = i * a[i];
*m = n-1;
}
main () {
float a[N+1], b[N]; int i, n, m;
while (1) {
printf ("n? "); scanf ("%d", &n);
if (n<=0 || n>N) break;
printf ("A? "); for (i=n-1; i>=0; scanf("%f",&a[i--]));
izvod (a, n, b, &m);
printf ("B="); for (i=m-1; i>=0; printf(" %f",b[i--]));
printf ("\n\n");
}
}
#include <stdio.h>
#define N 12
main () {
float a[N][N], b, min, max;
int i, j, m, n, jmin, jmax;
FILE *dat;
char ime[30];
printf ("Ime ulazne datoteke? "); scanf (%s, ime);
dat = fopen (ime, "r");
fscanf (dat, "%d%d", &m, &n);
for (i=0; i<m; i++)
for (j=0; j<n; fscanf(dat,"%f",&a[i][j++]));
fclose (dat);
min = max = a[0][0];
jmin = jmax = 0;
for (i=0; i<m; i++)
for (j=0; j<n; j++)
if (a[i][j] < min) {
min = a[i][j]; jmin = j;
} else if (a[i][j] > max) {
max = a[i][j]; jmax = j;
}
for (i=0; i<m; i++) { b = a[i][jmin]; a[i][jmon] = a[i][jmax]; a[i][jmax] = b; }
printf ("Ime izlazne datoteke? "); scanf (%s, ime);
dat = fopen (ime, "w");
fprintf (dat, "%d %d\n", m, n);
for (i=0; i<m; i++) {
for (j=0; j<n; fscanf(dat,"%f ",a[i][j++]));
fputchar ('\n', dat);
}
fclose (dat);
}
SUBROUTINE Pomeri(A, n, k)
INTEGER A(n), b
DO i = 1, k
b = A(1)
DO j = 1, n-1
A(j) = A(j+1)
END DO
A(n) = 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 © 2003, Laslo Kraus
Последња ревизија: 10.7.2003.