SE CONNECTER
1,2,3... codez ! | Le site de la Fondation La main à la pâte
Module 123 Codez | Programmer | Informatics and Digital Creation

Projet « Cryptographie » – Séance 13 (optionnelle) Programmer l’affichage de l’histogramme (1)


1, 2, 3, codez ! - Activités cycle 4 - Projet « Cryptographie » - Séance 13 (optionnelle) : Programmer l'affichage de l'histogramme (1/2)

Discipline dominante

Mathématiques

Résumé

Les élèves perfectionnent leur programme précédent pour qu’il affiche l’histogramme des fréquences du texte analysé. Ils tracent les axes du graphique et utilisent des costumes (notions propres à Scratch) afin de légender l’axe des abscisses.

Notions

Idem séances précédentes

Matériel

Idem séances précédentes

Note pédagogique
Dans Scratch, chaque lutin possède un « stylo », ce qui lui permet (s’il l’abaisse) de tracer des traits. Cette fonctionnalité est très intéressante pour réaliser des figures géométriques ou, comme ici, tracer des courbes.

Étape 1 : définir les différentes étapes du projet  (10 minutes)

Il est très peu probable que des élèves de cycle 4, qui découvrent tout juste les fonctions (en mathématiques) et leur représentation graphique, soient capables d’expliciter, tous seuls, un algorithme permettant de créer un graphique et de dessiner des courbes.
Nous conseillons donc de réaliser cette étape collectivement.

Difficulté

Nom de l’étape

Nature des tâches à réaliser

Étape 1 : définir les différentes étapes du projet

  • C’est le travail que la classe est en train de faire.

Étape 2 : tracer les axes du graphique

  • Créer un nouveau lutin pour accueillir les programmes liés au tracé du graphique.
  • Définir une position d’origine.
  • Tracer un axe horizontal partant de cette position.
  • Tracer un axe vertical partant de cette position.
  • Mettre ce tracé dans une fonction, et appeler cette fonction depuis le programme principal du lutin.

Étape 3 : placer les graduations sur le graphique

  • Afficher les 26 lettres de l’alphabet sur l’axe des abscisses.
  • En faire une fonction, appelée par le programme principal.

Étape 4 : tracer l’histogramme

  • Pour chaque lettre, partir de l’axe des abscisses (à la position correspondant à cette lettre), et tracer un trait vertical, allant jusqu’à l’ordonnée correspondant à la fréquence de cette lettre.

Étape 5 : normaliser l’histogramme

  • Repérer la lettre la plus fréquente.
  • Faire en sorte que la fréquence de cette lettre occupe toujours toute la hauteur du graphique.

Étape 6 : graduer l’axe des ordonnées

  • Afficher un trait horizontal, sur l’axe des ordonnées, pour chaque valeur possible de la fréquence des lettres.

Étape 7 : analyser quelques textes

  • Tester le programme à l’aide de quelques textes courts.

Les étapes 5 et 6 permettent d’améliorer le rendu final du graphique, mais ne sont pas indispensables.

Étape 2 : tracer les axes du graphique (15 minutes)

Cette étape ne contient pas de difficulté majeure. Si les élèves ont déjà manipulé de stylo dans Scratch, et s’ils sont familiers avec les représentations graphiques (axes des abscisses et ordonnées), ils y arrivent sans problème. Dans le cas contraire, ne pas hésiter à les guider légèrement.
 

Notes pédagogiques

  •  On peut choisir de mettre des valeurs « en dur » dans le programme, comme les coordonnées du point d’origine, ou la longueur des axes, etc. Nous le déconseillons car, dans ce cas, le programme contient des données numériques qu’il devient difficile d’interpréter. Par ailleurs, si l’on souhaite changer une de ces valeurs, il faut penser à la changer partout où elle apparait, ce qui peut facilement être source d’erreur.
  •  Pour ces raisons, nous conseillons d’utiliser des variables ad hoc. Dans les exemples qui suivent, nous avons défini les variables suivantes :
    •  X0 et Y0 : coordonnées du point d’origine du graphique (idéalement, en bas à gauche de l’écran).
    •  Xmax et Ymax : abscisse et ordonnée maximales (auxquelles on stoppe le tracé des axes)
  •  Par ailleurs, afin de ne pas surcharger le programme en cours, nous conseillons de placer ce nouveau programme dans un nouveau lutin (qu’on peut nommer « initialise graphique » par exemple).

Étape 3 : placer les graduations sur le graphique (20 minutes)

Cette étape n’est pas compliquée en soi, mais elle nécessite de faire appel à une nouvelle instruction : estampiller (qui permet d’utiliser le lutin comme un tampon encreur : une trace définitive est laissée à l’écran, avec l’apparence du lutin au moment où l’instruction « estampiller » est utilisée.
 

Note pédagogique
 Une façon simple de placer les graduations aurait été de parcourir l’axe des X et d’écrire (un peu en dessous de cet axe) les lettres A, B, C… jusqu’à Z. Malheureusement, Scratch ne permet pas d’écrire à l’écran : on peut soit dessiner à l’aide du stylo, soit afficher ou masquer des lutins (qui peuvent prendre différentes apparences : leur « costumes »). Programmer le dessin de chaque lettre à l’aide du stylo est très fastidieux et ne présente aucun intérêt… c’est pourquoi nous allons utiliser la seconde méthode.

Pour faire afficher une lettre à l’écran, le mieux est de créer un nouveau costume au lutin, costume qui aura l’apparence de cette lettre. On peut créer autant de costumes qu’on le souhaite, et donc on peut représenter toutes les lettres de l’alphabet. Ci-dessous, la méthode pour importer un costume prédéfini dans Scratch.

Importer les 26 costumes prend un peu de temps mais ne présente aucune difficulté. Une fois tous les costumes créés, il faut décider de leur emplacement. Si l’on veut espacer les lettres régulièrement, on peut calculer l’espacement entre les lettres et créer une variable (nommée « Pas_X » ci-après).

Il ne reste plus qu’à placer toutes les lettres. Pour cela, il faut déplacer le lutin, en lui faisant changer de costume et en l’estampillant à chaque étape.

Note pédagogique

  •  Ici, on s’est décalé horizontalement de « pas_X/2 » afin de centrer la position des lettres, et verticalement de « -20 » afin d’écrire en dessous de l’axe des abscisses.
  •  Il est aussi possible d’utiliser des « clones » du lutin, à la place de l’instruction « estampiller ». Les clones sont indispensables si l’on veut que les différentes instances du lutin puissent évoluer (se déplacer, interagir…). Ici, il s’agit simplement de fixer une image à l’écran : l’instruction « estampiller » suffit largement.

Le résultat final est un graphique qui ressemble à ceci :