Exercice 1 - Romaric GUILLERM, Ph.D.

publicité
Algo-Prog
en Ada
TD1
2 MIC
Romaric GUILLERM
[email protected]
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.
Quand on écrit Pr.all
avec un pointeur Pr
Pr/=null à vérifier avant !
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://romaric.guillerm.free.fr

Pour écrire le programme (fichier.adb):
Bloc Note, Emacs…

ou : Notepad++
Pour compiler et exécuter :
Téléchargement