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.