TD1 2 MIC [email protected] Romaric GUILLERM Algo-Prog en Ada.
-
Upload
amedee-mary -
Category
Documents
-
view
113 -
download
0
Transcript of TD1 2 MIC [email protected] Romaric GUILLERM Algo-Prog en Ada.
![Page 2: TD1 2 MIC guillerm@laas.fr Romaric GUILLERM Algo-Prog en Ada.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d9f497959293b8ccf2f/html5/thumbnails/2.jpg)
TD1Pointeurs 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 ?
![Page 3: TD1 2 MIC guillerm@laas.fr Romaric GUILLERM Algo-Prog en Ada.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d9f497959293b8ccf2f/html5/thumbnails/3.jpg)
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.
![Page 4: TD1 2 MIC guillerm@laas.fr Romaric GUILLERM Algo-Prog en Ada.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d9f497959293b8ccf2f/html5/thumbnails/4.jpg)
Quand on écrit Pr.allavec un pointeur Pr
Pr/=null à vérifier avant !
RÈGLE D’OR N°1
![Page 5: TD1 2 MIC guillerm@laas.fr Romaric GUILLERM Algo-Prog en Ada.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d9f497959293b8ccf2f/html5/thumbnails/5.jpg)
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.
![Page 6: TD1 2 MIC guillerm@laas.fr Romaric GUILLERM Algo-Prog en Ada.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d9f497959293b8ccf2f/html5/thumbnails/6.jpg)
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.
![Page 7: TD1 2 MIC guillerm@laas.fr Romaric GUILLERM Algo-Prog en Ada.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d9f497959293b8ccf2f/html5/thumbnails/7.jpg)
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
![Page 8: TD1 2 MIC guillerm@laas.fr Romaric GUILLERM Algo-Prog en Ada.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d9f497959293b8ccf2f/html5/thumbnails/8.jpg)
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
![Page 9: TD1 2 MIC guillerm@laas.fr Romaric GUILLERM Algo-Prog en Ada.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d9f497959293b8ccf2f/html5/thumbnails/9.jpg)
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
![Page 10: TD1 2 MIC guillerm@laas.fr Romaric GUILLERM Algo-Prog en Ada.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d9f497959293b8ccf2f/html5/thumbnails/10.jpg)
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
![Page 11: TD1 2 MIC guillerm@laas.fr Romaric GUILLERM Algo-Prog en Ada.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d9f497959293b8ccf2f/html5/thumbnails/11.jpg)
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.
![Page 12: TD1 2 MIC guillerm@laas.fr Romaric GUILLERM Algo-Prog en Ada.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d9f497959293b8ccf2f/html5/thumbnails/12.jpg)
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).
![Page 13: TD1 2 MIC guillerm@laas.fr Romaric GUILLERM Algo-Prog en Ada.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d9f497959293b8ccf2f/html5/thumbnails/13.jpg)
TD1 Exercice 4
itératif
![Page 14: TD1 2 MIC guillerm@laas.fr Romaric GUILLERM Algo-Prog en Ada.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d9f497959293b8ccf2f/html5/thumbnails/14.jpg)
TD1 Exercice 4
itératif
![Page 15: TD1 2 MIC guillerm@laas.fr Romaric GUILLERM Algo-Prog en Ada.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d9f497959293b8ccf2f/html5/thumbnails/15.jpg)
TD1 Exercice 4
récursif
![Page 16: TD1 2 MIC guillerm@laas.fr Romaric GUILLERM Algo-Prog en Ada.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d9f497959293b8ccf2f/html5/thumbnails/16.jpg)
TD1 Exercice 4
récursif
![Page 17: TD1 2 MIC guillerm@laas.fr Romaric GUILLERM Algo-Prog en Ada.](https://reader035.fdocument.pub/reader035/viewer/2022062417/551d9d9f497959293b8ccf2f/html5/thumbnails/17.jpg)
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 :