Professional Documents
Culture Documents
Programmation Avancée Et Structures de Données 2.odt
Programmation Avancée Et Structures de Données 2.odt
-Devoir -
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
//Q1-Définir la structure
float coef;
int exp;
}poly;
//q2 Création du monôme
poly *creerMonome(float c,int e){
poly *lp;
lp=(poly *)malloc(sizeof(poly));
lp->coef=c;
lp->exp=e;
lp->next=NULL;
return lp;
}
//q3 Ajout du monôme
poly *AjouterMonome(poly *l,float c,int e){
poly *m1,*m2,*p1,*p2;
int a;
float b;
m1=creerMonome(c,e);
if(l==NULL){
l=m1;
return m1;
}
else{
m2=l;
while(m2->next!=NULL)
m2=m2->next;
m2->next=m1;
for(p1=l;p1->next!=NULL;p1=p1->next){
for(p2=p1->next;p2!=NULL;p2=p2->next){
if(p1->e<p2->e){
b=p1->coef;
a=p1->exp;
p1->coef=p2->coef;
p1->exp=p2->exp;
p2->coef=b;
p2->exp=a;
return l;
}
//4 Suppression du monôme
poly *p1,*p;
if(l==NULL)
return NULL;
else if(l->exp==e){
p1=l;
p1=l->next;
free(p1);
else{
p=l;
p=p->next;
if(p->next!=NULL){
p1=p->next;
p->next=p->next->next;
free(p1);
return l;
if(l!=NULL){
printf("%.0fX^%d ",l->cf,l->exp);
if(l->next!=NULL)
printf("+ ");
afficheRec(l->next);
}
//Q6-Affichage recursif inverse
if(l!=NULL){
AfficherRecInv(l->next);
if(l->next!=NULL)
printf("+ ");
printf("%.0fX^%d ",l->cf,l->exp);
}
//7 evaluer le polynome
poly *valpol(poly *l,float x){
poly *p=l;
while(p!=NULL){
p->coef=p->coef * x;
p=p->next;
return l;
}
//8 copier le polynome
poly *p,*l1=NULL;
p=l;
while(p!=NULL){
l1=AjouterMonome(l1,p->coef,p->exp);
p=p->next;
return l1;
}
//9 somme
poly *sommer(poly *l2,poly *l1){
poly *l3=NULL,*p=l2,*p1=l1;
float s;
s=p->coef+p1->coef;
l3=AjouterMonome(l3,s,p->exp);
p=p->next;
p1=p1->next;
return l3;
}
//10 multiplication
poly *mul(poly *l,float coef,int exp){
poly *p=l;
while(p!=NULL){
p->coef=p->coef * (pow(c,e));
p=p->next;
return l;
}
//11 La dérivée
poly *p;
p=l;
while(p!=NULL){
if(p->exp!=1){
p->coef=p->coef*p->exp;
p->exp=p->exp-1;
else if(p->exp==1){
p->coef=0;
p->exp=p->exp-1;
p=p->next;
return l;
main(){
poly *l=NULL,*l1=NULL,*l3=NULL;
int i,help,n;
float coef,x;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%f",&coef);
do{
scanf("%d",&help);
}while(help>n);
l=AjouterMonome(l,coef,help);
afficheRec(l);
scanf("%d",&help);
l=SupprimerMonome(l,help);
afficheRec(l);
scanf("%f",&x);
l=valpol(l,x);
afficheRec(l);
printf("\n");
l1=copie(l);
afficheRec(l1);
l3=sommer(l,l1);
afficheRec(l3);
scanf("%f",&coef);
scanf("%d",&help);
afficheRec(l3);
derive(l3);
afficheRec(l3);
Msahli Mohamed
Amine
Zaynab Mezrioui