Ласло Краус |
Програмски језици (ЕГ) Испит 11. 10. 2002. |
|---|
Саставити на језику C потпрограм за налажење места првог и последњег појављивања највећег елемента у датом неуређеном низу целих бројева.
Саставити на језику C главни програм који чита прочита низ бројева, позове горњи потпрограм, испише добијене резултате и понавља претходне кораке све док за број елемената низа не прочитра недозвољену вредност.
Саставити на језику C главни програм којим се врши нормирање матрице реалних бројева множећи сваки елемент матрице истим бројем тако да збир апсолутних вредности елемената нормиране матрице буде 1. Подаци о почетној матрици се налазе у секвенцијалној текстуалној датотеци (димензије матрице у првом реду, иза тога свака врста у засебном реду). Резултат треба уписати у другу секвенцијалну текстуалну датотеку. Имена датотека читати преко главног улаза рачунара.
Саставити на језику FORTRAN потпрограм за одређивање бројева елемената у целобројном низу који при дељењу са целим бројем k дају остатке 0, 1, ..., k-1 (резултат је низ од k вредности).
Саставити на језику FORTRAN главни програм који прочита низ целих бројева, прочита број k, позива горњи потпрограм, испише добијени резултат и понавља претходне кораке све док за дужину низа не прочита недозвољену вредност.
#include <stdio.h>
#define N 50
void max (int a[], int n, int *prvo, int *posl) {
int i, m = a[0];
*prvo = *posl = 0;
for (i=1; i<n; i++) {
if (a[i] > m) {m=a[i]; *prvo=i; }
if (a[i] == m) *posl = i;
}
}
void main () {
int a[N], n, i, prvo, posl;
while (1) {
printf ("n,? "); scanf ("%d", &n);
if (n<0 || n>N) break;
printf ("a? ");
for (i=0; i<n; scanf("%d", &s[i++]));
max (a, n, &prvo, &posl);
printf ("prvo, posl= %d %d\n", prvo, posl);
}
}
#include <stdio.h>
#include <math.h>
#define N 30
main () {
int i, j, m, n;
float a[N][N], s;
FILE *dat; char ime[30];
printf ("Ulaz? "); 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);
for (s=i=0; i<m; i++)
for (j=0; j<n; s+=fabs(a[i][j++]));
for (i=0; i<m; i++)
for (j=0; j<n; a[i][j++]/=s);
printf ("Izlaz? "); 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; fprintf(dat,"%d ",a[i][j++]));
fputc ('\n', dat);
}
}
SUBROUTINE Brojanje(A, n, B, k)
INTEGER A(n), B(0:k-1)
DO i = 0, k-1
B(i) = 0
END DO
DO i = 1, n
j = mod (A(i), k)
B(j) = B(j) + 1
END DO
END
PROGRAM BrojanjeT
PARAMETER(nmax = 20, kmax = 15)
INTEGER A(nmax), B(0:kmax-1)
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
Brojanje (A, n, B, k)
PRINT *, 'B='
PRINT *, (B(i), i=0,k-1)
GO TO 10
99 CONTINUE
END
(⇒ почетак)
Copyright © 2003, Laslo Kraus
Последња ревизија: 24.2.2003.