Ласло Краус |
Програмски језици (ЕГ) Испит 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.