![]() Ласло Краус |
Програмирање - испити Трећи парцијални 24.4.1998 |
---|
Саставити главни програм на језику C за табелирање горњих података за све вредности vmin ≤ v ≤ vmax са кораком Δv и φmin ≤ φ ≤ φmax са кораком Δφ.
Саставити главни програм на језику C који чита појединачне целе бројеве у хексадецималном бројевном систему, врши њихово распакивање бит по бит, поновно паковање и исписивање резултата све док не добија сигнал краја датоеке.
Саставити главни програм на језику C који чита парове низова, налази њихову фузију и исписује добијени резултат све док за дужину једног од низова не прочита негативну вредност.
Саставити главни програм на језику C који прочита заједничку дужину за низ великих позитивних целих бројева, број елемената низа, израчуна збир свих тих бројева у току њиховог читања и испише добијени коначни резултат.
/* koshitac.c */
#include <math.h>
#include <stdio.h>
void koshitac (double v, double fi, double *t, double *d, double *h) {
*t = 2 * v * sin (fi) / 9.8062;
*d = *t * v * cos (fi);
*h = *t * v * sin (fi) / 4;
}
void main () {
double v, vmin, vmax, dv, fi, fimin, fimax, dfi, t, d, h;
printf ("vmin, vmax, dv? ");
scanf ("%lf%lf%lf", &vmin, &vmax, &dv);
printf ("fimin, fimax, dfi? ");
scanf ("%lf%lf%lf",&fimin,&fimax,&dfi);
putchar ('\n');
printf (" v fi t d h\n"
"========================================\n");
for (v=vmin; v<=vamx; v+=dv)
for (fi=fmin; f<=fimax; fi+=dfi) {
koshitac (v, fi, &t, &d, &h);
printf ("%8.2f%8.2f%8.2f%8.2f%8.2f\n", v, fi, t, d, h);
}
}
/* bitovi.h */
typedef unsigned long Ulong;
void raspak (Ulong k, char bin[]);
Ulong pak (const char bin []);
/* bitovi.c */
#include "bitovi.h"
void raspak (Ulong k, char bin[]) {
int i;
for (i=31; i>=0; i--)
{ bin[i] = k & 1; k >>= 1; }
}
Ulong pak (const char bin []) {
int i; Ulong k=0;
for (i=0; i<32; k = k<<1 | bin[i++]);
return k;
}
/* bitovit.c */
#include "bitovi.h"
#include <stdio.h>
void main () {
Ulong k; int i; char bin[32];
for (;;) {
printf ("Heksadecimalni broj? ");
if (scanf ("%lx", &k) == EOF) break;
printf ("Binarni broj: ");
raspak (k, bin);
for (i=0; i<32; i++) {
putchar ('0' + bin[i]);
if (i%4 == 3) putchar (' ');
} putchar ('\n');
printf ("Heksadecimalni broj: %8.8lx\n\n", pak (bin));
}
}
#include <stdio.h>
void fuzija (const int a[], int na,
const int b[], int nb,
int c[], int *nc) {
int ia=0, ib=0, ic=0;
while (ia < na && ib < nb)
c[ic++] = (a[ia]<b[ib]) ? a[ia++] : b[ib++] ;
while (ia < na) c[ic++] = a[ia++];
while (ib < nb) c[ic++] = b[ib++];
*nc = ic;
}
void main () {
int i, a[40], na, b[40], nb, c[80], nc;
while (1) {
printf ("na, nb? "); scanf ("%d%d", &na, &nb);
if (na<0 || nb < 0) break;
printf ("A? "); for(i=0; i<na; scanf("%d", &a[i++]));
printf ("B? "); for(i=0; i<nb; scanf("%d", &b[i++]));
fuzija (a, na, b, nb, c, &nc);
printf ("C:"); for(i=0; i<nc; printf(" %d",c[i++]));
printf ("\n\n");
}
}
#include <stdio.h>
void zbir(char a[], const char b[], int k){
int i, p=0;
for (i=k-1; k>=0; k--) {
a[i] += b[i] + p;
p = a[i] / 10; a[i] %= 10;
}
}
void main () {
int n, k, i, j; char uk[40]={0}, br[40];
printf ("Duzina brojeva? "); scanf ("%d", &k);
printf ("Broj sabiraka? "); scanf ("%f", &n);
for (i=0; i<n; i++) {
printf ("Sledeci sabirak? ");
for (j=0; j<k; scanf("%d",&br[j]));
zbir (uk, br, k);
}
printf ("Zbir: "); for (j=0; j<k; printf("%d",uk[j++]));
putchar ('\n');
}
(садржај)
Copyright © 1998, Laslo Kraus
Последња ревизија: 2.10.1998.