← Retour au chapitre

Fiche à trous · 5ème · Mathématiques

Programmer en blocs — Séquences, entrées, sorties et boucles

Complétez de mémoire, puis vérifiez avec la page de corrigé.

Un programme est une liste d'ordres très simples que la machine suit sans rien deviner : elle les exécute un par un, dans l'ordre, de haut en bas. Pour savoir ce qu'il va faire, on l'exécute soi-même, bloc après bloc, sur son brouillon.

Des instructions, dans un ordre

Définition — instruction et programme :

Règle

Programme AProgramme Bau départ, le lutin regarde vers la droitemêmes blocs, autre ordrequandest cliquéstylo en position d'écritureavancer de60pastournerde90degrésavancer de30pasquandest cliquéstylo en position d'écrituretournerde90degrésavancer de60pasavancer de30pas6030départdépart6030
3.

« avancer » fait avancer le lutin droit devant lui ; « tourner ↻ » le fait pivoter sur place dans le sens des aiguilles d'une montre, « tourner ↺ » dans l'autre sens : tourner ne déplace pas le lutin.

Exécuter un programme à la main

  1. 4.
  2. 5.
  3. 6.

Exemple

Prévoir le tracé du programme A. Au départ, le lutin regarde vers la droite.

  1. 7.
  2. 8.

Résultat :

Piège

Le lutin regarde vers la droite ; après « tourner ↻ de 90 degrés », le faire monter.

mimer la rotation avec le doigt sur un cadran de montre avant de tracer.

Entrées et sorties

Définition — entrée et sortie :

quandest cliquédemanderChoisis un nombre.et attendredireréponse+5pendant2secondesdireréponse+5*3ENTRÉEon tape 7 : « réponse » vaut 7SORTIEle lutin dit 12 pendant 2 s, car 7 + 5 = 12SORTIEpuis il dit 36, car (7 + 5) × 3 = 36
11.

Identifier les entrées et les sorties

  1. 12.
  2. 13.
  3. 14.

Exemple

Quelles sont l'entrée et les sorties du programme de la figure ?

  1. 15.
  2. 16.

Résultat :

Piège

Taper le mot réponse au clavier dans la case blanche du bloc « dire ».

glisser le bloc arrondi « réponse » dans la case, ne jamais le recopier.

Des formules en blocs

Règle

ABréponse+5*3réponse+5*3en ligne : (réponse + 5) × 3(7 + 5) × 3 = 12 × 3 = 36en ligne : réponse + 5 × 37 + 5 × 3 = 7 + 15 = 22calculé d’abordcalculé d’abord
19.

Traduire une formule en blocs

  1. 20.
  2. 21.
  3. 22.

Exemple

Représenter dans un langage de programmation par blocs.

  1. 23.

Résultat :

Exemple

On lance le programme de calcul de la partie 2 et on tape 7. Prévoir ce que dit le lutin, avant de l'exécuter.

  1. 25.
  2. 26.

Résultat :

Piège

Dans le second « dire », remplacer « réponse » par 12 et trouver .

« réponse » ne change que si l'on tape une nouvelle valeur.

Analyser un programme, modifier ses paramètres

Définition — paramètre :

quandest cliquéstylo en position d'écritureavancer de80pastournerde90degrésavancer de40pastournerde90degrésavancer de80pastournerde90degrésavancer de40pasdépartlongueur 80longueur 80largeur 40Pour tracer un carré de côté 50 :· remplacer les deux 80 et les deux 40 par 50 ;· laisser les trois 90 : les angles restent droits.
29.

Analyser un programme, puis le modifier

  1. 30.
  2. 31.
  3. 32.

Exemple

Que trace ce programme ? Comment le modifier pour tracer un carré de côté 50 ?

  1. 33.
  2. 34.

Résultat :

Piège

Ne remplacer que les deux premiers paramètres de longueur, 80 et 40, par 50.

compter tous les blocs qui commandent une même grandeur, puis les modifier tous.

Répéter sans réécrire : la boucle

Définition — boucle « répéter n fois » :

quandest cliquéstylo en position d'écritureavancer de50pastournerde90degrésavancer de50pastournerde90degrésavancer de50pastournerde90degrésavancer de50pastournerde90degrésquandest cliquéstylo en position d'écriturerépéter4foisavancer de50pastournerde90degrés1234=50départle motif « avancer, tourner »est écrit une fois, exécuté 4 fois :4 × 50 = 200 pas parcourus.
37.

Remplacer une répétition par une boucle

  1. 38.
  2. 39.
  3. 40.

Exemple

Programme avec boucle de la figure : quelle longueur le lutin parcourt-il ? Et si l'on remplace 4 par 2 ?

  1. 41.
  2. 42.

Résultat :

Piège

Placer « tourner ↻ de 90 degrés » sous la boucle « répéter 4 fois » au lieu de l'y mettre.

