Aller au contenu

Activités préparatoires#

Les types construits

Activité 1 Des données en vrac#

ranger, retrouver, modifier : trois façons de regrouper

Durée : 25 min · Par binômes, sans machine

Consignes

  • Matériel : le cahier (toutes les réponses et tous les dessins s’y font), un crayon, quelques papillons adhésifs (post-it).

  • Jusqu’ici, une variable rangeait une seule valeur. Voici trois « tas » de données qui vont ensemble : il s’agit de décider comment les ranger pour bien s’en servir ensuite.

Tas 1 : une carte d’identité Tas 2 : une liste de courses Tas 3 : les casiers de la classe
« Durand », « Léa », 2009, « Monaco »
(nom, prénom, année de naissance, ville de naissance)
pain, lait, pommes, beurre
(écrits au fil de la semaine)
Léa : casier 112
Hugo : casier 87
Inès : casier 245

Exercice 1 — Retrouver une information #

Recopier sur le cahier le tableau ci-dessous : il sert pour les questions 1 à 3.

  1. Pour retrouver une information dans chaque tas, que dit-on le plus naturellement : « la troisième » (une position) ou « celle de Hugo » (une étiquette) ? Compléter la 1re ligne du tableau.

  2. Ce tas va-t-il changer après sa création ? Si oui, donner un exemple de changement ; si non, expliquer pourquoi il ne doit pas changer. Compléter la 2e ligne.

  3. L’ordre des éléments compte-t-il ? (Que se passe-t-il si on échange deux éléments ?) Compléter la 3e ligne.

Tas 1 (identité) Tas 2 (courses) Tas 3 (casiers)
on retrouve par…
va changer ?
l’ordre compte ?
Corrigé

1–3. Réponses attendues (les justifications comptent plus que les mots) :

Tas 1 (identité) Tas 2 (courses) Tas 3 (casiers)
on retrouve par… la position (le 1er = nom, le 3e = année…) la position (ou on parcourt toute la liste) l’étiquette (le prénom)
va changer ? non : l’année de naissance ne change pas, et ne doit pas changer oui : on ajoute, on raye oui : un élève arrive, change de casier
l’ordre compte ? oui : échanger nom et prénom change le sens peu (mais on peut vouloir l’ordre du magasin) non : on cherche par prénom

Exercice 2 — Des rangées et des tiroirs #

On propose deux façons de ranger : une rangée de cases numérotées à partir de 0, ou des tiroirs étiquetés.

  1. Reproduire les deux dessins sur le cahier, puis ranger le tas 2 dans la rangée de cases et le tas 3 dans les tiroirs. Que lit-on dans la case numéro 2 ?

  2. On ajoute « œufs » à la liste de courses, puis on raye « lait ». Que devient la rangée ? Les numéros des cases changent-ils ?

  3. Hugo change de casier : il prend le 90. Qu’efface-t-on sur le dessin ? Peut-on avoir deux tiroirs étiquetés « Hugo » ? Que faudrait-il faire si deux élèves s’appelaient Léa ?

  4. La carte d’identité se range aussi dans une rangée de 4 cases. Mais personne ne doit pouvoir écrire « 2010 » à la place de « 2009 » par erreur. Comment le représenter sur le dessin ?

Corrigé

4. Cases 0 à 3 : pain, lait, pommes, beurre. La case numéro 2 contient pommes (et non lait : on numérote à partir de 0, convention déjà vue avec les chaînes et range).
5. On ajoute une case à la fin (« œufs », case 4) ; rayer « lait » fait glisser pommes, beurre et œufs d’un cran vers la gauche : leurs numéros changent (pommes passe de 2 à 1). La rangée s’allonge ou raccourcit : elle est modifiable.
6. On efface 87 dans le tiroir « Hugo » et on écrit 90 ; l’étiquette ne bouge pas. Deux tiroirs « Hugo » : non, on ne saurait plus lequel ouvrir — une étiquette doit être unique. Deux Léa : il faut une étiquette qui les distingue (« Léa D. » et « Léa M. », ou un numéro d’élève).
7. Un cadenas, une rangée « plastifiée » ou « sous verre » : on peut lire les cases, pas y écrire. Toute idée de « figé » convient.

Exercice 3 — Une étiquette, ou deux ? #

En Python, une variable est plutôt une étiquette (un post-it) collée sur une feuille, avec une flèche vers cette feuille. Le soir, Maman écrit la liste de courses et y colle l’étiquette maman. Papa dit « c’est aussi ma liste » et colle l’étiquette papa sur la même feuille.

  1. Papa barre « pain » et écrit « brioche » à la place. Que lit Maman sur sa liste ?

  2. Prédire, puis vérifier. Voici la même histoire en Python. Écrire sur le cahier ce qu’affiche la dernière ligne avant de l’exécuter (le professeur l’exécute ensuite au tableau), puis noter à côté le résultat obtenu.

    maman = ["pain", "lait", "pommes"]
    papa = maman
    papa[0] = "brioche"
    print(maman)
    
  3. Que faudrait-il faire, avec les feuilles de papier, pour que Papa puisse modifier sa liste sans toucher à celle de Maman ? Dessiner la nouvelle situation sur le cahier (étiquettes, flèches, feuilles).

Corrigé

8. Maman lit brioche, lait, pommes : il n’y a qu’une feuille, avec deux étiquettes dessus.
9. Python affiche :
[’brioche’, ’lait’, ’pommes’]. Beaucoup d’élèves prédisent [’pain’, ’lait’, ’pommes’], car ils pensent que papa = maman « copie » la liste : c’est exactement la confusion que l’activité doit faire apparaître.
10. Il faut photocopier (ou recopier) la feuille et coller l’étiquette papa sur la copie : deux feuilles, une flèche chacune. En Python, on fabriquera cette copie avec une compréhension (que l’on verra dans le cours) : papa = [x for x in maman] ; Maman garde alors [’pain’, ’lait’, ’pommes’].

Exercice 4 — Mettre des mots #

  1. Recopier et compléter : « Pour choisir comment regrouper des données, on se pose deux questions : est-ce qu’on retrouve un élément par sa …… ou par une …… ? Est-ce que la collection va …… après sa création ? »

  2. Recopier et compléter : « Une variable n’est pas une boîte qui contient la valeur : c’est une …… qui …… vers un objet. Deux variables peuvent désigner …… objet. »

Corrigé

11. « …par sa position (un indice) ou par une étiquette (une clé) ? Est-ce que la collection va changer (être modifiée) après sa création ? »
12. « …c’est une étiquette (un nom) qui pointe vers un objet. Deux variables peuvent désigner le même objet. »