Académique Documents
Professionnel Documents
Culture Documents
#include <math.h>
#include <string>
struct Monome {
double reel;
int exposant;
};
struct Maillon {
Monome monome;
Maillon *next;
};
struct Polynome {
Maillon *Tete;
Maillon *Queue;
};
//Fontion pour trier les monome en ordre deroissant. ex: 2X^3 + X^2 - 1
Polynome *trierPolynome(Polynome *p) {
Maillon *node = p->Tete, *temp = NULL;
int exposant;
double reel; //temp variable pour stocker le exposant
return p;
}
return trierPolynome(p);
}
temp = temp->next;
}
return derive;
}
temp = temp->next;
}
while (true) {
cout << "\n\n";
cout << "\t\t\t+____________________________________________________+" <<
endl;
cout << "\t\t\t|----------------------------------------------------|" <<
endl;
cout << "\t\t\t| MENU |" <<
endl;
cout << "\t\t\t|----------------------------------------------------|" <<
endl;
cout << "\t\t\t| 1-Ajouter monome. |" <<
endl;
cout << "\t\t\t| 2-La valeur du polynome en un point. |" <<
endl;
cout << "\t\t\t| 3-La derive d'un polynome. |" <<
endl;
cout << "\t\t\t| 4-Libere une polynome. |" <<
endl;
cout << "\t\t\t| 5-Somme de deux polynomes. |" <<
endl;
cout << "\t\t\t| 6-Produit d'un polynomes par un monome. |" <<
endl;
cout << "\t\t\t| 7-Produit de deux polynomes. |" <<
endl;
cout << "\t\t\t| 8-Aficher un polynome. |" <<
endl;
cout << "\t\t\t| 99-Exit le programme. |" <<
endl;
cout << "\t\t\t|____________________________________________________|\n\n"
<< endl;
cout << ">> Entrer un choix (1 -> 8):";
cin >> c;
system("cls");
switch (c) {
case 1:
do {
cout
<< ">> A quelle polynome voulez vous insere?\n\n\t\t\
t1- Polynome P.\n\t\t\t2- Polynome Q.\n\t\t\t0- Annuler.\n\n>> votre choix : ";
cin >> b;
system("cls");
switch (b) {
case 1:
cout << ">> Entrez le degres du monome : ";
cin >> exp;
cout << ">> Entrez le coefficient du monome : ";
cin >> coef;
P = AjouteMonome(P, creerMonome(coef, exp));
if (!EstVide(*P))
cout << "\n>> Monome est ajoutee avec succes au
polynome P(X).\n" << endl;
else
cout << "\n>> Echec d\'ajout le monome a P(X)!!\n"
<< endl;
break;
case 2:
cout << ">> Entrez le degres du monome : ";
cin >> exp;
cout << ">> Entrez le coefficient du monome : ";
cin >> coef;
Q = AjouteMonome(Q, creerMonome(coef, exp));
if (!EstVide(*Q))
cout << "\n>> Monome est ajoutee avec succes au
polynome Q(X).\n" << endl;
else
cout << "\n>> Echec d\'ajout le monome a Q(X)!!\n"
<< endl;
break;
case 0:
break;
default:
cout << "Choix incorrecte! entre un nombre compris
entre 0 et 2." << endl;
break;
}
} while (b != 0);
b = 0;
break;
case 2:
do {
cout
<< ">> A quelle polynome voulez vous calculer sa
valeur?\n\n\t\t\t1- Polynome P.\n\t\t\t2- Polynome Q.\n\t\t\t0- Annuler.\n\n>>
votre choix : ";
cin >> b;
switch (b) {
case 1:
if (!EstVide(*P)) {
cout << ">> Entrer la valeur du X : ";
cin >> x;
cout << "\n>> La valeur du polynome P au point " <<
x << " est : " << EvaluePoly(P, x)
<< endl << endl;
} else
cout << "\n>> Le polynome est vide !!" << endl;
break;
case 2:
if (!EstVide(*Q)) {
cout << ">> Entrer la valeur du X : ";
cin >> x;
cout << "\n>> La valeur du polynome Q au point " <<
x << " est : " << EvaluePoly(Q, x)
<< endl << endl;
} else
cout << "\n>> Le polynome est vide !!" << endl;
break;
case 0:
break;
default:
cout << "Choix incorrecte! entre un nombre compris
entre 0 et 2." << endl;
break;
}
} while (b != 0);
b = 0;
break;
case 3:
do {
cout
<< ">> A quelle polynome voulez vous calculer sa
derive?\n\n\t\t\t1- Polynome P.\n\t\t\t2- Polynome Q.\n\t\t\t0- Annuler.\n\n>>
votre choix : ";
cin >> b;
switch (b) {
case 1:
if (!EstVide(*P)) {
AfficherPol("P\'", DerivePoly(P));
} else
cout << ">> Le polynome est vide !!" << endl;
break;
case 2:
if (!EstVide(*Q)) {
AfficherPol(">> Derive du polynome Q.",
DerivePoly(Q));
} else
cout << ">> Le polynome est vide !!" << endl;
break;
case 0:
break;
default:
cout << "Choix incorrecte! entre un nombre compris
entre 0 et 2." << endl;
break;
}
} while (b != 0);
break;
case 4:
do {
cout
<< ">> Quelle polynome voulez vous supprimer?\n\n\t\t\
t1- Polynome P.\n\t\t\t2- Polynome Q.\n\t\t\t0- Annuler.\n\n>> votre choix : ";
cin >> b;
switch (b) {
case 1:
SuppList(P);
if (EstVide(*P))
cout << "Le polynome P est libere avec succes." <<
endl;
else
cout << "Echec de liberation P(X)." << endl;
break;
case 2:
SuppList(Q);
if (EstVide(*Q))
cout << "Le polynome Q est libere avec succes." <<
endl;
else
cout << "Echec de liberation Q(X).." << endl;
break;
case 0:
break;
default:
cout << "Choix incorrecte! entre un nombre compris
entre 0 et 2." << endl;
break;
}
} while (b != 0);
break;
case 5:
if (EstVide(*P) || EstVide(*Q)) {
cout << "L\'un des deux polynomes est vide!" << endl;
} else {
cout << "La somme des polynomes P(X) et Q(X) est :" << endl;
cout << "\t";
AfficherPol("Somme de P(X) et Q", SommePolynome(P, Q));
}
break;
case 6:
do {
cout
<< "Quelle polynome voulez vous multiplier?\n\n\t\t\t1-
Polynome P.\n\t\t\t2- Polynome Q.\n\t\t\t0- Annuler.\n\n>> votre choix : ";
cin >> b;
switch (b) {
case 1:
if (!EstVide(*P)) {
cout << "Entre le degres du monome : ";
cin >> exp;
cout << "Entre le coefficient du monome : ";
cin >> coef;
m = creerMonome(coef, exp);
cout << "Le produit du poylnome P et " << coef <<
"X^" << exp << " est :" << endl;
cout << "\t";
AfficherPol("Produit du polynome P et le monome ",
Multip(P, m));
} else
cout << "aucun monome n est insere!" << endl;
break;
case 2:
if (!EstVide(*P)) {
cout << "Entre le degres du monome : ";
cin >> exp;
cout << "Entre le coefficient du monome : ";
cin >> coef;
m = creerMonome(coef, exp);
cout << "Le produit du poylnome Q et " << coef <<
"X^" << exp << " est :" << endl;
cout << "\t";
AfficherPol("Produit du polynome Q et le monome ",
Multip(Q, m));
} else
cout << "aucun monome n est insere!" << endl;
break;
case 0:
break;
default:
cout << "Choix incorrecte! entre un nombre compris
entre 0 et 2." << endl;
break;
}
} while (b != 0);
break;
case 7:
if (EstVide(*P) || EstVide(*Q)) {
cout << "L\'un des deux polynomes est vide!" << endl;
} else {
cout << "La produit des polynomes P(X) et Q(X) est :" << endl;
cout << "\t";
AfficherPol("Produit de P et Q", ProduitP(P, Q));
}
break;
case 8:
do {
cout
<< "Quelle polynome voulez vous afficher?\n\n\t\t\t1-
Polynome P.\n\t\t\t2- Polynome Q.\n\t\t\t0- Annuler.\n\n>> votre choix : ";
cin >> b;
switch (b) {
case 1:
AfficherPol("P", P);
break;
case 2:
AfficherPol("Q", Q);
break;
case 0:
break;
default:
cout << "Choix incorrecte! entre un nombre compris
entre 0 et 2." << endl;
break;
}
} while (b != 0);
break;
case 99:
exit(0);
break;
default:
cout << "Choix incorrecte! entre un nombre compris entre 0 et 8."
<< endl;
break;
}
}
return 0;
}