Le but de cet exercice est dimplmenter des oprations sur des polynmes par des listes chanes. On reprsente un ploynme par une liste chane. Chaque cellule de la liste correspond un monme, avec son coefficient et son exposant. Par exemple, sur la figure ci-dessous, on reprsente la liste chane correspondant au polynme 10x^5 + 5x4 - 3x2 + 5.
Figure : liste chainne qui correspondant au polynme
crire une fonction qui prend en paramtre un polynme et rajoute un monme la liste. Le coefficient et lexposant du monme seront passs en paramtre. On supposera que le monme est de degr suprieur au degr du polynme pass en paramtre.
a) crire une fonction de saisie au clavier dun polynme. b) crire une fonction daffichage dun polynme. c) crire une fonction de destruction dun polynme. d) crire une fonction qui recopie un polynme. e) crire une fonction daddition de deux polynmes. f) crire une fonction de multiplication de deux polynmes
int longueur_liste(polynome* p)// pour rechercher la longeur de la liste { polynome* pl =p; int n=0; while(pl!=NULL){ n++; pl=pl->suiv; } return n; } polynome* insertEnQueue(polynome* p,monome m) { polynome *pL,*nouvL; nouvL=(polynome*)malloc(sizeof(polynome)); nouvL->m=m; nouvL->suiv = NULL; if(p==NULL) p=nouvL; else {
for(pL=p;pL->suiv!=NULL;pL=pL->suiv){} pL->suiv=nouvL; } return p; } polynome* saisirPolynome(){ polynome* l; l=(polynome*)malloc(sizeof(polynome)); l=NULL; monome p; int x=0; int n; do { cout<<"donner le degre du polynome\n"; cin>>n; } while (n < 0);
for (int i = n; i >= 0; i--) { cout<<"donner le coeficient de x^"<<i<<" \n"; cin>>x; p.x=x; p.n=i; if (p.x!= 0) l=insertEnQueue(l,p); } return l; }
int checkNode(list<monome> l, monome m) { int res = 0; list<monome> pl= l; monome mn; while (pl.size()>0) { mn=pl.front(); if (mn.n==m.n && mn.x==m.x) { res = 1; break; } pl.pop_front(); } return res; } list<monome> del_0(list<monome> l) { monome m ; m.x = 0; list<monome> pl; for (int c = l.size()-1;c>=0;c--) { m.n = c; if(!checkNode(l,m)){ pl.push_back(l.front()); l.pop_front(); } } return pl; }
}; int main(){ ex2 o; polynome * p1; polynome * p2; polynome * p3; p1=o.saisirPolynome(); o.afficherPolynome(p1); p2=o.saisirPolynome(); o.afficherPolynome(p2); p3=o.additionPoly(p1,p2); cout<<"l'addition de ses deux polynomes est : "<<endl; o.afficherPolynome(p3); cout<<"la multiplication de ses deux polynomes est : "<<endl; p3=o.multiplicationPoly(p1,p2); o.afficherPolynome(p3); system("pause"); return 0; }
Physique quantique pour les débutants: Découvrez les fondements de la mécanique quantique et la façon dont elle affecte le monde dans lequel nous vivons à travers ses théories les plus célèbres
L'univers est intelligent. L'âme existe. Mystères quantiques, multivers, intrication, synchronicité. Au-delà de la matérialité, pour une vision spirituelle du cosmos.