friend polynome somme(const polynome& p, const polynome& q); //somme de deux polynomes
polynome somme(const polynome& p, const polynome& q) { polynome s(max(p.nbi, q.nbi), p.nbm + q.nbm); for (int i=0; i</tr></table> dans main : <table border=0 cellspacing=0 cellpadding=4 bgcolor=#E0E0E0><tr><td class=code> case 22 : somme(p,q);cout<<endl; break;
//polynome.h # include # include <cmath> using namespace std; typedef char lettre; class monome{ public: float c;//coefficient int n;//nombre d'indéterminées du monome int* tab;//tableau contenant les degrés du monome monome(); //constructeur du monome nul monome(float coefficient,int MAX_IND); //constructeur float coeff(); //coefficient du monome int deg_max(); //degré maximum parmi les indéterminées du monome int deg_hom(); //degré homogene void ind_pres(); //indéterminées effectivement présentes int deg_ind(); //degré de la ième indéterminée float evalm(); //évalue un monome à partir des valeurs attribuées aux indéterminées int ind_pres(int i); // regarde si l'indéterminée i+1 est présente int nb_ind(); //nombre d'indéterminées du monome void affichage(); //affichage du monome }; class polynome{ public : int nbm; //nombre de monomes int nbi; //nombre d'indéterminées monome* liste_monome; //tableau contenant des monomes polynome* polynome1; //tableau contenant des polynomes polynome(); //constructeur du monome nul polynome(int i, int n); //constructeur int deg_i_ind(int i); //degré suivant une indéterminée int deg_glob(); //degré global void inpoly(int j); //indéterminée intervient ou pas dans le polynome friend polynome somme(const polynome& p1, const polynome& p2); //somme de deux polynomes void derive_ind(int j); //dérivation suivant une indéterminée float evalu();//il faut saisir les mêmes valeurs pour une indéterminée i int nb_m(); //nombre de monomes du polynome int nb_i(); //nombre d'indéterminées du polynome void affichage(); //affichage du polynome float* saisir_ind(); //saisir les indéterminées };
//polynome.cpp #include "polynome.h" # include # include <cmath> using namespace std; monome::monome() {c=0; n=0;} monome::monome(float coefficient,int MAX_IND) {c=coefficient; n=MAX_IND; tab=new int[MAX_IND];} float monome::coeff() {return c;} int monome::deg_max() {monome m; cout<<"Le nombre d'indeterminees est : "<<n<<endl; for(int j=0;j<n;j++) {cout<<"Le "<<j+1<<"ieme degre est :"<<tab[j]<<endl;} int max=tab[0]; for(int i=1;i<n;i++) {if(tab[i]>max) max=tab[i];} return max;} int monome::deg_hom() {int somme=0; for(int i=0;i<n;i++) {cout<<"Le "<>i; for(int j=0;j<n;j++) {cout<<"Le "<<j+1<<"ieme degre est : "<<tab[j]<<endl;} if(i>0 && i<=n) {cout<<"Le degre de l'indeterminee "<>val[j];} for(int i=0;i<n;i++) {cout<<"Le "<d) d=liste_monome[j].tab[i];} cout<<"Le degre suivant l'indeterminee "< max) {max = liste_monome[i].deg_hom();}} cout<<"Le degre global du polynome est : "<<max<<endl; return max;} void polynome::inpoly(int j) {int somme=0; for (int i = 0; i< nbm; i++) {if ( liste_monome[i].ind_pres(j) == 1 ) somme=somme+1;} if (somme>0) {cout<<"L'indeterminee est presente.";} else cout<<"L'indeterminee n'est pas presente.";} inline int max(int x, int y) { return (x>y)?x:y; } polynome somme(const polynome& p1, const polynome& p2) { polynome s(max(p1.nbi, p2.nbi), p1.nbm + p2.nbm); for (int i=0; i=0 {affichage(); cout << endl; for(int i=0;i<nbm;i++) {if(liste_monome[i].tab[j]==0) {liste_monome[i].c=0;} if(liste_monome[i].tab[j]!=0) {liste_monome[i].c *= liste_monome[i].tab[j]; liste_monome[i].tab[j] -= 1;} } cout<<endl; cout<<"Le polynome derivee suivant l'indeterminee "<<j+1<<" est :"<<endl; affichage();} float polynome::evalu() {float P=0; for (int i=0;i<nbm;i++) {P=P+liste_monome[i].evalm();} cout<<"La valeur du polynome est :"<<" P = "<>val[j];} return val; cout<<val;}
//test.cpp # include "polynome.h" # include using namespace std; void main() { monome m1(6,3); monome m2(2,4); monome m3(5,3); polynome p(5,2); polynome q(3,1); polynome s(5,3); m1.tab[0] = 4; m1.tab[1] = 5; m1.tab[2] = 2; m2.tab[0] = 3; m2.tab[1] = 0; m2.tab[2] = 2; m2.tab[3] = 1; m3.tab[0] = 5; m3.tab[1] = 2; m3.tab[2] = 8; m3.tab[3] = 7; p.liste_monome[0] = m1; p.liste_monome[1] = m2; q.liste_monome[0] = m3; s.polynome1[0]= p; s.polynome1[1]= q; int choix=-1; while (choix!=0) {cout<<"Faites un choix:\n"; cout<<"10. Afficher le polynome p. \n"; cout<<"11. Afficher le polynome q. \n"; cout<<"12. Indique le degre suivant une indeterminee donnee pour p. \n"; cout<<"13. Indique le degre suivant une indeterminee donnee pour q. \n"; cout<<"14. Afficher le degre global du polynome p. \n"; cout<<"15. Afficher le degre global du polynome q. \n"; cout<<"16. Indiquer si une indeterminee intervient ou non dans le polynome p. \n"; cout<<"17. Indiquer si une indeterminee intervient ou non dans le polynome q. \n"; cout<<"18. Deriver le polynome p suivant une indeterminee.\n"; cout<<"19. Deriver le polynome q suivant une indeterminee.\n"; cout<<"20. Calcule la valeur du polynome p en un point (il faut saisir les memes valeurs pour une indeterminee i). \n"; cout<<"21. Calcule la valeur du polynome q en un point (il faut saisir les memes valeurs pour une indeterminee i). \n"; cout<<"22. Faire la somme de deux polynomes. \n"; cout<<"0. Quitter \n"; cin>>choix; switch(choix) { case 10 : p.affichage();cout<<endl; break; case 11 : q.affichage();cout<<endl; break; case 12 : p.deg_i_ind(1);cout<<endl; break; case 13 : q.deg_i_ind(1);cout<<endl; break; case 14 : p.deg_glob();cout<<endl; break; case 15 : q.deg_glob();cout<<endl; break; case 16 : p.inpoly(0);cout<<endl; break; case 17 : q.inpoly(0);cout<<endl; break; case 18 : p.derive_ind(1);cout<<endl; break; case 19 : q.derive_ind(1);cout<<endl; break; case 20 : p.evalu();cout<<endl; break; case 21 : q.evalu();cout<<endl; break; case 22 : polynome s;s=somme(p,q);cout<<endl; break; default : cout<<"Pas le bon cas."<<endl; break; } } }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question//polynome.h # include # include <cmath> using namespace std; typedef char lettre; class monome{ public: float c;//coefficient int n;//nombre d'indéterminées du monome int* tab;//tableau contenant les degrés du monome monome(); //constructeur du monome nul monome(float coefficient,int MAX_IND); //constructeur float coeff(); //coefficient du monome int deg_max(); //degré maximum parmi les indéterminées du monome int deg_hom(); //degré homogene void ind_pres(); //indéterminées effectivement présentes int deg_ind(); //degré de la ième indéterminée float evalm(); //évalue un monome à partir des valeurs attribuées aux indéterminées int ind_pres(int i); // regarde si l'indéterminée i+1 est présente int nb_ind(); //nombre d'indéterminées du monome void affichage(); //affichage du monome }; class polynome{ public : int nbm; //nombre de monomes int nbi; //nombre d'indéterminées monome* liste_monome; //tableau contenant des monomes polynome* polynome1; //tableau contenant des polynomes polynome(); //constructeur du monome nul polynome(int i, int n); //constructeur int deg_i_ind(int i); //degré suivant une indéterminée int deg_glob(); //degré global void inpoly(int j); //indéterminée intervient ou pas dans le polynome friend polynome somme(const polynome& p1, const polynome& p2); //somme de deux polynomes void derive_ind(int j); //dérivation suivant une indéterminée float evalu();//il faut saisir les mêmes valeurs pour une indéterminée i int nb_m(); //nombre de monomes du polynome int nb_i(); //nombre d'indéterminées du polynome void affichage(); //affichage du polynome float* saisir_ind(); //saisir les indéterminées };
//polynome.cpp #include "polynome.h" # include # include <cmath> using namespace std; monome::monome() {c=0; n=0;} monome::monome(float coefficient,int MAX_IND) {c=coefficient; n=MAX_IND; tab=new int[MAX_IND];} float monome::coeff() {return c;} int monome::deg_max() {monome m; cout<<"Le nombre d'indeterminees est : "<<n<<endl; for(int j=0;j<n;j++) {cout<<"Le "<<j+1<<"ieme degre est :"<<tab[j]<<endl;} int max=tab[0]; for(int i=1;i<n;i++) {if(tab[i]>max) max=tab[i];} return max;} int monome::deg_hom() {int somme=0; for(int i=0;i<n;i++) {cout<<"Le "<>i; for(int j=0;j<n;j++) {cout<<"Le "<<j+1<<"ieme degre est : "<<tab[j]<<endl;} if(i>0 && i<=n) {cout<<"Le degre de l'indeterminee "<>val[j];} for(int i=0;i<n;i++) {cout<<"Le "<d) d=liste_monome[j].tab[i];} cout<<"Le degre suivant l'indeterminee "< max) {max = liste_monome[i].deg_hom();}} cout<<"Le degre global du polynome est : "<<max<<endl; return max;} void polynome::inpoly(int j) {int somme=0; for (int i = 0; i< nbm; i++) {if ( liste_monome[i].ind_pres(j) == 1 ) somme=somme+1;} if (somme>0) {cout<<"L'indeterminee est presente.";} else cout<<"L'indeterminee n'est pas presente.";} inline int max(int x, int y) { return (x>y)?x:y; } polynome somme(const polynome& p1, const polynome& p2) { polynome s(max(p1.nbi, p2.nbi), p1.nbm + p2.nbm); for (int i=0; i=0 {affichage(); cout << endl; for(int i=0;i<nbm;i++) {if(liste_monome[i].tab[j]==0) {liste_monome[i].c=0;} if(liste_monome[i].tab[j]!=0) {liste_monome[i].c *= liste_monome[i].tab[j]; liste_monome[i].tab[j] -= 1;} } cout<<endl; cout<<"Le polynome derivee suivant l'indeterminee "<<j+1<<" est :"<<endl; affichage();} float polynome::evalu() {float P=0; for (int i=0;i<nbm;i++) {P=P+liste_monome[i].evalm();} cout<<"La valeur du polynome est :"<<" P = "<>val[j];} return val; cout<<val;}
//test.cpp # include "polynome.h" # include using namespace std; void main() { monome m1(6,3); monome m2(2,4); monome m3(5,3); polynome p(5,2); polynome q(3,1); polynome s(5,3); m1.tab[0] = 4; m1.tab[1] = 5; m1.tab[2] = 2; m2.tab[0] = 3; m2.tab[1] = 0; m2.tab[2] = 2; m2.tab[3] = 1; m3.tab[0] = 5; m3.tab[1] = 2; m3.tab[2] = 8; m3.tab[3] = 7; p.liste_monome[0] = m1; p.liste_monome[1] = m2; q.liste_monome[0] = m3; int choix=-1; while (choix!=0) {cout<<"Faites un choix:\n"; cout<<"10. Afficher le polynome p. \n"; cout<<"11. Afficher le polynome q. \n"; cout<<"12. Indique le degre suivant une indeterminee donnee pour p. \n"; cout<<"13. Indique le degre suivant une indeterminee donnee pour q. \n"; cout<<"14. Afficher le degre global du polynome p. \n"; cout<<"15. Afficher le degre global du polynome q. \n"; cout<<"16. Indiquer si une indeterminee intervient ou non dans le polynome p. \n"; cout<<"17. Indiquer si une indeterminee intervient ou non dans le polynome q. \n"; cout<<"18. Deriver le polynome p suivant une indeterminee.\n"; cout<<"19. Deriver le polynome q suivant une indeterminee.\n"; cout<<"20. Calcule la valeur du polynome p en un point (il faut saisir les memes valeurs pour une indeterminee i). \n"; cout<<"21. Calcule la valeur du polynome q en un point (il faut saisir les memes valeurs pour une indeterminee i). \n"; cout<<"22. Faire la somme de deux polynomes. \n"; cout<<"0. Quitter \n"; cin>>choix; polynome s; switch(choix) { case 10 : p.affichage();cout<<endl; break; case 11 : q.affichage();cout<<endl; break; case 12 : p.deg_i_ind(1);cout<<endl; break; case 13 : q.deg_i_ind(1);cout<<endl; break; case 14 : p.deg_glob();cout<<endl; break; case 15 : q.deg_glob();cout<<endl; break; case 16 : p.inpoly(0);cout<<endl; break; case 17 : q.inpoly(0);cout<<endl; break; case 18 : p.derive_ind(1);cout<<endl; break; case 19 : q.derive_ind(1);cout<<endl; break; case 20 : p.evalu();cout<<endl; break; case 21 : q.evalu();cout<<endl; break; case 22 : s=somme(p,q);cout<<endl; break; default : cout<<"Pas le bon cas."<<endl; break; } } }