Ce cours est visible gratuitement en ligne.

J'ai tout compris !
Apprenez à programmer en TI-Basic !

Apprenez à programmer en TI-Basic !

Mis à jour le vendredi 21 juin 2013
  • 1 semaine
  • Facile

Les listes sont simplement de nouvelles variables qui contiennent une suite de nombres, "listés" dans un certain ordre. Un exemple de liste : $$\{25,89.3,5/3\}$$
Elles seront très utiles !

Un exemple de programme qui utilise les listes : le TP sur la décomposition.

Les bases

Bon, déjà, on sait qu'une liste est une suite de nombres. Mais quelle est la syntaxe d'une liste, comment en écrire une ?
Si vous voulez par exemple "fabriquer" une liste avec les termes 56, 38 et 44.5, il suffit de les placer entre deux accolades et de les séparer par des virgules. Dans notre exemple, la liste s'écrirait {56,38,44.5}.

Les accolades se trouvent en faisant

Image utilisateur
Image utilisateur

pour l'accolade ouvrante et

Image utilisateur
Image utilisateur

pour l'accolade fermante.

Si vous tapez cette liste sur l'écran principal, l'écran vous affichera la même mais avec des espaces à la place des virgules.

Maintenant, vous allez pouvoir voir comment effectuer une opération sur une liste pour que celle-ci s'applique à chacun de ses termes.

Nous allons donc, pour commencer, essayer de fractionner la liste ... ou plutôt les termes de la liste. Il suffit pour cela de faire comme nous l'aurions fait pour une autre variable. Nous tapons donc : {56,38,44.5}>Frac

Et là, magie magie :magicien:

Image utilisateur

Nos termes sont fractionnés ! (Bon, ok, là il n'y avait qu'un seul terme qui pouvait être fractionné)

Et maintenant, essayez de multiplier et diviser la liste par un nombre, ou encore de lui additionner et retrancher un autre nombre. Exemples :

  • {56,38,44.5}*3.4 = {190.4,129.2,151.3}

  • {56,38,44.5}/2   = {28,19,22.25}

  • {56,38,44.5}+12  = {68,50,56.5}

  • {56,38,44.5}-47  = {9,-9,-2.5}

Vous pouvez donc remarquer que l'on a fait plusieurs opérations en une seule fois. Voici un petit schéma pour mieux comprendre :

Image utilisateur

Voilà. Vous pouvez même, si vous le souhaitez, appliquer à la liste des fonctions, par exemple la trigonométrie.
Ex:cos({56,38,44.5}) = {.5591929035, .7880107536, .7132504492}

Mais… mon écran n'affiche qu'une partie du résultat !

Sans doute parce que le résultat est trop long ; pour le faire défiler, il faut utiliser les touches droite et gauche.

Bon, maintenant que vous savez pas mal de choses sur les listes, on va voir comment les mémoriser et les rappeler.

Mémorisation

Création

Maintenant que l'on sait comment fabriquer, afficher, multiplier, etc. les listes, on va voir comment mémoriser ces variables.

Il y a 6 listes déjà prédéfinies. Leurs noms se trouvent en faisant

Image utilisateur

+ une touche entre 1 et 6, et la variable liste correspondante est insérée (format du nom : L + indice chiffre entre 1 et 6).
Et pour mémoriser notre liste dans la variable, on fait comme pour n'importe quelle variable. Dans notre exemple, il faut taper {56, 38, 44.5} → L1

