Documente Academic
Documente Profesional
Documente Cultură
11-02
/*
Forma generala a unui polinom este:
a n x n a n 1 x n 1 ... a 1 x a 0
Se reprezintă polinoame, folosind structuri, prin grad si coeficienţii depuşi intr-un tablou
unidimensional alocat static.
struct pol
{ int grad;
float coef[10];
};
Polinoamele vor avea gradul maxim 9.
Se va face corespondenta următoare: coeficientul monomului de grad 0 se va memora in elementul de
index 0 al tabloului, cel al monomului de grad 1, in elementul de index 1, etc.
De exemplu, polinomul:
3.2 * x 4 5 * x 3 7.5 * x 2 9 * x1 15
Din cele 10 elemente ale tabloului coef, sunt utilizate grad+1 elemente, în cazul luat ca exemplu, se
vor folosi 5 elemente; restul elementelor sunt ignorate.
*********************************************************************************/
#include <stdio.h>
#include <conio.h>
#include <math.h>
struct pol
{ int grad;
float coef[10];
};
int main()
{
pol p1, p2, p3;
float x, val;
printf("\nIntroduceti date pentru polinomul p1:");
citire(&p1);
printf("\nIntroduceti date pentru polinomul p2:");
citire(&p2);
printf("\n");
Pag. 1/3
AIA I – Laborator nr. 11-02
printf("\nPolinomul p1 este:");
afisare(p1);
printf("\n");
printf("\nPolinomul p2 este:");
afisare(p2);
printf("\n");
p3=suma(p1,p2);
printf("\nPolinomul suma p1+p2 este:");
afisare(p3);
printf("\n");
printf("\nIntrodu valoare x:");
scanf("%f", &x);
val=val_pol(p1, x);
printf("\nValoarea polinomului p1 pentru x= %f este: %f", x, val);
printf("\n");
getch();
}
void citire(pol * p)
{ //gradul polinomului este limitat de dimensiunea tabloului alocat
//nr. coeficienti = grad+1
do
{ printf("\nIntrodu gradul polinomului(<9):");
scanf("%d",&p->grad);
}
while(p->grad<0 || p->grad>9);
printf("\nIntrodu valorile coeficientilor:\n");
for(int i=0; i<=p->grad;i++)
{ printf("\ncoef[%d]=",i);
scanf("%f",&p->coef[i]);
}
}
void afisare(pol p)
{ printf("\n");
for(int i= p.grad ; i>0 ; i--)
printf("%+.2f*x^%d ", p.coef[i], i);
printf("%+.2f", p.coef[0]);
}
TEMA
Pag. 3/3