Opérations sur les polynômes
Le but de cet exercice est d'implémenter les opérations élémentaires
sur les polynômes à coefficients entiers. Tout polynôme sera
représenté par une liste de monômes. Un monôme correspond donc à une
structure de type struct monome comportant trois champs : son
coefficient de type int, son degré de type int et un
pointeur sur le monôme suivant. Le type polynome utilisé dans
toute la suite est donc un pointeur sur la structure struct
monome.
1 Définition du type polynôme
Définir le type polynôme dans un fichier type_poly.h qui sera
inclus dans les autres fichiers source utilisant le type polynome.
2 Construction d'un polynôme
Afin de construire un polynôme, écrire une fonction qui insère un monôme
en tête d'un polynôme. Son prototype sera :
polynome constructeur(int c, int d, polynome P)
Cette fonction, tout comme la fonction d'affichage, sera définie dans
un fichier contenant le corps des fonctions élémentaires sur les
listes, listes.c.
3 Affichage d'un polynôme à l'écran
Écrire une fonction qui prend comme paramètre un polynôme et qui
l'affiche à l'écran sous la forme :
1+5x+8x^7-9x^12+x^23
4 Vérification des fonctions précédentes
On vérifiera les fonctions de construction et d'affichage en utilisant
la fonction lecture_polynome qui prend comme paramètre un nom
de fichier (de type char *) et qui retourne un objet de type
polynome correspondant au polynôme décrit dans le fichier. Le
nom du fichier donnant le polynôme pourra être passé en argument de la
fonction main. Le contenu de ce fichier sera une suite de
caractères sans espace du type :
x^23+1+5x+8x^7-9x^12
La fonction lecture_polynome est définie dans le fichier lecture_polynome.c, et déclarée dans le fichier en-tête lecture_polynome.h
correspondant.
Écrire un programme principal de test et un Makefile permettant
de produire l'exécutable.
Les fonctions suivantes pourront être regroupées dans un même fichier source.
5 Degré d'un polynôme
Écrire une fonction qui prend comme paramètre un polynôme et qui
retourne son degré. Cette fonction aura pour prototype :
int degre(polynome P)
Dans les questions suivantes, on supposera que les polynômes manipulés
ont des monômes de degrés distincts qui sont classés dans l'ordre
croissant des degrés.
6 Addition de deux polynômes
Écrire une fonction qui prend comme paramètres deux polynômes triés et
qui en retourne un troisième égal à leur somme :
polynome add_poly(polynome P1, polynome P2)
Le polynôme retourné sera également un polynôme trié dont tous les
monômes sont de degrés distincts.
7 Produit de deux polynômes
Écrire une fonction qui retourne le produit de deux polynômes. On
pourra utiliser la fonction add_poly ainsi qu'une fonction
intermédiaire effectuant le produit d'un polynôme par un monôme. Le
prototype de cette dernière fonction sera :
polynome produit_monome(int x, int deg, polynome P)
This document was translated from LATEX by HEVEA.