DEUG MIAS 24
 
 

Types et Structures de données


TD 6




1.Plus petit élément d'une liste

Écrire deux définitions récursives de la fonction min telle que (min l) retourne le plus petit élément de la liste l ou lève l'exception (Invalid_argument "min") si l est la liste vide.
 
 

2.Retournement d'une liste

 

 2.1.

Écrire une définition de la fonction concatd telle que (concatd l x) retourne la liste des éléments de l suivis de l'élément x en dernier.

Par exemple (concatd [1; 2; 3] 4) retorune [1; 2; 3; 4].
 
 

 2.2.

Écrire une définition de la fonction miroir telle que (miroir l) retourne la liste des éléments de l en ordre inverse.
 
 

 2.3.

Écrire une fonction récursive mir_acc telle que (mir_acc l acc) retourne la concaténation du miroir de la liste l et de la liste acc.

Par exemple mir_acc [1; 2; 3] [4; 5; 6] retourne [3; 2; 1; 4; 5; 6].
 
 

 2.4.

Écrire une nouvelle définition de la fonction miroir de la question 2.1. utilisant la fonction mir_acc de la question 2.2.
 
 

3.Les polynômes

On reprend la représentation d'un polynôme en x déjà utilisée à la question 2.6. du td 5 :

le polynôme a0 + a1x + a2x2 + ... + anxn est représenté par la liste de ses coefficients

[a0 ; a1 ; a2 ; ... ; an].

Tous les coefficients ai sont de type float et le dernier coefficient an est par hypothèse non nul.

Le polynôme nul est représenté par la liste vide [].
 
 

3.1.Addition de deux polynômes

Écrire une définition de la fonction add_poly telle que, lorsque l1 et l2 sont deux listes représentant respectivement deux polynômes p1 et p2, (add_poly l1 l2) retourne la liste représentant le polynôme p1 + p2.
 
 

3.2.Multiplication d'un polynôme par un scalaire

Écrire une définition de la fonction mult telle que, lorsque l est une liste représentant le polynôme p, (mult u l) retourne la liste représentant le polynôme résultat de la multiplication du polynôme p par le scalaire u de type float.
 
 

 3.3.

Écrire une définition de la fonction mult_x telle que, lorsque l est une liste représentant le polynôme en x nommé p, (mult_x l) retourne la liste représentant le polynôme p multiplié par sa variable x.
 
 

3.4.Produit de deux polynômes

Écrire une définition de la fonction mult_poly telle que, lorsque l1 et l2 sont deux listes représentant respectivement deux polynômes p1 et p2, (mult_poly l1 l2) retourne la liste représentant le produit des polynômes p1 et p2.
 
 

3.5.Polynôme défini par ses zéros.

Écrire une définition de la fonction poly_0 telle que, lorsque l est une liste [a1; a2; ...; an] d'éléments de type float, (poly_0 l) retourne la liste représentant le polynôme en x :

(x - a1)(x - a2)...(x - an).
 
 

3.6.Écriture d'un polynome

Donner une définition de la fonction string_of_poly telle que (string_of_poly l) retourne l'écriture du polynome représenté par la liste l, écriture ordonnée suivant les puissances croissantes de la variable x.