Algo-Prog en Ada TD1 2 MIC Romaric GUILLERM guillerm@laas.fr
TD1 Pointeurs et Listes simplement chaînées Exercice 1 : initialisation d’une liste – insertion en début – insertion en fin 1,1 Comment déclarer et initialiser la liste L directement ?
TD1 Exercice 1 : initialisation d’une liste – insertion en début – insertion en fin 1,2 Ecrire une version itérative et une version récursive permettant d’afficher une liste.
Pr/=null à vérifier avant ! Quand on écrit Pr.all avec un pointeur Pr Pr/=null à vérifier avant ! Règle d’or n°1
TD1 Exercice 1 : initialisation d’une liste – insertion en début – insertion en fin 1,2 Ecrire une version itérative et une version récursive permettant d’afficher une liste.
TD1 Exercice 1 : initialisation d’une liste – insertion en début – insertion en fin 1,3 Ecrire un sous-programme de construction de liste (donner une version itérative) qui saisit un nombre donné d’entiers (ce nombre est passé en paramètre) et les empile un à un dans la liste.
TD1 Exercice 1 : initialisation d’une liste – insertion en début – insertion en fin 1,4 Ecrire un sous-programme de construction de liste qui saisit un nombre donné d’entiers (ce nombre est passé en paramètre) et les insère un à un en fin de liste (donner une version itérative et une version récursive). itératif
TD1 Exercice 1 : initialisation d’une liste – insertion en début – insertion en fin 1,4 Ecrire un sous-programme de construction de liste qui saisit un nombre donné d’entiers (ce nombre est passé en paramètre) et les insère un à un en fin de liste (donner une version itérative et une version récursive). récursif
TD1 Exercice 2 : Filtrage d’une liste simplement chaînée On veut construire une sous-liste SL contenant uniquement les nombres positifs de la liste L, rangés dans le même ordre que dans la liste initiale. 2,1 Proposez une fonction de filtrage mettant en œuvre un algorithme itératif
TD1 Exercice 2 : Filtrage d’une liste simplement chaînée On veut construire une sous-liste SL contenant uniquement les nombres positifs de la liste L, rangés dans le même ordre que dans la liste initiale. 2,2 Proposez une fonction de filtrage mettant en œuvre un algorithme récursif
TD1 Exercice 3 Deux listes sont dites identiques si elles sont toutes les deux vides ou si elles contiennent les mêmes valeurs dans le même ordre. Ecrire une fonction booléenne récursive qui teste si 2 listes données sont identiques.
TD1 Exercice 4 On considère toujours des listes simplement chaînées. Ecrire un sous-programme supprimant d'une liste toutes les occurrences multiples de chaque valeur (on obtient donc une liste contenant une seule occurrence de chaque valeur).
TD1 Exercice 4 itératif
TD1 Exercice 4 itératif
TD1 Exercice 4 récursif
TD1 Exercice 4 récursif
Travailler à la maison ! avec Windows Compilateur Ada GNAT : http://www.gnu.org/software/gnat/gnat.html Pour écrire le programme (fichier.adb): Bloc Note, Emacs… ou : Notepad++ Pour compiler et exécuter :