Opérations sur les polynômes

Le but est de manipuler des polynômes creux (à coefficients entiers pour simplifier) et d'effectuer les opérations élémentaires sur les polynômes. Dans un premier temps, on écrira toutes les fonctions de la façon la plus simple possible, sans se soucier de l'efficaté et de la gestion mémoire.

On représente les polynômes par des listes de monômes triés, (on placera par exemple les plus grands exposants d'abord).

Effectuer dans l'ordre

  1. Écrire les définitions du type des polynômes et du type des monômes.
            typedef int Coef;
            typedef int Expo;
            typedef ... Poly; 
    
  2. Écrire une constante zero représentant le polynome vide.
  3. Une fonction de création de polynomes:
            Poly creer (Coef c, Expo k, Poly p);
    
    Dans un premier temps, écrire la fonction pour qu'elle alloue une cellule et la remplisse avec les arguments. Puis la modifier pour qu'elle retourne zero lorsque le coefficient est nul ou la puissance negative.
  4. une fonction d'impression des polynômes dans le format standard (par exemple +5x^3 +4x^1 +3x^0)
            void imprime (Poly p);
    
  5. Une fonction d'ajout d'un monôme à un polynôme.
            Poly ajouter (Coef c, Expo k, Poly p);
    
  6. Écrire une fonction d'évaluation d'un polynôme p en une valeur x:
            Coef eval (Poly p, Coef x);
    
  7. Écrire une fonction affine multiplier puis la multiplication.
            Coef eval (Poly p, Coef x);
    
  8. Écrire une fonction de dérivation.
            Poly derive (Poly p);
    
  9. Puis une fonction d'addition de deux polynômes.
            Poly somme (Poly p, Poly q);
    
  10. Facultativement on pourra réaliser la multiplication des polynômes.

Note On testera bien entendu le programme au fur et à mesure. Pour simplifier, on créera tous les polynomes par programmes (en utilisant initialement la fonction ajouter puis par calcul).

Comme exemple test, on pourra sur un exemple une formule bien connue, par exemple que la somme des derivé est égale à la dérivée des sommes, ou encore vérifier la commutativité de la somme et du produit, etc.

solution

Facultif

Reprendre l'exercice enessayant d'être plus efficae, en effectuant le maximum d'opérations en place. On aura alors besoin d'une fonction de recopie pour copier les arguments qui risqueraient d'être écrasés...