Une structure de données : la liste
Une liste permet de rassembler dans une même structure un grand nombre de variables. Une liste peut être vide. Cette liste est ordonnée (du premier élément au dernier), mais pas forcément rangée (c'est à dire que ses éléments ne sont pas triés par défaut).
Pour Scratch, c'est presque une variable comme les autres. Sa forme est la même, sa couleur est un peu plus rouge qu'orange.
On peut y mettre n'importe quels types de variables simples : textes ou nombres. Et même mélanger du texte et des nombres dans cette liste.
Comme c'est la seule structure complexe disponible de base dans Scratch, elle est très importante. Rien pour faire simplement, des tableaux, des arbres ou des réseaux.
Son affichage dans la scène va vous permettre de bien comprendre son contenu et son fonctionnement.
Ici elle a un nom. Il est indiqué qu'elle est vide. Donc sa longueur est égale à 0.
Vous pouvez utiliser cet affichage pour remplir cette liste. Cliquez sur + et écrivez dans les champs orange. Cliquez sur une croix pour supprimer un champ de la liste. On peut même importer ou exporter en fichier texte cette liste. Chaque ligne de ce fichier texte correspond à un élément de la liste (attention, des bugs sont encore possible avec Safari pour cela).
Pour gérer ces listes avec des instructions, il n'existe que trois blocs pour l'alimenter :
Voyons comment cela fonctionne :
Créez votre liste courses. Les blocs d'instructions apparaissent alors.
Cliquez sur . Votre liste courses contient maintenant "chose". Remplacez le mot "chose" par "truc" dans le bloc d'instruction. Cliquez une deuxième fois sur le bloc, la liste courses contient alors deux mots : chose et truc (dans l'ordre). Continuez encore pour obtenir une liste de 5 éléments.
Prenez maintenant l'instruction . Et remplacez "chose" par "début". J'espère que vous n'aviez pas déjà choisi ce mot précédemment. Observez.
Question⚓
Remplacez ensuite "début" par "fin". En quelle position devez-vous l'insérer pour que ce mot se trouve effectivement à la fin de la liste courses ?
Pour faire le ménage et recommencer à zéro, vous pouvez utiliser l'instruction .
Pour enlever un élément de la liste de façon plus chirurgicale, utilisez l'instruction . Attention cela ne supprime pas tous les 3 qui pourraient se trouver dans la liste (d'ailleurs les 3 ne se mangent pas). Cela supprime le 1er élément de la liste. Et cela décale tous les suivants d'une place vers la première.
Vous pouvez également modifier le contenu de cette liste à la main, dans le panneau présent sur la scène. Un clic sur une case pour y écrire, un clic sur la croix pour supprimer l'élément.
Avec un clic droit, vous pouvez importer ou exporter cette liste sous la forme d'un fichier texte (.txt). Chaque ligne du texte correspond à un élément de la liste. Comme pour un fichier csv, la virgule est le séparateur de colonne. S'il détecte une virgule ou un point-virgule dans la première ligne il vous demandera quelle colonne importer.
Contrairement aux mathématiques, les ordinateurs ne sont pas infinis
Les prénoms
Question⚓
Téléchargez le fichier suivant : Prenoms.txt
Il contient une liste de prénoms issue des bases de données de l'état. Exemple :
« samuel;m;english, french, biblical;9.30 »
Dans la première colonne se trouve le prénom : samuel
Dans la deuxième colonne, l'indication de genre : m
Dans la troisième colonne, une indication de langue d'origine : english, french, biblical (anglais, français, biblique)
Dans la quatrième et dernière colonne, sa fréquence par million d’occurrences dans le corpus Frantext : 9,30. La liste est justement classée par cette fréquence dans un ordre décroissant (les plus fréquents au début, les moins fréquents à la fin).
À ce niveau, nous n'allons utiliser que la première colonne : celle des prénoms.
Importez le fichier dans une nouvelle liste appelée prénoms. Supprimez à la main ou avec une instruction le premier élément qui n'est pas un prénom mais le titre de la colonne.
Le premier prénom de cette liste qui n'a aucune occurence (fréquence=0) dans ce corpus est aalyiah (féminin, anglais moderne). Faites un programme qui efface cet élément ainsi que tous les suivants de la liste.
Il y a bien entendu, bien d'autres choses à découvrir sur les listes, mais cela suffira pour l'instant.
Passez aux fiches d'activité pour l'Appariement.