Ces exercices corrigés de Scratch et d'algorithmique en 4ème demandent de prévoir un résultat, suivre les variables et expliquer une erreur. Le cours sur les conditions, les variables et le débogage sert de guide.
Aucune installation n'est nécessaire pour raisonner sur les scripts décrits. Les programmes de calcul font le lien avec les équations du premier degré et permettent de vérifier une conjecture par le calcul littéral.
Suivre la valeur d’une variable
Une table de trace note l'état des variables après chaque instruction et rend visibles les remplacements successifs.
Exercice 1 : Affectations successives
Un script met x à , ajoute à x, puis met x à .
- Donner la valeur après chaque instruction.
- Donner la valeur finale.
- Expliquer la différence entre « ajouter à x » et « mettre x à ».
Indication
Chaque instruction utilise la valeur actuelle de la variable, puis la remplace si elle contient une affectation.
Voir le corrigé
- Les valeurs successives sont , , puis .
- La valeur finale est .
- « Ajouter à x » modifie la valeur par un incrément ; « mettre x à » remplace entièrement l'ancienne valeur par le résultat calculé.
Exercice 2 : Deux variables qui échangent mal
Le script met a à , b à , puis a à b et enfin b à a.
- Construire la trace des deux variables.
- Donner les valeurs finales.
- Expliquer pourquoi elles ne sont pas échangées.
- Proposer une correction avec une variable
temp.
Indication
Après la troisième instruction, l'ancienne valeur de a est déjà perdue.
Voir le corrigé
- On a d'abord , puis , enfin .
- Les deux valeurs finales sont .
- L'affectation
a = bécrase avant qu'elle soit copiée. - Utiliser
temp = a, puisa = b, puisb = tempdonne .
Exercice 3 : Trace d’une accumulation
On met somme à . Pour allant de à , on ajoute à somme.
- Compléter une table avec , terme ajouté et somme.
- Donner la somme finale.
- Écrire le calcul numérique condensé.
- Prévoir la somme si la boucle allait jusqu'à .
Indication
Les termes ajoutés sont .
Voir le corrigé
- Les lignes sont , , , .
- La somme finale vaut .
- Le calcul est .
- Pour , on ajoute , donc la somme devient .
Comprendre conditions et branchements
Une condition sélectionne une branche ; il faut tester la frontière et les cas de part et d'autre.
Exercice 4 : Positif, négatif ou nul
Un programme demande un nombre . Si , il affiche « positif » ; sinon, si , il affiche « négatif » ; sinon il affiche « nul ».
- Prévoir l'affichage pour , et .
- Expliquer pourquoi deux tests sont nécessaires.
- Donner un jeu de tests minimal.
Indication
Le second « sinon » couvre le seul cas qui n'est ni strictement positif ni strictement négatif.
Voir le corrigé
- Les affichages sont positif, négatif et nul.
- Le premier test sépare le positif du reste ; le second distingue le négatif du zéro.
- Un nombre positif, un nombre négatif et zéro forment un jeu minimal couvrant les trois branches.
Exercice 5 : Réduction selon un montant
Un script applique de réduction si le montant est supérieur ou égal à €, sinon aucune réduction.
- Donner le prix final pour , et .
- Expliquer l'importance du signe « supérieur ou égal ».
- Écrire une expression par morceaux en langage courant.
- Proposer un test de frontière.
Indication
Le montant appartient à la branche réduite.
Voir le corrigé
- Les prix finaux sont €, € et €.
- Avec un simple signe supérieur, € ne bénéficierait pas de la remise.
- Si , on paie ; sinon on paie .
- Tester , et contrôle la frontière.
Exercice 6 : Condition toujours vraie
Pour classer un angle , un script teste : si , afficher « aigu » ; sinon si ou , afficher « obtus » ; sinon afficher « autre ».
- Tester , et .
- Repérer l'erreur logique.
- Corriger la seconde condition.
- Ajouter un contrôle pour une mesure invalide.
Indication
Avec « ou », la proposition ou couvre presque tous les nombres.
Voir le corrigé
- , et même passent dans la branche obtus selon ce script.
- La condition utilise « ou » au lieu de vérifier simultanément .
- Il faut tester et .
- Avant le classement, on peut refuser ou pour un angle intérieur de triangle.
Raisonner sur les boucles
Une boucle répète un bloc ; son nombre d'itérations et la mise à jour des variables déterminent le résultat.
Exercice 7 : Répéter un déplacement
Un lutin part en . Il répète fois : avancer de pas, tourner de .
- Calculer la distance totale parcourue.
- Identifier la figure fermée obtenue.
- Donner l'angle total de rotation.
- Expliquer pourquoi le lutin revient à son orientation initiale.
Indication
Six côtés égaux et six rotations extérieures de forment un hexagone régulier.
Voir le corrigé
- La distance totale vaut pas.
- La figure est un hexagone régulier.
- L'angle total vaut .
- Une rotation complète ramène le lutin à son orientation initiale.
Exercice 8 : Boucle et compteur
On met n à . On répète fois : mettre n à .
- Construire la suite des valeurs.
- Donner la valeur finale.
- Comparer avec le script qui répète trois fois seulement.
Indication
Chaque nouvelle valeur devient l'entrée de l'itération suivante.
Voir le corrigé
- Les valeurs sont .
- Après quatre répétitions, .
- Après trois répétitions, la valeur serait . Une itération de plus ne signifie pas ajouter une constante ; elle applique encore .
Exercice 9 : Boucle qui ne termine pas
Un script met à , puis répète jusqu'à l'instruction « ajouter à ».
- Calculer les premières valeurs.
- Expliquer pourquoi la boucle ne s'arrête pas.
- Proposer une correction pour atteindre .
- Donner une condition plus robuste si le pas ne divisait pas la valeur initiale.
- Tester la correction.
Indication
La variable s'éloigne de zéro. Même en retranchant , partir de ne donne jamais exactement .
Voir le corrigé
- Les valeurs commencent par .
- Elles augmentent et ne peuvent atteindre .
- Avec « retirer à », on obtient .
- Pour un pas quelconque, on peut répéter jusqu'à , puis traiter un éventuel dépassement.
- La correction par pas de s'arrête après cinq itérations.
Construire et déboguer un programme de calcul
Le calcul littéral permet de prouver ce qu'un script semble produire sur quelques essais.
Exercice 10 : Deux programmes équivalents
Programme A : choisir , ajouter , multiplier par , retrancher . Programme B : choisir , multiplier par .
- Tester les deux programmes pour .
- Traduire A par une expression.
- Réduire cette expression.
- Conclure pour tout .
Indication
Développez .
Voir le corrigé
- Les deux programmes donnent pour .
- A donne .
- .
- A et B sont donc équivalents pour toute valeur de , et pas seulement pour le test choisi.
Exercice 11 : Deviner un nombre
Un script demande un nombre , calcule , puis affiche .
- Écrire l'équation associée.
- Retrouver .
- Vérifier dans le script.
- Modifier la dernière constante pour que produise .
Indication
La sortie impose .
Voir le corrigé
- L'équation est .
- , donc .
- .
- Pour obtenir à partir de , il faut calculer , car .