Cela nous donne donc : {56, 38, 44.5 → L1

Exercice : donner l'expression qui permet d'additionner 28 à cette liste (en utilisant la variable) puis de multiplier le résultat par 4,5.

4.5(L1+28

Essayez de rappeler L1 avec

Image utilisateur

.

Et hop le contenu de la liste vient s'insérer au niveau du curseur.

Nous allons voir 2 fonctions avant de passer au chapitre suivant :

  • dim( : cette fonction renvoie la dimension de la liste qui figure entre parenthèses (le nombre de termes qui la constituent). Dans notre exemple de liste, on a dim(L1) = 3.
    Vous pouvez également définir la dimension de la liste. Si celle-ci n'existe pas, elle sera créée. Exemple :

    :{23,56,1.2→L1
    :dim(L1→A // on a A = 3
    :4→dim(L1 // on a L1 = {23,56,1.2,0}
    :2→dim(L1 // on a L1 = {23,56}

    Vous pouvez donc constater que lorsqu'on ajoute des termes à une liste, il sont automatiquement initialisées à 0. De même, si l'on crée une liste avec dim(, tous ses termes seront égaux à 0.

  • Fill( // Remplir( : permet donner une même valeur à tous les termes d'un liste. La syntaxe est Fill(valeur,nom_de_liste). Faites bien attention : la valeur à mettre est avant le nom de liste. Exemple :

    Anglais

    Français

    :{32,64,91→L1
    :Fill(-4,L1 //on a L1 = {-4,-4,-4}
    :{32,64,91→L1
    :Remplir(-4,L1 //on a L1 = {-4,-4,-4}

Maintenant, vous avez tous les bagages nécessaires pour apprendre à accéder individuellement à chaque terme de la liste.

Destruction

Je crois que vous avez deviné la méthode. :p
Allez, détruisez-moi la liste L1 !

DelVar L1

Accéder à chaque terme

Contrairement à de nombreux langages, la numérotation des termes commence à 1, et non pas à 0. Toujours dans notre même exemple de liste, le terme n°1 aura pour valeur 56, le n°2 : 38, et le n°3 : 44.5. Mais pour accéder à un terme précis, il faut que la liste soit enregistrée dans une variable Liste.

Et là, c'est d'une facilité déconcertante : on fait suivre le nom de la variable du numéro entre parenthèses.
Par exemple, pour obtenir le terme n°2, on tape : L1(2). Mais fermer la parenthèse n'est pas obligatoire. On peut donc remplacer par : L1(2

Vous pouvez en plus modifier la valeur d'un terme de la liste, il suffit pour cela de suivre cet exemple : 78.2 → L3(2
Ici, le terme n°2 de la liste L3 est initialisé à 78.2.

Mais avec cette initialisation, une application intéressante peut en être tirée : logiquement, nous pourrions penser que le numéro indiqué ne doit pas dépasser le nombre de termes que contient la liste ; eh bien cela n'est pas tout à fait vrai. Vous pouvez en effet faire excéder le numéro d'une unité.

Je n'ai rien compris ! Je quitte immédiatement ton tutoriel, j'en ai par-dessus la tête !

Non ! Pour que vous puissiez comprendre, je vous illustre tout ça par un exemple :

:{24,32→L1  // Notre liste L1 possède 2 termes
:78.2→L1(2  // L1 = {24,78.2}
:-8→L1(4    // Strictement interdit : le numéro indiqué n'est pas dans la liste. Il se produit donc une erreur
:-7→L1(3    // L1 = {24,78.2,-7}

La ligne 4 se révèle particulièrement importante : l'instruction a marché et un nouveau terme s'est présenté à la liste. Pourquoi ? Tout simplement parce-que le numéro indiqué n'avait qu'un décalage de un cran. Dans ce cas et seulement dans ce cas, l'instruction est acceptée et un nouveau terme sera créé.

Exercice : placer le triple de la valeur du terme n°2 augmenté de la valeur du terme n°1 dans le terme n°3 (oui, il sont tordus mes exercices).

3L1(2)+L1(1→L1(3

Les listes personnalisées

Les listes personnalisées sont des listes que l'on crée soi-même et auxquelles on donne un nom choisi (autre que les noms prédéfinis L1, L2, L3…).
Elles sont généralement utilisées pour sauvegarder des scores, ou des parties, mais rarement pour autre chose car elles prennent de la place dans la mémoire (à chaque utilisation, il faut taper le nom en entier, un octet par caractère) et sont plus lentes d'utilisation.

Pour faire une liste personnalisée à partir d'un programme ou de l'écran principal, on utilise le caractère "ʟ" (un "L" en indice) qui se trouve dans le menu consacré aux listes en faisant :

Image utilisateur
Image utilisateur

Bon, j'en profite pour vous apprendre à utiliser ce menu. Il est composé de 3 colonnes (on choisit grâce aux touches droite et gauche) :

  • NAMES // NOMS : ici, vous retrouvez toutes les listes qui sont présentes dans la mémoire de votre calculatrice.

  • OPS : on y trouve toutes sortes d'opérations dédiées aux listes (et c'est ici que l'on trouve notre petit L).

  • MATH : fonctions mathématiques sur les listes. Exemple : terme le plus grand de la liste.

Revenons à nos moutons : on fait suivre ce caractère par d'autres caractères (qui composent le nom de la liste) qui peuvent être :

  • une lettre en majuscules

  • un chiffre

Exercice : Dans un programme, créer une liste personnalisée de nom "ABC3" avec pour termes : 78, 3.2, 41.5 ; puis mettre la somme du triple du terme n°2 et de la moitié du terme n°3 dans le terme n°1.

Vous constatez sûrement qu'il devient lassant de répéter à chaque fois le nom, et que le programme s'alourdit rapidement.

Nous pouvons alléger un peu ce programme : lors de l'initialisation, le "ʟ" est facultatif juste après le "→". On peut donc remplacer l'ancien par :

:{78,3.2,41.5→ABC3
:3ʟABC3(2)+.5ʟABC3(3→ABC3(1

Opérations entre listes

Si vous n'avez pas oublié, vous devez vous souvenir que l'on peut multiplier, diviser, etc. une liste par un réel. Maintenant, nous allons voir comment multiplier, diviser, etc. les listes entres elles.

Une première condition vient s'imposer : les listes que l'on utilise doivent avoir la même dimension (le nombre de termes qui les compose). Après, vous faites presque ce que vous voulez. Voici un exemple de multiplication de 2 listes entre elles :
{12,2.3,7} * {0.4,12,3.6} = {12*0.4,2.3*12,7*3.6} = {4.8,27.6,25.2}
Vous voyez donc que chaque terme de la liste applique l'opérateur (ici la multiplication) sur le terme de la liste voisine de même numéro. Voici un petit schéma pour mieux comprendre :

Image utilisateur

Vous voyez la différence avec l'ancien schéma ? Vous pouvez donc maintenant deviner les opérateurs et fonctions que vous pouvez utiliser.

Fonctions associées

Nous allons voir ici les fonctions les plus importantes, les plus utilisées et les plus évidentes.

seq( // suite(

Cette fonction sert à créer des suites finies. On va donc entrer comme arguments :

  • Le calcul qui sera effectué pour chaque terme calculé

  • Le nom de la variable que l'on va utiliser sur laquelle vont se fonder nos calculs

  • La valeur de départ que l'on donne à la variable

  • La valeur d'arrivée

  • Et éventuellement le pas (valeur d'incrémentation) de la variable à 1 par défaut

Par exemple, si je veut calculer les racines carré des nombres de 4 à 27 en comptant de 3 en 3 en utilisant la variable G, il faut taper le code suivant :

seq(√(G),G,4,27,3

N'oubliez pas :

  • le résultat de cette fonction est une liste

  • cette fonction est longue à exécuter surtout s'il y a beaucoup de valeurs à calculer

SortA( et SortD( // Tricroi( et TriDécroi(

Elles servent respectivement à classer une liste dans un ordre croissant et décroissant. On spécifie dans les parenthèses une ou plusieurs listes à trier séparées par des virgules de séparation. Elles ont cependant plusieurs particularités :

  • Elles ne fournissent pas de résultat => vous ne pouvez pas les mettre dans une expression

  • La liste figurant dans les parenthèses doit être une variable

Si on veut trier dans l'ordre croissant la liste {5,9,2,7,3}, voici comment nous devons procéder :

:{5,9,2,7,3→L1
:SortA(L1      // L1 = {2,3,5,7,9}

La particularité de cette fonction est donc de directement modifier la valeur de l'argument.

min( et max(

Ces fonctions renvoient la valeur minimale ou la valeur maximale de deux nombres. Exemple : max(27,12) = 27.
On peut également les utiliser avec les listes. Exemple : min({12,56,14},{15,28,10}) = {12,28,10}

mean( // moyenne(

Donne la moyenne de la liste avec ou sans coefficients.

Sans coefficient

Syntaxe : mean(liste
Exemple : mean({2,4}) = 3

Avec coefficients

Syntaxe : mean(liste,liste_coefficients
Exemple : mean({5,8},{2,1}) = 6

augment( // chaîne(

Concatène (joint bout à bout) deux listes (pas forcément avec le même nombre de termes).
Exemple: augment({26,53.1},{17,-12,11}) = {26,53.1,17,-12,11}

sum( // somme(

Donne la somme de tous les éléments (ou termes) d'une liste.
Exemple : sum({12,15,-25}) = 12+15-25 = 2

On peut aussi demander la somme des termes compris entre deux rangs.
Exemple : sum({10,6,8,9,5,12,14},2,5) = 6+8+9+5 = 28

prod(

Renvoie le produit des terme d'une liste.
Exemple : prod({2,5,4}) = 40

On peut aussi demander le produit des termes compris entre deux rangs.
Exemple : prod({5,7,2,3,4,8},2,6) = 7*2*3*4*8 = 1344

median( // médiane(

Donne la médiane (valeur pour laquelle on a autant de valeurs supérieures qu'inférieures) d'une liste avec ou sans effectifs.

Sans effectifs

Syntaxe : median(liste
Exemple : median({2,4,25}) = 4

Avec effectifs

Syntaxe : median(liste,liste_effectifs
Exemple : median({2,4,25},{1,1,3}) = 25

cumSum( // somCum(

Renvoie une liste des somme cumulées.
Exemple : cumSum({1,4,8}) = {1,5,13}

∆List( // ∆Liste(

Renvoie les écarts entre termes dans une liste comportant un terme de moins.
Exemple : ∆List({4,28,10,14}) = {24,-18,4}

select( // Sélect(

Permet de choisir un échantillon d'un nuage de points (définis par une abscisse et une ordonnée).
Syntaxe : select(liste_abscisses,liste_ordonnées)
Les points doivent être sélectionnés dans une série statistique (stat plot) et affichés à l'écran.

Lors de l'exécution de l'instruction, choisir le début (gauche) de l'échantillon puis la fin (droite) en utilisant les flèches droite et gauche et la touche

Image utilisateur

. Il faut au préalable avoir choisi la série statistique à prélever grâce aux touches haut et bas. Si vous ne comprenez pas son utilisation, ce n'est pas grave car elle ne sert pas à grand chose.

stdDev( et variance( // ecart-type( et variance(

Donnent respectivement l'écart type et la variance d'une liste (notion étudiée au lycée).
Exemples : stdDev({2,7,4,5}) = 2.081665999 et variance({2,7,4,5}) = 13/3

Attacher une formule à une liste

Ça veut dire quoi : attacher une formule à une liste ?

C'est quand on va par exemple demander à une liste d'ajuster ses valeurs en fonction d'une autre liste. On va par exemple lui demander de toujours rester le double d'une liste (ce qui est équivalent à demander que chacun de ses termes soit toujours le double du terme de même indice de l'autre liste).

Mais là arrive un petit problème : si on demande à L1 d'être le double de L2 et à L2 d'être le double de L1 ? Dans ce cas, votre calculatrice explose. :'( Vous vous doutez bien que ça n'est pas vrai. :p Votre calculette va calculer, calculer et calculer mais pas bien longtemps : il va rapidement arriver l'erreur "OVERFLOW". En effet, il va vite y avoir un dépassement (>9.999999999E99 ou <-9.999999999E99). Et s'il n'y en a pas, c'est un "ERR:MEMORY" qui vient à la place car au bout d'un moment, la calculatrice n'a plus assez de RAM pour poursuivre le calcul.

Bon, on continue ? J'aimerais bien savoir comment on fait pour attacher une formule, moi !

Vous placez la formule entre guillemets, vous placez le fameux caractère "→" et enfin le nom de liste. Par exemple, si vous voulez que la liste L4 ait toujours pour valeur le double de celle de L2, il suffit d'entrer : "2L2→L4 (n'oublions pas que fermer les guillemets n'est pas obligatoire).

Exercice : attacher à L3 la formule "le triple de L2 élevé de la moitié de L5" (des phrases mathématiques ne vous feront pas de mal :p ).

"3L2+.5L5→L3

Encore un truc et vous connaissez tout sur les formules jointes à une liste : comment détacher une formule ? Plusieurs solutions :

  • Changer la valeur d'un terme de la liste

  • L'effacer

  • Utiliser l'éditeur de stats (que nous verrons juste après)

  • Exécuter l'expression "→nomliste

On peut passer à l'éditeur (pas indispensable mais pratique).

Editeur de listes

Il existe un éditeur de listes assez souple, et nous allons donc nous pencher dessus et étudier les possibilités proposées. Pour y accéder, il suffit de faire

Image utilisateur

puis 1:Edit...
Vous pouvez aussitôt voir apparaitre l'éditeur de listes. Nous allons donc voir comment il fonctionne.

Image utilisateur

Ajouter une liste

Pour ce faire, il suffit d'amener le curseur tout en haut (au niveau des noms de liste) à l'endroit où vous désirez insérer une liste, puis de faire

Image utilisateur
Image utilisateur

. Vous voyez une nouvelle ligne apparaître avec en bas de l'écran une invite qui propose de donner un nom à cette nouvelle liste (ALPHA est automatiquement activé).

Image utilisateur

Vous pouvez taper une liste préprogrammée (exemple pour L1 :

Image utilisateur
Image utilisateur

) ou bien générer une liste personnalisée (par exemple pour la liste "ABC" :

Image utilisateur
Image utilisateur
Image utilisateur

car ALPHA est activé).
Valider avec

Image utilisateur

Supprimer une liste

Pour retirer une liste de l'éditeur (elle ne sera pas supprimée), il faut amener le curseur sur celle-ci (toujours dans l'en-tête) puis presser la touche

Image utilisateur

Vider le contenu d'une liste

Toujours le curseur sur la bonne liste, il faut cette fois presser la touche

Image utilisateur

puis de presser la touche bas.

Insérer, supprimer, ou modifier un terme

Pour les termes, cela ce fait semblablement :

  • Image utilisateurImage utilisateur

    Insérer : positionner le curseur à l'endroit où vous désirez insérer un nouveau terme puis presser

  • Image utilisateur

    Supprimer : même chose mais en pressant

  • Image utilisateurImage utilisateurImage utilisateurImage utilisateurImage utilisateurImage utilisateur

    Changer la valeur d'un terme : toujours avec le curseur au bon positionnement, taper par exemple (

    )

    pour remplacer l'ancien contenu par 16. La pression de

    est facultative. Pour annuler avant la pression de

    , presser bas ou haut.

Vous voyez que ce n'était pas trop difficile. On va donc pouvoir passer aux matrices.
P.S. : Pour l'utilité des listes, vous la découvrirez dans divers programmes que je vous présenterais.

L'auteur

Découvrez aussi ce cours en...

Exemple de certificat de réussite
Exemple de certificat de réussite