Outils pour utilisateurs

Outils du site


profgra:peda:listes:listes_2

Exercices sur les listes de listes

Prérequis

Il faut avoir suivi cette page pour lire celle-ci dans de bonnes conditions.

Liste de listes

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.

Dans le programme suivant, changez les « 1 » en d’autres nombres entiers pour écrire « BONJOUR ».

Parcours

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.

Remarques

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.

Affichages

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

Création

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.

Autres parcours

É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.

Approfondissement

  • création de la matrice nulle d’une taille donnée
  • affichage de matrice
  • saisie de matrice
  • opérations
    • addition de matrices (vérification même taille)
    • multiplication par un scalaire
    • soustraction
    • produit
  • transposition
  • construire
    • des matrices unité
    • des matrices avec des 1 strictement au dessus de la diag principale
  • trouver l'élément maximal ou la colonne de somme maximale
profgra/peda/listes/listes_2.txt · Dernière modification: 2016/12/01 18:34 par profgra