Il faut avoir suivi cette page pour lire celle-ci dans de bonnes conditions.
Une liste peut contenir n’importe quel type de valeur, même des listes !
Pour accéder à une valeur dans la liste, on utilise Nieme
.
Pour accéder à un élément d’une sous-liste, on emboîte les appels à Nième
.
On remarque que si on lit la dernière ligne de gauche à droite, le 4 est avant le 2. Mais:
Dans le programme suivant, changez les « 1 » en d’autres nombres entiers pour écrire « BONJOUR ».
On considère ici une liste de listes appelée lili
. Dans l’algorithme ci-dessous,
on la parcourt pour afficher chaque sous-liste.
Dans la fenêtre suivante, modifier l’algorithme de telle sorte qu’au lieu
d’afficher la sous-liste (qui a été affectée à la variable ssl
),
un sous-parcours est effectué pour en afficher les éléments.
Vous devrez obtenir les lettres de A à F, dans l’ordre, et chacune sur sa ligne.
Indice : Remplacer (Afficher ssl)
par un Tant_que
.
Encore plus fort, on pourrait faire la même chose sans
la variable intermédiaire ssl
. Essayez à partir de la
fenêtre ci-dessous.
Indice : Remplacer (Afficher (Nieme lili i))
par un
Tant_que
. Vous devrez sans doute utiliser Nieme
deux
fois, peut-être même les imbriquer.
Voici la solution du dernier exercice. Ce parcours de liste de liste sera appelé le parcours « canonique ». L’affichage de i et de j nous permet de voir que la variable de la boucle intérieure « tourne plus vite » que l’autre.
Dans lili
, on travaille maintenant avec des nombres pour faciliter la lecture.
Avec Definir
, écrire une commande qui affiche une
liste de liste sous forme de matrice, les sous-listes
étant considérées comme étant les lignes de la matrice,
puis idem pour les colonnes de la matrice. Vous les
appelerez Afficher_comme_lignes
et Afficher_comme_colonnes
.
En clair, on veut que (Afficher_comme_lignes lili)
donne :
1 2 3 4 5 6
Et on veut que (Afficher_comme_colonnes lili)
donne :
1 3 5 2 4 6
Toujours avec Definir
, écrire une commande Creer_matrice
prenant
deux entiers strictement positifs m et n en paramètre et
retournant une liste de longueur n contenant des listes
de longueur m pleines de zéros. Appelons cette procédure
matrice_mxn
.
Vous aurez peut-être besoin de créer auparavant la commande
Creer_ligne
prenant un entier strictement positif n en paramètre et
retournant une liste de longueur n.
Écrire huit parcours qui vont remplir des matrices 3×2 avec les nombres entiers de 1 à 6 de façons à obtenir :
1) 1 4 2) 4 1 3) 3 6 4) 6 3 2 5 5 2 2 5 5 2 3 6 6 3 1 4 4 1 5) 1 2 6) 2 1 7) 5 6 8) 6 5 3 4 4 3 3 4 4 3 5 6 6 5 1 2 2 1
Vous avez carte blanche pour la stratégie de parcours (il y en a au moins
trois), mais vous pouvez réutiliser Creer_matrice
et Afficher_comme_lignes
.