![]() Ласло Краус |
Програмирање - испити Допунски трећи парцијални 22.5.1998 |
---|
Вредност функције треба да означава да ли троугао са задатим страницама уопште постоји.
Саставити главни програм на језику C за табелирање горњих података за све вредности amin ≤ a ≤ amax са кораком Δa, bmin ≤ b ≤ bmax са кораком Δb и cmin ≤ c ≤ cmax са кораком Δc.
Саставити програм на језику C који чита појединачне целе бројеве у окталном бројевном систему, врши њихово распакивање по три бита, поновно паковање и исписивање резултата све док не добија сигнал краја датотеке.
Саставити главни програм на језику C који чита парове скупова, налази њихов пресек и исписује добијени резултат све док за број елемената једног од скупова не прочита негативну вредност.
Саставити главни брограм на језику C који чита цео број n, израчунава n! у облику великог целог броја и исписује добијени резултат све док за n не прочита негативну вредност. Резултате исписивати без водећих нула.
#include <math.h>
#include <stdio.h>
int uglovi (double a, double b, double c,
double *alfa, double *beta, double *gama) {
if (a<b+c && b<c+a && c<a+b) {
*alfa = acos ((b*b+c*c-a*a)/(2*b*c));
*beta = acos ((c*c+a*a-b*b)/(2*c*a));
*gama = acos ((a*a+b*b-c*c)/(2*a*b));
return 1;
} else return 0;
}
void main () {
double a, amin, amax, da, b, bmin, bmax, db, c, cmin, cmax, dc,
alfa, beta, gama;
printf ("amin, amax, da? ");
scanf ("%lf%lf%lf", &amin, &amax, &da);
printf ("bmin, bmax, db? ");
scanf ("%lf%lf%lf", &bmin, &bmax, &db);
printf ("cmin, cmax, dc? ");
scanf ("%lf%lf%lf", &cmin, &cmax, &dc);
putchar ('\n');
printf (" a b c alfa beta gama\n"
"================================================\n");
for (a=amin; a<=amax; a+=da)
for (b=bmin; b<=bmax; b+=db)
for (c=cmin; c<=cmax; c+=dc) {
printf ("%8.2f%8.2f%8.2", a, b, c);
if (uglovi (a, b, c, &alfa, &beta, &gama))
printf ("%8.2f%8.2f%8.2\n", alfa, beta, gama);
else
printf ("\tNije trougao!\n");
}
}
/* oktalni.h */
typedef unsigned long Ulong;
void raspak (Ulong k, char okt[]);
Ulong pak (const char okt []);
/* oktalni.c */
#include "oktalni.h"
void raspak (Ulong k, char okt[]) {
int i;
for (i=10; i>=0; i--)
{ okt[i] = k & 7; k >>= 3; }
}
Ulong pak (const char okt []) {
int i; Ulong k=0;
for (i=0; i<11; k = k<<3 | bin[i++]);
return k;
}
/* oktalnit.c */
#include "oktalni.h"
#include <stdio.h>
void main () {
Ulong k; int i; char okt[11];
for (;;) {
printf ("Oktalni broj? ");
if (scanf ("%lo", &k) == EOF) break;
printf ("Raspakovano: ");
raspak (k, okt);
for (i=0; i<11; i++) {
putchar ('0' + okt[i]);
} putchar ('\n');
printf
("Pakovano: %11.11lx\n\n", pak (okt));
}
}
#include <stdio.h>
void presek (const float a[], int na,
const float b[], int nb,
float c[], int *nc) {
int ia, ib, ic=0;
for (ia=0; ia<na; i++) {
for (ib=0; ib<nb && a[ia]!=b[ib];
ib++);
if (ib < nb) c[ic++] = a[ia];
} *nc = ic;
}
void main () {
int i, a[40], na, b[40], nb, c[40], 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("%f", &a[i++]));
printf ("B? ");
for(i=0; i<nb; scanf("%f", &b[i++]));
presek (a, na, b, nb, c, &nc);
printf ("C:");
for(i=0; i<nc; printf(" %f",c[i++]));
printf ("\n\n");
}
}
#include <stdio.h>
void proizvod(char a[], int k, int b){
int i, p=0;
for (i=k-1; i>=0; i--) {
p = a[i] * b + p;
a[i] = p % 10;
p /= 10;
}
}
void main () {
enum { K = 40 };
int n, i, prva; char fakt[K];
while (1) {
printf ("n ? "); scanf ("%d", &n);
if (n < 0) break;
for (i=0; i<K-1; fakt[i++]=0);
fakt[K-1]=1;
for( i=0; i<n; proizvod(fakt,K,i++));
printf ("n!= "); prva = 1;
for (i=0; i<K; j++) {
if (fakt[i] || !prva || i==K-1)
printf("%d", fakt[i]);
if (fakt[i]) prva = 0;
}
putchar ('\n');
}
}
(садржај)
Copyright © 1998, Laslo Kraus
Последња ревизија: 2.10.1998.