vérifier, bloc par bloc, s'il est dans la boucle ou sous elle.

  • Ai-je exécuté le programme bloc par bloc, de haut en bas, en cochant chaque bloc ?
  • Ai-je repéré l'entrée (ce qu'on tape) et la sortie (ce qui s'affiche ou se dessine) ?
  • Pour un bloc emboîté, ai-je calculé le bloc le plus intérieur d'abord ?
  • Pour modifier un programme, ai-je changé tous les paramètres qui commandent la grandeur visée ?

Corrigé · à détacher

Programmer en blocs — Séquences, entrées, sorties et boucles

  1. 1. Une instruction est un ordre simple que la machine sait exécuter : avancer, tourner, afficher un message. Dans un langage de programmation par blocs, comme Scratch, chaque instruction est un bloc. Un programme est une suite de blocs emboîtés les uns sous les autres, sous un bloc de départ comme « quand le drapeau vert est cliqué ».
  2. 2. Séquencer, c'est choisir l'ordre des instructions. La machine les exécute de haut en bas, une seule à la fois : les mêmes blocs, rangés dans un autre ordre, donnent un autre résultat.
  3. 3. A et B contiennent les mêmes blocs de déplacement : A trace un angle droit, B un seul trait de 90 pas.
  4. 4. Marquer le départ sur le brouillon : un point pour la position, une flèche pour la direction.
  5. 5. Exécuter un seul bloc, noter ce qui a changé (position, direction, affichage), puis le cocher.
  6. 6. Passer au bloc suivant, jusqu'au dernier, sans jamais en regrouper deux.
  7. 7. « avancer de 60 pas » : un trait de 60 pas vers la droite.
  8. 8. « tourner ↻ de 90 degrés » : un quart de tour, sans tracer ; il regarde vers le bas. « avancer de 30 pas » : un trait de 30 pas vers le bas.
  9. 9. deux traits perpendiculaires : 60 pas vers la droite, puis 30 pas vers le bas
  10. 10. Une entrée est une donnée que le programme reçoit pendant son exécution : « demander … et attendre » pose une question, l'utilisateur tape une valeur, rangée dans le bloc arrondi « réponse », qui vaut la dernière valeur saisie et se glisse dans la case d'un autre bloc. Une sortie est ce que le programme produit : un message ou un nombre affiché par « dire », un dessin, un déplacement.
  11. 11. Le nombre tapé entre par « demander » ; les résultats sortent par les deux « dire ».
  12. 12. Chercher les blocs « demander » : chacun correspond à une entrée, la valeur que l'utilisateur tape.
  13. 13. Chercher ce que l'utilisateur voit : un « dire », un tracé, un déplacement. Ce sont les sorties.
  14. 14. Résumer en une phrase : « le programme reçoit …, et il affiche … ».
  15. 15. Un seul bloc « demander » : l'entrée est le nombre que l'utilisateur tape, rangé dans « réponse ».
  16. 16. Deux blocs « dire » : les sorties sont les deux résultats que dit le lutin.
  17. 17. le programme reçoit un nombre et affiche deux résultats calculés à partir de lui
  18. 18. Un bloc opérateur effectue une seule opération : « + », « - », « * » pour multiplier, « / » pour diviser. Pour une formule à plusieurs opérations, on emboîte les blocs : le bloc le plus intérieur est calculé en premier. L'imbrication joue le rôle des parenthèses. Une expression prend sa valeur au moment de l'exécution : pour la prévoir, on remplace « réponse » par le nombre tapé et on calcule de l'intérieur vers l'extérieur.
  19. 19. Mêmes nombres, mêmes opérations : seule l'imbrication change, et le résultat avec.
  20. 20. Trouver l'opération faite en dernier, avec les priorités habituelles (parenthèses, puis × et ÷, puis + et −) : c'est le bloc extérieur.
  21. 21. Remplir chacune de ses cases : un nombre, le bloc « réponse », ou un nouveau bloc opérateur pour un morceau de formule, que l'on remplit à son tour.
  22. 22. Relire de l'intérieur vers l'extérieur : on doit retrouver la formule de départ.
  23. 23. La multiplication est prioritaire, l'addition est faite en dernier : le bloc extérieur est « + ». Sa case de gauche reçoit un bloc « * » contenant 2 et « réponse » ; sa case de droite, le nombre 1.
  24. 24. un bloc « + » contenant le bloc « 2 * réponse » et le nombre 1
  25. 25. « réponse » vaut 7. Le premier « dire » contient réponse + 5 :
  26. 26. Le second contient (réponse + 5) * 3 : bloc intérieur d'abord, puis la multiplication par 3.
  27. 27. le lutin dit 12 pendant 2 secondes, puis 36
  28. 28. Les paramètres d'un programme sont les valeurs écrites dans les cases blanches de ses blocs : une longueur, un angle, un nombre de répétitions, un texte. Les modifier change le résultat sans changer l'ordre des blocs.
  29. 29. Les deux 80 commandent la longueur, les deux 40 la largeur, les 90 les angles droits.
  30. 30. L'exécuter à la main, et dire en une phrase ce qu'il fait.
  31. 31. Relier chaque grandeur du résultat aux paramètres qui la commandent.
  32. 32. Modifier tous ces paramètres, et eux seuls, puis exécuter de nouveau à la main pour vérifier.
  33. 33. Il avance de 80, tourne d'un angle droit, avance de 40, et ainsi de suite : c'est un rectangle de 80 sur 40, de périmètre :
  34. 34. Pour un carré, on remplace les quatre paramètres de longueur par 50 et on garde les 90 ; périmètre :
  35. 35. un rectangle de 80 sur 40 ; pour le carré, les deux 80 et les deux 40 deviennent 50
  36. 36. Les blocs placés à l'intérieur de « répéter n fois » sont exécutés dans l'ordre, n fois en tout ; le programme continue ensuite avec le bloc placé sous la boucle. Le nombre de répétitions est fixé d'avance, sans condition : c'est une boucle inconditionnelle.
  37. 37. La boucle fait exactement le même tracé que les huit blocs écrits à la suite.
  38. 38. Repérer le motif qui revient à l'identique, et compter combien de fois il revient.
  39. 39. Placer le motif une seule fois dans « répéter n fois », dans le même ordre.
  40. 40. Laisser hors de la boucle ce qui ne se fait qu'une fois, comme « stylo en position d'écriture ».
  41. 41. « avancer de 50 pas » est écrit une fois mais exécuté 4 fois :
  42. 42. Avec 2 répétitions, seuls deux côtés sont tracés, en angle droit :
  43. 43. 200 pas pour le carré ; 100 pas avec 2 répétitions