![]() Ласло Краус |
Програмирање II Први колоквијум 24. 4. 2003 |
---|
Саставити на језику C функцију за израчунавање вредности следеће функције:
Саставити на језику C главни програм за табелирање наведене функције на главном излазу рачунара за све вредности xmin≤x≤xmax са кораком Δx. Потребне податке читати преко главног улаза рачунара.
Саставити на језику C пакет функција који за статичке низове реалних бројева садржи функције за читање низа преко главног улаза (вредност функције указује на успех читања), исписивање низа преко главног излаза и уређивање низа по неопадајућем редоследу вредности елемената. Читање низа је неуспешно ако се прочита недозвољена дужина низа.
Саставити на језику C главни програм који, коришћењем функција из горњег пакета, прочита низ, уреди низ, испише низ и понавља претходне кораке све док је читање низа успешно.
Угао се представља у облику структуре која садржи целобројне степене, минуте и секунде. Саставити на језику C функцију за израчунавање збира два угла.
Саставити на језику C главни програм који прочита динамички низ углова преко главног улаза, израчуна њихов збир, испише на главном излазу добијени резултат и понавља претходне кораке све док за дужину низа не прочита недозвољену вредност.
#include <stdio.h> float f (float x, float a[], int n) { int i; float p = 1, q = 0, r = 0; for (i=1; i<=n; i++) { p *= x; q += i; r += (a[n-i] + p) / q; } return r; } main () { int n, i; float x, xmin, xmax, dx, a[20]; 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 */ #define N 50 int citaj (float a[], int *n); void pisi (float a[], int n); void uredi (float a[], int n); /* paket.c */ #include "paket.h" #include <stdio.h> int citaj (float a[], int *m) { int i, n; printf ("n? "); scanf ("%d", &n); if (n<=0 || n>N) return 0; printf ("A? "); *m = n; for (i=0; i<n; scanf("%f",&a[i++])); return 1; } void pisi (float a[], int n) { int i; for (i=0; i<n; printf("%.2f ",a[i++])); putchar ('\n'); } void uredi (float a[], int n) { int i, j; float b; for (i=0; i<n-1; i++) for (j=i+1; j<n; j++) if (a[j] < a[i]) { b = a[i]; a[i] = a[j]; a[j] = b; } } /* glavni.c */ #include "paket.h" void main () { float a[N]; int n; while (citaj(a,&n)) { uredi (a,n); printf ("A= "); pisi (a,n); putchar ('\n'); } }
typedef struct { short step, min, sek; } Ugao; Ugao zbir (Ugao u1, Ugao u2) { u1.sek += u2.sek; if (u1.sek > 59) { u1.sek -= 60; u1.min++; } u1.min += u2.min; if (u1.min > 59) { u1.min -= 60; u1.step++; } u1.step += u2.step; return u1; } #include <stdio.h> #include <stdlib.h> void main () { while (1) { Ugao *a, s={0,0,0}; int i, n; printf ("\n? "); scanf ("%d", &n); if (n < 0) break; a = malloc (n * sizeof (Ugao)); for (i=0; i<n; i++) { printf ("ugao[%d]? ", i) scanf("%hd%hd%hd", &a[i].step, &a[i].min, &a[i].sek); } for (i=0; i<n; s=zbir(s,a[i++]); printf ("zbir= (%d,%d,%d)\n\n", s.step, s.min, s.sek); free (a); } }(садржај)
Copyright © 2003, Laslo Kraus
Последња ревизија: 15.6.2003.