Algorithmique et programmation : 20 exercices corrigésmaths 3e — du geste seul au problème de contrôle
Vingt exercices façon Scratch, du bloc seul au problème de brevet, avec un rappel de cours avant chaque niveau. Suis chaque programme au brouillon, bloc par bloc, puis ouvre la correction : elle montre les valeurs des variables à chaque étape et nomme le piège.
Un seul geste : exercices 1 à 8niveau 1
Un programme court. Tu le suis bloc par bloc, en notant la valeur de chaque variable.
Rappel de cours
- Une variable est une boîte qui porte un nom. « mettre x à 7 » REMPLACE ce qu'il y a dans la boîte ; « ajouter 3 à x » AJOUTE 3 à ce qu'elle contient.
- « répéter 4 fois » exécute les blocs qu'il contient fois de suite, puis passe à la suite.
- « si … alors … sinon » : si la condition est vraie, on fait le premier groupe de blocs ; sinon, le second. « et » demande que les DEUX conditions soient vraies, « ou » qu'AU MOINS UNE le soit.
1
Voici un programme de calcul écrit en blocs. On répond à la question. Que dit le lutin à la fin ?demander 'Nombre ?'mettre x à réponsemettre x à x + 3mettre x à x * 4mettre x à x - 5dire xVoir la correction
Je suis les blocs un par un, en gardant la valeur de x à chaque ligne. x vaut , puis , puis , puis . Réponse : le lutin dit . ⛔ Le piège : tout écrire en une ligne, , et trouver . Le programme ajoute 3 AVANT de multiplier : en une ligne, il faut des parenthèses, .bloc x réponse 2 + 3 5 × 4 20 − 5 15 2
On appelle le nombre choisi. Écris le résultat de ce programme en fonction de , puis développe-le.demander 'Nombre ?'mettre x à réponsemettre x à x - 1mettre x à x * 3dire xVoir la correction
Le premier calcul enlève 1 : j'obtiens . Le second multiplie TOUT ce résultat par 3 : j'obtiens . Je développe : . Réponse : le programme calcule . ⭐ Contrôle avec 5 : le programme donne , et . ⛔ Le piège : écrire . La multiplication porte sur le résultat entier, pas seulement sur .bloc x réponse 5 − 1 4 × 3 12 3
Dans un jeu vidéo de basket, le score est une variable. Un bonus final double le score. Que dit le lutin ?mettre score à 0ajouter 2 à scoreajouter 3 à scoreajouter 1 à scoremettre score à score * 2dire scoreVoir la correction
« ajouter » augmente le score, il ne le remplace pas. Le score vaut , puis , puis , puis . Le dernier bloc remplace le score par son double : . Réponse : le lutin dit . ⛔ Le piège : lire « ajouter 1 à score » comme « mettre score à 1 ». On trouverait : les paniers d'avant seraient effacés.bloc score mettre à 0 0 + 2 2 + 3 5 + 1 6 × 2 12 4
Dans une expérience, une colonie de bactéries triple toutes les heures. Ce programme la suit pendant heures. Que dit le lutin ?mettre n à 100répéter 4 foismettre n à n * 3dire nVoir la correction
À chaque tour de la boucle, je multiplie la valeur du moment par 3. Tour 1 : . Tour 2 : . Tour 3 : . Tour 4 : . Réponse : le lutin dit : il y a bactéries au bout de heures. ⛔ Le piège : calculer . Répéter 4 fois « multiplier par 3 », c'est multiplier par , pas par .tour n départ 100 1 300 2 900 3 2700 4 8100 5
Une appli de course à pied conseille de sortir selon la température. Que dit le lutin si on répond ? ? ?demander 'Température ?'mettre t à réponsesi t > 5 et t < 25 alorsdire 'on court'sinondire 'on reste'Voir la correction
La condition est vraie seulement si t est plus grand que 5 ET plus petit que 25. Avec : « t > 5 » est fausse, donc toute la condition est fausse. Le lutin dit « on reste ». Avec : et , les deux sont vraies. Le lutin dit « on court ». Avec : « t < 25 » est fausse, car n'est pas plus petit que . Le lutin dit « on reste ». Réponse : dans l'ordre, « on reste », « on court », « on reste ». ⛔ Le piège : la borne. « < 25 » exclut ; pour l'inclure, il faudrait écrire « t < 26 » avec des entiers.t t > 5 t < 25 le lutin dit 3 faux vrai on reste 18 vrai vrai on court 25 vrai faux on reste 6
Un club de kayak annule la sortie si le vent dépasse km/h ou si les vagues dépassent m. Que dit le lutin : a) avec un vent de km/h et des vagues de m ? b) avec km/h et m ? c) avec km/h et m ?demander 'Vent ?'mettre v à réponsedemander 'Vagues ?'mettre h à réponsesi v > 40 ou h > 2 alorsdire 'sortie annulée'sinondire 'on part'Voir la correction
Avec « ou », il suffit qu'UNE des deux conditions soit vraie. a) est faux, mais est vrai. Réponse : « sortie annulée ». b) est vrai. Réponse : « sortie annulée ». c) est faux et est faux. Réponse : « on part ». ⛔ Le piège : confondre « ou » et « et ». Avec « et », le cas a) donnerait « on part » : on sortirait avec des vagues de m parce que le vent est calme.v > 40 h > 2 le lutin dit a) faux vrai sortie annulée b) vrai faux sortie annulée c) faux faux on part 7
Un terrain de volley mesure m sur m. Ce programme doit calculer le périmètre d'un rectangle. a) Que dit-il si on répond puis ? b) Quel est le vrai périmètre du terrain ? c) Corrige le bloc faux.demander 'Longueur ?'mettre L à réponsedemander 'Largeur ?'mettre l à réponsemettre p à 2 * L + ldire pVoir la correction
a) L'ordinateur fait la multiplication d'abord : . Réponse : il dit . b) Le périmètre compte deux longueurs et deux largeurs : . Réponse : m. c) Il faut des parenthèses : « mettre p à 2 * (L + l) ». Avec et , le programme dit alors . ⛔ Le piège : oublier que l'ordinateur respecte les priorités, comme sur une copie. Sans parenthèses, seule la longueur est doublée.demander 'Longueur ?'mettre L à réponsedemander 'Largeur ?'mettre l à réponsemettre p à 2 * (L + l)dire p8
Louer un kayak coûte € de forfait, plus € par heure. Complète le bloc « mettre prix à … » pour que le programme calcule le prix pour h heures, puis donne le prix pour heures.demander 'Heures ?'mettre h à réponsemettre prix à ...dire prixVoir la correction
Le forfait se paie une seule fois : . Chaque heure coûte €, donc h heures coûtent . Je complète : « mettre prix à 12 + 3 * h ». Pour heures : . Réponse : €. ⛔ Le piège : écrire « (12 + 3) * h ». On ferait payer le forfait à chaque heure : €.demander 'Heures ?'mettre h à réponsemettre prix à 12 + 3 * hdire prix
Type devoir : exercices 9 à 16niveau 2
Plusieurs questions, comme au brevet. Tu testes le programme, puis tu le traduis en calcul littéral.
Rappel de cours
- Un programme de calcul s'écrit avec : chaque bloc s'applique à TOUT le résultat d'avant. « ajouter 5 puis multiplier par 2 » donne , pas .
- Pour prouver qu'un programme donne toujours le même type de résultat, j'écris son expression en , puis je la développe et je la réduis.
- « répéter jusqu'à » s'arrête dès que la condition devient VRAIE. Je teste la condition à chaque tour.
- Corriger un programme : je le fais tourner sur un exemple dont je connais la réponse, et je cherche la ligne où ça dérape.
9
a) Quel résultat donne ce programme avec ? b) Et avec ? c) Que remarques-tu ? d) Prouve-le pour tout nombre .demander 'Nombre ?'mettre x à réponsemettre x à x + 5mettre x à x * 2mettre x à x - 10dire xVoir la correction
a) , puis , puis . Réponse : . b) , puis , puis . Réponse : . c) est le double de , et le double de : le programme semble doubler le nombre choisi. d) J'écris le programme en , puis je développe : . Réponse : le programme donne toujours le double du nombre choisi. ⛔ Le piège : croire que deux exemples prouvent la règle. Ils la font deviner ; seul le calcul avec la prouve.x + 5 × 2 − 10 7 12 24 14 −3 2 4 −6 10
a) Quel résultat donne ce programme avec ? b) Quel nombre faut-il choisir pour obtenir ?demander 'Nombre ?'mettre x à réponsemettre x à x * 3mettre x à x - 4dire xVoir la correction
a) , puis . Réponse : . b) Le programme calcule . Je résous . , donc . ⭐ Contrôle : et . Réponse : il faut choisir . ⛔ Le piège : remonter le programme dans le même ordre (diviser par 3, puis ajouter 4). Pour remonter, on défait les blocs à l'ENVERS : d'abord ajouter 4, puis diviser par 3.x × 3 − 4 −2 −6 −10 8 24 20 11
On suppose, pour l'exercice, qu'un glacier long de m recule de m chaque année à partir de 2026. a) Que dit le lutin ? b) Combien de fois la boucle a-t-elle tourné ? Quelle est alors la longueur du glacier ?mettre L à 3000mettre an à 2026répéter jusqu'à L < 2900mettre L à L - 12ajouter 1 à andire anVoir la correction
À chaque tour, le glacier perd m et l'année avance de . La boucle s'arrête dès que L est plus petit que . Après tours : . n'est pas plus petit que : la boucle continue. Après tours : , qui est plus petit que : la boucle s'arrête. a) Réponse : le lutin dit . b) Réponse : la boucle a tourné fois, et le glacier mesure m. ⛔ Le piège : diviser par et s'arrêter à tours. tours ne font que m de recul : il en faut un neuvième pour passer SOUS .tour L an 1 2988 2027 2 2976 2028 3 2964 2029 4 2952 2030 5 2940 2031 6 2928 2032 7 2916 2033 8 2904 2034 9 2892 2035 12
Un podomètre compte les jours où l'on a marché AU MOINS pas. Sur une semaine, on entre : ; ; ; ; ; ; . a) Que dit le lutin ? b) Est-ce le bon nombre de jours ? c) Corrige le programme.mettre jours à 0répéter 7 foisdemander 'Pas ?'si réponse > 10000 alorsajouter 1 à joursdire joursVoir la correction
a) Je teste « réponse > 10000 » pour chaque jour : , et passent ; ne passe pas, car n'est pas plus grand que . Réponse : le lutin dit . b) Non. « Au moins » inclut : il y a bons jours. c) Les pas sont des nombres entiers : « au moins », c'est « plus que ». J'écris « si réponse > 9999 alors ». Le lutin dit alors . ⛔ Le piège : le jour à pas pile. « > » exclut la borne ; Scratch n'a pas de bloc « supérieur ou égal ».mettre jours à 0répéter 7 foisdemander 'Pas ?'si réponse > 9999 alorsajouter 1 à joursdire jours13
Le lutin laisse une trace quand il avance. a) Quelle figure trace ce programme ? b) Quelle est la longueur totale du tracé ? c) Écris un programme qui trace un octogone régulier de côté .stylo en position d'écriturerépéter 6 foisavancer de 40tourner de 60 degrésVoir la correction
a) Six côtés de même longueur, et le lutin tourne de degrés en tout : il revient à son point de départ. Réponse : un hexagone régulier. b) . Réponse : le tracé mesure pas. c) Un octogone a côtés. Pour faire un tour complet en virages, chaque virage vaut degrés. Le tracé mesure alors pas. ⛔ Le piège : tourner de l'angle INTÉRIEUR de la figure. Avec « tourner de 120 degrés » au lieu de , le lutin trace un triangle, parcouru deux fois.stylo en position d'écriturerépéter 8 foisavancer de 25tourner de 45 degrés14
Ce programme doit calculer . a) Que dit le lutin ? b) Pourquoi est-ce faux ? c) Corrige-le.mettre s à 0mettre i à 1répéter 10 foisajouter 1 à iajouter i à sdire sVoir la correction
a) Au premier tour, i passe à AVANT d'être ajouté : s reçoit , puis , … jusqu'à . Je calcule . Réponse : le lutin dit . b) Le n'est jamais ajouté, et le l'est en trop : . c) J'échange les deux blocs de la boucle : d'abord « ajouter i à s », puis « ajouter 1 à i ». Le lutin dit alors . ⭐ Contrôle : . ⛔ Le piège : l'ORDRE des blocs dans la boucle. Les mêmes blocs, dans l'autre ordre, ne font pas le même calcul.tour i s 1 2 2 2 3 5 3 4 9 4 5 14 5 6 20 6 7 27 7 8 35 8 9 44 9 10 54 10 11 65 mettre s à 0mettre i à 1répéter 10 foisajouter i à sajouter 1 à idire s15
Un parc naturel affiche ses tarifs avec ce programme. a) Quel prix dit-il pour un visiteur de ans ? ans ? ans ? ans ? b) Le parc crée un tarif « de à ans inclus ». Écris la condition, avec des âges entiers.demander 'Âge ?'mettre a à réponsesi a < 12 ou a > 64 alorsmettre prix à 5sinonmettre prix à 9dire prixVoir la correction
a) : la condition est vraie, prix €. : est faux et est faux, prix €. : est faux, prix €. : est vrai, prix €. Réponse : €, €, €, €. b) Il faut les deux à la fois, donc « et ». inclus, c'est « plus que » ; inclus, c'est « moins que ». Réponse : « a > 11 et a < 18 ». ⛔ Le piège : écrire « a > 12 et a < 17 ». Les deux bornes, et , seraient exclues.âge a < 12 a > 64 prix (€) 8 vrai faux 5 12 faux faux 9 64 faux faux 9 65 faux vrai 5 16
a) Quel résultat donne ce programme avec ? Avec ? b) Écris le résultat en fonction de , puis développe-le. c) Quels nombres donnent ? Lesquels donnent ?demander 'Nombre ?'mettre x à réponsemettre a à x - 3mettre b à x + 3mettre r à a * bdire rVoir la correction
a) Avec : a vaut , b vaut , r vaut . Avec : a vaut , b vaut , r vaut . Réponse : et . b) Le programme multiplie par : . c) donne : Réponse : et donnent . donne : Réponse : et donnent . ⛔ Le piège : oublier la solution négative. , comme .x a b r 5 2 8 16 −3 −6 0 0
Problèmes : exercices 17 à 20niveau 3
Un programme plus long, plusieurs questions qui s'enchaînent. Fais tourner le programme au brouillon avant de répondre.
Rappel de cours
- Pour suivre une boucle, je fais un tableau : une ligne par tour, une colonne par variable.
- Une variable qui compte ou qui additionne se met à AVANT la boucle, jamais dedans.
- Deux programmes donnent toujours le même résultat quand leurs expressions en sont égales une fois développées.
17Cinq jours de chaleur
Un relevé fictif donne les températures maximales de cinq jours d'été : ; ; ; ; (en °C). a) Que dit le lutin ? b) Un élève déplace « mettre somme à 0 » au début de la boucle. Que dit alors le premier bloc « dire » ? c) Ajoute au programme une variable max qui donne la température la plus haute.mettre somme à 0mettre chauds à 0répéter 5 foisdemander 'Température ?'ajouter réponse à sommesi réponse > 30 alorsajouter 1 à chaudsdire somme / 5dire chaudsVoir la correction
a) La somme vaut , et . Les jours au-dessus de sont , et . Réponse : le lutin dit (la moyenne, en °C), puis (le nombre de jours au-dessus de °C). b) La somme repart de à chaque tour : à la fin, elle ne contient que le dernier jour, . Réponse : le lutin dit . c) Je mets max à avant la boucle, et dans la boucle : « si réponse > max alors mettre max à réponse ». Le lutin dit alors aussi . ⛔ Le piège : remettre à une variable DANS la boucle. Elle oublie tout ce qu'elle a compté avant. ⭐ En hiver, si toutes les températures étaient négatives, partir de donnerait un max faux : on partirait alors de la première température relevée.jour réponse somme chauds 1 28 28 0 2 31 59 1 3 33 92 2 4 29 121 2 5 34 155 3 mettre somme à 0mettre chauds à 0mettre max à 0répéter 5 foisdemander 'Température ?'ajouter réponse à sommesi réponse > 30 alorsajouter 1 à chaudssi réponse > max alorsmettre max à réponsedire somme / 5dire chaudsdire max18Deux programmes jumeaux
Programme A : choisir un nombre, lui ajouter 1, multiplier le résultat par lui-même, puis retirer le carré du nombre de départ. Programme B : multiplier le nombre par 2, puis ajouter 1. a) Fais tourner les deux programmes avec , puis avec . b) Que remarques-tu ? c) Prouve-le pour tout nombre . d) Quel nombre faut-il choisir pour obtenir ?demander 'Nombre ?'mettre x à réponsemettre a à x + 1mettre a à a * amettre r à a - x * xdire rdemander 'Nombre ?'mettre x à réponsemettre r à 2 * x + 1dire rVoir la correction
a) Avec : A donne ; B donne . Avec : A donne ; B donne . b) Les deux programmes donnent le même résultat. c) A calcule . Je développe : . C'est exactement ce que calcule B. Réponse : A et B donnent toujours le même résultat. d) Je résous : , donc . Réponse : il faut choisir . ⛔ Le piège : développer en . Le double produit ne disparaît pas.x A B 4 9 9 −3 −5 −5 19Le plan d'entraînement
Une coureuse prépare un trail : km la première semaine, puis km de plus chaque semaine. Le programme cherche la semaine où son total dépasse km. a) Que dit le lutin ? b) Pourquoi la boucle ne s'arrête-t-elle pas à la semaine ? c) Montre que le total après semaines vaut km, sur les semaines à , puis contrôle avec la semaine .mettre d à 3mettre total à 0mettre sem à 0répéter jusqu'à total > 100ajouter 1 à semajouter d à totalajouter 2 à ddire semVoir la correction
a) Je suis la boucle tour par tour : les totaux sont , , , , , , , , , . Le total dépasse pour la première fois à la semaine . Réponse : le lutin dit . b) Après la semaine , le total vaut : « total > 100 » est fausse, la boucle continue. c) Semaine : . Semaine : . Semaine : . Semaine : . Ce sont bien les totaux du tableau. Contrôle : . Réponse : après semaines, elle a couru km. ⛔ Le piège : mettre « ajouter 2 à d » AVANT « ajouter d à total ». La première semaine compterait km au lieu de .sem total 1 3 2 8 3 15 4 24 5 35 6 48 7 63 8 80 9 99 10 120 20Le nombre secret
Dans ce jeu, le lutin cache un nombre entier entre et (ici ) et répond à chaque essai. a) Un joueur propose , puis , puis . Que dit le lutin à chaque fois ? Que dit-il à la fin ? b) Un joueur propose toujours le milieu des nombres encore possibles. Montre que essais lui suffisent toujours.mettre n à 37mettre essais à 0répéter jusqu'à réponse = ndemander 'Ton nombre ?'ajouter 1 à essaissi réponse < n alorsdire 'plus grand'sinonsi réponse > n alorsdire 'plus petit'dire essaisVoir la correction
a) : est faux, mais est vrai. Le lutin dit « plus petit ». : est vrai. Le lutin dit « plus grand ». : aucune des deux conditions n'est vraie, il ne dit rien ; « réponse = n » devient vraie, la boucle s'arrête. Réponse : « plus petit », « plus grand », puis (le nombre d'essais). b) Chaque essai raté garde au plus la moitié des nombres possibles : , puis au plus , , , , , . Après essais ratés, il ne reste qu'un nombre possible : le septième essai est le bon. Réponse : essais suffisent toujours. ⭐ ne suffisent pas toujours : essais ne départagent que cas, moins que . ⛔ Le piège : lire « plus grand » comme « ton essai est trop grand ». C'est le SECRET qui est plus grand que l'essai : il faut monter.essai réponse le lutin dit 1 50 plus petit 2 25 plus grand 3 37 3