Tutoriel 10

Les listes

 

Nouvelles commandes :

> dim(LN = Donne ou configure la dimension d'une liste [2nd] [LIST] [>] [3]
> Fill(A,LN = remplit une liste d'un certain chiffre [2nd] [LISTE] [>] [4]
> SortA(LN = Tri par ordre croissant d'une liste [2nd] [LIST] [>] [1]
> SortD(LN = Tri par ordre décroissant d'une liste [2nd] [LIST] [>] [2]
> L1 à L6 ou L... = Variable listes [2nd] [1 à 6] ou [2nd] [LIST] [>] [^] [ENTER] ...

Introduction :

Les listes sont des suites de valeur numériques dans une seule "variable".
Elles servent souvent dans des jeux mais aussi dans certains programmes de mathématiques.
Pour vous montrer leur utilité, nous allons faire un programme qui mémorise les coordonnées de points pour pouvoir les afficher ultérieurement.
Il est ici impossible les stoquer tous dans des variables.
De plus, les listes permettent d'accéder à chaque valeur par un numéro, ce qui simplifie leur imbrication dans des boucles For( par exemple.

Création et initialisation de listes :

La TI-83 Plus comporte six listes (de L1 à L6 ; accessibles via les touches 1 à 6) mais vous pouvez très bien en créer d'autres.
Mais voyons d'abord la création d'une liste prédéfinie :
Exemples :
:3->dim(L1)
Exemple 1 ; dim( se trouve dans [2nd] [LIST] [>] [3]
:{1,7,5}->L1
Exemple 2
> Dans le premier exemple, on stoque 3 dans la dimension de la liste pprédéfinie L1 ; ce qui revient à lui donner une dimension de 3 cases : on pourra ainsi y stoquer trois nombres accessibles via les indices 1 à 3. Mais nous y reviendrons...
> Dans l'exemple 2, les nombre 1, 7 et 5 sont stoqués à la suite, directement dans la liste. Si la liste n'existait pas encrore, elle aurait été crées avec trois "cases" et remplie immédiatement.
> La seconde méthode est plus rapide car elle remplie la liste directement à sa création et la redimensionne au besoin en écrasant les valeurs précédentes.
> Quand à la première méthode, si il y avait déjà des chiffres de stoqués dans les trois premières cases, ils resteront : la liste ne serait ainsi pas mise à zéro (s'il y avait plus de trois cases, les suivantes seraient supprimées).
Pour remettre une liste à zéro en la créant, il convient donc de procéder comme dans cet exemple :
Démonstration :
:Delvar L1
Supprime bien sur la liste de la mémoire de la TI
:3->dim(L1
Ici, la liste n'existe pas encore, alors elle est créée et remplie de 0
Maintenant, si vous souhaitez avoir plus de six listes, il vous faut créer des listes personnalisées. Celle ci s'utilisent de la même façon que celless que nous venons de voir mais il faut commencer leur nom par un petit L (que vous trouverez dans [2nd] [LIST] [>] [^] [ENTER]), leur nom doit contenir uniquement des lettres (ou theta) et des chiffres et au maximum cinq caractères.
Exemple :
:5->dim(LTI83P)
Ici, la liste personnalisée TI83P est créée avec 5 "cases"

Stoquer dans une liste :

Pour stoquer des nombres dans uns liste, c'est à peu près pareil que pour le faire avec une variable.
Nous venons de voir que nous pouvons remplire une liste d'un seul coup comme ceci :
:{1,7,5}->L1
Attention : dans ce cas la liste est redimensionnée
Dans la plupart des cas, vous ne voudrez accéder qu'à une seule case. Supposons que vous aviez donné une dimension de 3 à la liste L1. Vous savez ainsi que vous ne pourrez stoquer que trois nombre dans la liste (ou alors il faut la redimensionner). Alors, pour remplire cette liste, nous accéderont à ses cases par les nombre 1 à 3 comme le montre cet exemple :
Exemple :
:23->L1(1)
Ici, on stoque 23 dans la case 1 de la liste L1 ; les autres valeurs de la liste restent inchangées
:0->L1(2)
Idem dans la case 2
:105->L1(3) Enfin, on stoque 105 dans la troisième case

Accéder à une liste :

Pour récupérer un nombre dans une liste, on suit le même principe :
Exemple :
:Disp L1(1)
Ici, on affiche ce qui est mémorisé dans la case 1 de la liste L1 ; soit 23 si on reprend l'exemple précédent
:Disp L1(2)
Idem pour la case 2
:Disp L1(3) Etc...

Autres commandes :

Vous en connaissez pour faire de bons jeux avec des listes.
Cependant, sachez que si vous ne connaissez pas la dimension d'une liste, vous pouvez y accéder via dim( .
Pour remplire tout une liste d'une certaine valeur, vous aurez besoin de Fill( ([2nd] [LIST] [>] [4])
Pour trier les données que contient une liste par ordre croissant, vous aurrez besoin de SortA( et pour trier par ordre décroissant, c'est SortD(.
Pour faire des programmes plus complexes (tri par ordre croissant, moyenne d'une liste, nombre maximum, somme cumulée...), vous aurez beoin des fonctions du menu [2nd] [LIST]. Je vous laisse y regarder dans le manuel de votre TI car ceci serait trop vaste.
Exemple de ces commandes :
:Fill(-1,L1)
Remplit la liste 1 du nombre -1 dans toutes ses cases
:SortA(L1)
Tri par ordre croissant la liste 1 ; si elle contenait {6,1,-5,7}, elle deviendra alors {-5,1,6,7}
:SortD(L1) Tri par ordre décroissant la liste 1 ; si elle contenait {6,1,-5,7}, elle deviendra alors {7,6,1,-5}

Application :

Nous allons donc procéder à une petite application "concrète" que nous diviserons en deux par pur besoin d'apprentissage.
Il y aura donc la partie calcul quii stoquera une série de nombre aléatoires dans une liste et une partie affichage qui irra voir dans a liste les coordonnées des points à afficher.
Partie 1 : Calcul des points et stoquage dans des listes :
:Disp "COMBIEN DE
:Input "POINTS ?",A
Demande à l'utilisateur une dimension pour la liste
:A->dim(L1)
Et l'applique à la liste L1, coordonnées X ; ici, pas besoin de mettre la liste à 0 puisqu'on va la remplire tout de suite
:A->dim(L2)
Et l'applique aussi à la liste L2, coordonnées Y
:For(X,1,A)
Boucle pour remplire la liste
:randInt(0,94)->L1(X)
Remplit les coordonnées X des points à afficher ultérieurement
:randInt(0,62)->L2(X)
Remplit les coordonnées Y des points à afficher ultérieurement
:End
Fin de la boucle
Partie 2 : Affichage des points celon les coordonnées stoquées dans les listes :
:0->Xmin:94->Xmax:0->Ymin:62->Ymax
On initialise l'écran graphique
:For(X,1,dim(L1))
Pour afficher tous les points de la liste, il faut connaitre le nombre de points qu'elle stoque, ceci est effectué avec dim(
:Pt-On(L1(X),L2(X))
Affiche le point
:End Fin de boucle

Un dernier mot sur Pause :

Nous avons déjà vu la commande Pause. Nous allons maintenant en voir une nouvelle utilisation :
Essayez ce code :
:{95,25,3,1,85,64,254,25,748,123,658,745,896,214}->L1 Initialisation de la liste à afficher
:Pause L1
Fait une pause tout en affichant L1 pour que l'utilisateur puisse la visualiser en entier
Lors de la pause, la liste 1 est affichée et vous pouvez appuyer sur droite ou gauche pour faire défiler la liste et ainsi la voir en entier.
Ainsi, si vous faites un programme de mathématiques par exemple, et que vous devez afficher une liste, faites comme ceci.
Il est impossible de faire autrement.

Conclusion :

Maintenant que vous connaissez l'existance des listes, il vous sera aisé de faire des jeux comme un serpent (on stoque les coordonnées du serpent pour ensuite pouvoir les effacer) ou un jeu de tunnel... Vous avez en main un outil plus puissant que ous ne le pensiez et je vous conseille d'y réfléchir et de bien comprendre son fonctionnement pour pouvoir aborder la lecon suivante qui traitera des matrices : une "dérivée" des listes et qui fonctionne à peu près pareil...

Retour : Sommaire
Aide : Liste des commandes
Précédent : Tutoriel 09 : Fonctions graphiques
Suivant : Tutoriel 11 : Les matrices