eleveai.frLa liberté d'apprendre
Maths3eFiche d'exercices

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. 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éponse
    mettre x à x + 3
    mettre x à x * 4
    mettre x à x - 5
    dire x
    Voir 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, .
    blocx
    réponse2
    + 35
    × 420
    − 515
  2. 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éponse
    mettre x à x - 1
    mettre x à x * 3
    dire x
    Voir 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 .
    blocx
    réponse5
    − 14
    × 312
  3. 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 à 0
    ajouter 2 à score
    ajouter 3 à score
    ajouter 1 à score
    mettre score à score * 2
    dire score
    Voir 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.
    blocscore
    mettre à 00
    + 22
    + 35
    + 16
    × 212
  4. 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 à 100
    répéter 4 fois
    mettre n à n * 3
    dire n
    Voir 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 .
    tourn
    départ100
    1300
    2900
    32700
    48100
  5. 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éponse
    si t > 5 et t < 25 alors
    dire 'on court'
    sinon
    dire '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.
    tt > 5t < 25le lutin dit
    3fauxvraion reste
    18vraivraion court
    25vraifauxon reste
  6. 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éponse
    demander 'Vagues ?'
    mettre h à réponse
    si v > 40 ou h > 2 alors
    dire 'sortie annulée'
    sinon
    dire '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 > 40h > 2le lutin dit
    a)fauxvraisortie annulée
    b)vraifauxsortie annulée
    c)fauxfauxon part
  7. 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éponse
    demander 'Largeur ?'
    mettre l à réponse
    mettre p à 2 * L + l
    dire p
    Voir 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éponse
    demander 'Largeur ?'
    mettre l à réponse
    mettre p à 2 * (L + l)
    dire p
  8. 8

    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éponse
    mettre prix à ...
    dire prix
    Voir 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éponse
    mettre prix à 12 + 3 * h
    dire 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.
  1. 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éponse
    mettre x à x + 5
    mettre x à x * 2
    mettre x à x - 10
    dire x
    Voir 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
    7122414
    −324−6
  2. 10

    a) Quel résultat donne ce programme avec  ? b) Quel nombre faut-il choisir pour obtenir  ?
    demander 'Nombre ?'
    mettre x à réponse
    mettre x à x * 3
    mettre x à x - 4
    dire x
    Voir 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
    82420
  3. 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 à 3000
    mettre an à 2026
    répéter jusqu'à L < 2900
    mettre L à L - 12
    ajouter 1 à an
    dire an
    Voir 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 .
    tourLan
    129882027
    229762028
    329642029
    429522030
    529402031
    629282032
    729162033
    829042034
    928922035
  4. 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 à 0
    répéter 7 fois
    demander 'Pas ?'
    si réponse > 10000 alors
    ajouter 1 à jours
    dire jours
    Voir 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 à 0
    répéter 7 fois
    demander 'Pas ?'
    si réponse > 9999 alors
    ajouter 1 à jours
    dire jours
  5. 13

    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'écriture
    répéter 6 fois
    avancer de 40
    tourner de 60 degrés
    Voir 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'écriture
    répéter 8 fois
    avancer de 25
    tourner de 45 degrés
  6. 14

    Ce programme doit calculer . a) Que dit le lutin ? b) Pourquoi est-ce faux ? c) Corrige-le.
    mettre s à 0
    mettre i à 1
    répéter 10 fois
    ajouter 1 à i
    ajouter i à s
    dire s
    Voir 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.
    touris
    122
    235
    349
    4514
    5620
    6727
    7835
    8944
    91054
    101165
    mettre s à 0
    mettre i à 1
    répéter 10 fois
    ajouter i à s
    ajouter 1 à i
    dire s
  7. 15

    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éponse
    si a < 12 ou a > 64 alors
    mettre prix à 5
    sinon
    mettre prix à 9
    dire prix
    Voir 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.
    âgea < 12a > 64prix (€)
    8vraifaux5
    12fauxfaux9
    64fauxfaux9
    65fauxvrai5
  8. 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éponse
    mettre a à x - 3
    mettre b à x + 3
    mettre r à a * b
    dire r
    Voir 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 .
    xabr
    52816
    −3−600

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.
  1. 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 à 0
    mettre chauds à 0
    répéter 5 fois
    demander 'Température ?'
    ajouter réponse à somme
    si réponse > 30 alors
    ajouter 1 à chauds
    dire somme / 5
    dire chauds
    Voir 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.
    jourréponsesommechauds
    128280
    231591
    333922
    4291212
    5341553
    mettre somme à 0
    mettre chauds à 0
    mettre max à 0
    répéter 5 fois
    demander 'Température ?'
    ajouter réponse à somme
    si réponse > 30 alors
    ajouter 1 à chauds
    si réponse > max alors
    mettre max à réponse
    dire somme / 5
    dire chauds
    dire max
  2. 18Deux 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éponse
    mettre a à x + 1
    mettre a à a * a
    mettre r à a - x * x
    dire r
    demander 'Nombre ?'
    mettre x à réponse
    mettre r à 2 * x + 1
    dire r
    Voir 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.
    xAB
    499
    −3−5−5
  3. 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 à 3
    mettre total à 0
    mettre sem à 0
    répéter jusqu'à total > 100
    ajouter 1 à sem
    ajouter d à total
    ajouter 2 à d
    dire sem
    Voir 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 .
    semtotal
    13
    28
    315
    424
    535
    648
    763
    880
    999
    10120
  4. 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 à 37
    mettre essais à 0
    répéter jusqu'à réponse = n
    demander 'Ton nombre ?'
    ajouter 1 à essais
    si réponse < n alors
    dire 'plus grand'
    sinon
    si réponse > n alors
    dire 'plus petit'
    dire essais
    Voir 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.
    essairéponsele lutin dit
    150plus petit
    225plus grand
    3373
eleveai.fr - Fiche d'exercicesAlgorithmique et programmation - 3e

Tu as compris ? À toi de t'entraîner :

🧮 Entraîne-toi avec le Coach Maths →