![]() Ласло Краус |
Програмирање II Први колоквијум 15. 12. 2003 |
---|
Саставити на језику C функцију за израчунавање вредности следеће функције:
Саставити на језику C главни програм за табелирање наведене функције на главном излазу рачунара за све вредности xmin≤x≤xmax са кораком Δx. Потребне податке читати преко главног улаза рачунара.
Саставити на језику C пакет функција који за статичке низове реалних бројева садржи функције за налажење места првог појављивања највећег елемента низа, одређивање броја појављивања највећег елемента у низу и изостављање сваког појављивања највећег елемента почетног низа.
Саставити на језику C главни програм који прочита низ, испише вредност и број појављивања највећег елемента, изостави наjвеће елементе из низа, испише добијени резултат и понавља претходне кораке све док за дужину низа не прочита недозвољену вредност.
Време се представља у облику структуре која садржи целобројне дане, сате, минуте и секунде. Саставити на језику C функцију за упоређивање два времена (резултат је <0, =0 или >0).
Саставити на језику C главни програм који прочита динамички низ времена преко главног улаза, уреди их по неопадајућем редоследу, испише на главном излазу добијени резултат и понавља претходне кораке све док за дужину низа не прочита недозвољену вредност.
#include <stdio.h> float f (float x, float a[], int n) { int i; float p = 1, r = a[0]; for (i=1; i<=n; i++) { p *= - x / i; r += a[i] * p; } return r; } main () { int n, i; float x, xmin, xmax, dx, a[21]; printf ("n? "); scanf ("%d", &n); printf ("A? "); for (i=0; i<=n; scanf("%f",&a[i++])); printf ("xmin, xmax, dx? "); scanf ("%f%f%f", &xmin, &xmax, &dx); printf ("\n x f(x)\n" "================\n"); for (x=xmin; x<=xmax; x+=dx) printf ("%6.2f10.6f\n", x, f(x,a,n)); }
/* paket.h */ int max (float a[], int n); int broj (float a[], int n); void izost (float a[], int *n); /* paket.c */ #include "paket.h" int max (float a[], int n) { int m=0, i; for (i=1; i<n; i++) if (a[i] > a[m]) m = i; return m; } int broj (float a[], int n) { int k=0; float m=a[max(a,n)]; for (i=0; i<n; i++) if (a[i] == m) k++; return k; } void izost (float a[], int *n) { int i, j; float m=a[max(a,n)]; for (i=j=0; i<*n; i++) if (a[i] != m) a[j++] = a[i]; *n = j; } /* test.c */ #include "paket.h" #include <stdio.h> #define N 50 void main () { float a[N]; int n, i; while (1) { printf ("n? "); scanf ("%d", &n); if (n<=0 || n>N) break; printf ("A? "); for (i=0; i<n; scanf("%f",&a[i++])); printf ("m= %f\n", a[max(a,n)]); printf ("k= %d\n", broj(a,n)); izost (a, &n); printf ("A= "); for (i=0; i<n; printf("%f ",a[i++])); printf ("\n\n"); } }
typedef struct { short dan, sat, min, sek; } Vreme; int uporedi (Vreme v1, Vreme v2) { return (v1.dan!=v2.dan) ? v1.dan - v2.dan : (v1.sat!=v2.sat) ? v1.sat - v2.sat : (v1.min!=v2.min) ? v1.min - v2.min : v1.sek - v2.sek; } #include <stdio.h> #include <stdlib.h> void main () { while (1) { Vreme *a; int i, n; printf ("\nn? "); scanf ("%d", &n); if (n < 0) break; a = malloc (n * sizeof (Vreme)); for (i=0; i<n; i++) { printf ("vreme[%d]? ", i) scanf("%hd%hd%hd%hd", &a[i].dan, &a[i].sat, &a[i].min, &a[i].sek); } for (i=0; i<n-1; i++) for (j=i+1; j<n; j++) if (uporedi(a[j],a[i])<0) { Vreme v = a[i]; a[i] = a[j]; a[j] = v; } printf ("\nUredjeno:\n\n") for (i=0; i<n; i++) printf ("(%d %d:%d:%d)\n", a[i].dan, a[i].sat, a[i].min, a[i].sek); free (a); } }(садржај)
Copyright © 2004, Laslo Kraus
Последња ревизија: 27.1.2004.