![]() Ласло Краус |
Програмирање II Први колоквијум 20. 5. 1999 |
---|
Саставити програм на језику C који прочита низ од n парова координата тачака и врши табелирање одговарајућег Lagrange-овог полинома за xmin≤x≤xmax са кораком Δx.
#include <stdio.h>
main () {
double X[100], Y[100], x, p, q, xmin, xmax, dx;
int n, i;
printf ("n? "); scanf ("%d", &n);
for (i=0; i<n; i++) {
printf ("x[%d], y[%d]? ", i, i);
scanf ("%lf%lf", &X[i], &Y[i]);
}
printf ("xmin, xmax, dx? ");
scanf ("%lf%lf%lf", &xmin, &xmax, &dx);
printf ("\n x p(x)\n"
"========================\n");
for (x=xmin; x<=xmax; x+=dx) {
for (p=i=0; i<n; i++) {
for (q=Y[i], j=0; j<n; j++)
if (j != i)
q *= (x-X[j]) / (X[i]-X[j]);
P += q;
}
printf ("%12.2f%12.2f\n", x, p);
}
}
#include <stdio.h>
#include <ctype.h>
main () {
int zn, br[10], i;
for (i=0; i<10; br[i++]=0);
while ((zn = getchar()) != EOF)
if (isdigit (zn)) br[zn-'0']++;
for (i=0; i<10; i++)
printf ("%d%5d\n", i, br[i]);
}
#include <stdio.h>
#include <stdlib.h>
main () {
while (1) {
int *a, *b, *c, na, nb, nc, ia, ib, ic;
printf ("na, nb? ");
scanf ("%d%d", &na, &nb);
if (na < 0 || nb < 0) break;
nc = na + nb;
a = malloc (na * sizeof (int));
b = malloc (nb * sizeof (int));
c = malloc (nc * sizeof (int));
printf ("A? ");
for (ia=0; ia<na; scanf("%d", &a[ia++]);
printf ("B? ");
for (ib=0; ib<nb; scanf("%d", &b[ib++]);
for (ia=ib=ic=0; 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++];
printf ("C=");
for (ic=0; ic<nc; printf(" %d", c[ic++]); putchar ('\n');
free (a); free (b); free (c);
}
}
(садржај)
Copyright © 2003, Laslo Kraus
Последња ревизија: 16.4.2003.