Ласло Краус |
Програмски језици (ЕГ) Испит 13. 9. 2003. |
|---|
Саставити на језику C потпрограм за налажење уније два уређена скупа реалних бројева који су задати у облику два уређена низа. Резултат, такође, треба да је уређен скуп.
Саставити на језику C главни програм који прочита два уређена скупа реалних бројева, позове горњи потпрограм, испише добијени резултат и понавља претходне кораке све док за величину једног од скупова не прочита недозвољену вредност.
Саставити на језику C главни програм за цикличко померање колона правоугаоне матрице целих бројева за једно место удесно (прва колона се премешта у другу колону, друга у трећу, ..., последња у прву). Подаци о почетној матрици се налазе у секвенцијалној текстуалној датотеци (димензије у првом реду, иза тога свака врста у засебном реду. Резултат треба уписати у другу секвенцијалну датотеку. Имена датотека читати преко главног улаза рачунара.
Саставити на језику FORTRAN потпрограм за налжење места првог и последњег појављивања најмањег елемента у датом неуређеном низу реалних бројева.
Саставити на језику FORTRAN главни програм који прочита низ реалних бројева, позове горњи потпрограм, испише добијене резултате и понавља претходне кораке све док за дужину низа не прочита недозвољену вредност.
#include <stdio.h>
#define N 100
void unija (float a[], int na, float b[], int nb, float c[], int *nc) {
int ia=0, ib=0, ic=0;
while (ia<na && ib<nb)
c[ic++] = (a[ia]<b[ib]) ? a[ia++] :
(a[ia]>b[ib]) ? b[ib++] :
a[ib++,ia++];
while (ia < na) c[ic++] = a[ia++];
while (ib < nb) c[ic++] = b[ib++];
*nc = ic;
}
main () {
float a[N], b[N], c[N];
int na, nb, nc, i;
while (1) {
printf ("na? "); scanf ("%d", &na);
if (na<=0 || na>N) break;
printf ("A? ");
for (i=0; i<=na; scanf("%f",&a[i++]));
printf ("nb? "); scanf ("%d", &nb);
if (nb<=0 || nb>N) break;
printf ("B? ");
for (i=0; i<=nb; scanf("%f",&b[i++]));
unija (a, na, b, nb, c, &nc);
printf ("C=");
for (i=0; i<nc; printf(" %f",c[i++]));
printf ("\n\n");
}
}
#include <stdio.h>
#define N 50
main () {
int a[N][N], m, n, i, j, b;
FILE *dat;
char ime[31];
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,"%d",&a[i][j++]));
for (i=0; i<m; i++) {
b = a[i][n-1];
for (j=n-1; j>0; j--) a[i][j] = a[i][j-1];
a[i][0] = b;
}
fclose (dat);
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++]));
fprintf (dat, "\n");
}
fclose (dat);
}
SUBROUTINE Nadji(A, n, p, q)
REAL A(n), min
INTEGER p, q
min = A(1)
p = 1
q = 1
DO i = 2, n
IF (A(i) .lt. min) THEN
min = A(i)
p = i
END IF
IF (A(i) .eq. min) q = i
END DO
END
PROGRAM Nalazenje
PARAMETER (nmax = 20)
REAL A(nmax)
INTEGER p, q
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)
CALL Nadji (A, n, p, q)
PRINT *, 'p=', p, 'q=', q
GO TO 10
99 CONTINUE
END
(⇒ почетак)
Copyright © 2003, Laslo Kraus
Последња ревизија: 12.10.2003.