Algorithmique et Scratch 3ème : 11 exercices corrigés

Ces exercices corrigés d'algorithmique et Scratch en 3ème demandent de suivre les variables, expliquer une condition et corriger un script. Le cours d'algorithmique de 3ème présente les blocs essentiels.

Les programmes de calcul sont reliés au calcul littéral. Le résultat d'un script doit être prédit avant exécution puis comparé aux tests, afin que le logiciel serve de vérification plutôt que de boîte noire.

Suivre la valeur des variables

Une trace d'exécution note les valeurs après chaque instruction. Elle distingue une affectation, qui remplace, d'une modification, qui ajoute ou multiplie.

Exercice 1 : Tracer un programme de calcul

Facile

Le script met xx à 3-3, met yy à 2x+52x+5, ajoute 44 à xx, puis met zz à xyxy.

  1. Donner xx et yy après les deux premières instructions.
  2. Donner la nouvelle valeur de xx.
  3. Calculer zz et expliquer quelle valeur de xx est utilisée.
Indication

La variable yy conserve sa valeur tant qu'aucune nouvelle affectation ne la modifie.

Voir le corrigé
  1. Après les deux premières instructions, x=3x=-3 et y=1y=-1.
  2. Après l'ajout, x=1x=1.
  3. z=1×(1)=1z=1\times(-1)=-1 : le calcul utilise la valeur actuelle de xx, mais la valeur déjà stockée dans yy.

Exercice 2 : Affecter ou ajouter

Moyen

On veut compter les réussites. À chaque réussite, un script exécute « mettre compteur à 11 ».

  1. Expliquer le résultat après plusieurs réussites et donner l'instruction correcte.
  2. Préciser l'initialisation du compteur.
Indication

« Mettre à » efface l'ancienne valeur, tandis que « ajouter à » la conserve et la modifie.

Voir le corrigé
  1. Après toute réussite, le compteur revient à 11 et ne cumule rien. Il faut exécuter « ajouter 11 à compteur ».
  2. Avant le premier essai, on met le compteur à 00.

Exercice 3 : Traduire un script en expression

Moyen

Le script demande un nombre nn, met rr à (n4)2(n-4)^2, puis ajoute 3n3n à rr.

  1. Écrire le résultat final en fonction de nn.
  2. Développer et réduire l'expression.
  3. Calculer le résultat pour n=2n=-2.
  4. Vérifier en suivant directement les blocs.
Indication

La seconde instruction modifie la valeur déjà stockée dans rr.

Voir le corrigé
  1. r=(n4)2+3nr=(n-4)^2+3n.
  2. r=n28n+16+3n=n25n+16r=n^2-8n+16+3n=n^2-5n+16.
  3. Pour n=2n=-2, la forme réduite donne 4+10+16=304+10+16=30.
  4. Le script donne d'abord (6)2=36(-6)^2=36, puis ajoute 6-6, donc 3030.

Utiliser des boucles et des conditions

Une boucle répète un bloc ; une condition décide si un bloc s'exécute. Leur ordre change le nombre d'itérations et le résultat final.

Exercice 4 : Boucle à nombre fixé

Facile

On met aa à 33, puis on répète 55 fois : « mettre aa à 2a12a-1 ».

  1. Construire la liste des cinq valeurs successives.
  2. Donner la valeur finale.
  3. Indiquer combien de fois la multiplication est exécutée.
Indication

La valeur obtenue à une itération devient l'entrée de l'itération suivante.

Voir le corrigé
  1. Les valeurs sont 5,9,17,33,655,9,17,33,65.
  2. La valeur finale est 6565.
  3. La multiplication par 22 est exécutée 55 fois.

Exercice 5 : Répéter jusqu’à dépasser un seuil

Moyen

On met uu à 1010, puis on répète jusqu'à ce que u>100u\gt100 : « mettre uu à 1,5u1{,}5u ».

  1. Lister les valeurs après chaque passage.
  2. Déterminer le nombre d'itérations.
  3. Expliquer pourquoi la dernière valeur dépasse nécessairement 100100.
Indication

Le test d'arrêt est vérifié après chaque mise à jour dans ce scénario.

Voir le corrigé
  1. On obtient 15;22,5;33,75;50,625;75,9375;113,9062515;22{,}5;33{,}75;50{,}625;75{,}9375;113{,}90625.
  2. La boucle s'exécute 66 fois.
  3. Elle s'arrête au premier test vrai, donc la valeur finale est supérieure à 100100, tandis que la précédente ne l'était pas.

Exercice 6 : Condition imbriquée dans une boucle

Difficile

Pour ii allant de 11 à 1212, un script ajoute ii à SS seulement si ii est divisible par 33. Au départ, S=0S=0.

  1. Lister les valeurs de ii retenues.
  2. Calculer SS.
  3. Modifier verbalement la condition pour additionner les nombres non divisibles par 33.
  4. Calculer alors la nouvelle somme sans relancer le script.
Indication

La somme de tous les entiers de 11 à 1212 permet de contrôler la dernière réponse.

Voir le corrigé
  1. Les valeurs retenues sont 3,6,9,123,6,9,12.
  2. S=3+6+9+12=30S=3+6+9+12=30.
  3. Il faut tester « le reste de ii dans la division par 33 n'est pas 00 ».
  4. La somme totale vaut 7878, donc la somme cherchée vaut 7830=4878-30=48.

Créer un bloc et simuler une expérience

Un bloc personnalisé évite de dupliquer une suite d'instructions. Une simulation aléatoire doit initialiser ses compteurs et calculer une fréquence après la boucle.

Exercice 7 : Bloc personnalisé pour une fonction

Moyen

On crée le bloc « image de xx » qui met résultat à 2x25x+12x^2-5x+1.

  1. Calculer les sorties pour x=0x=0, x=2x=2 et x=1x=-1.
  2. Expliquer l'intérêt du paramètre xx.
  3. Indiquer ce qui se passe si le bloc utilise une variable globale différente par erreur.
Indication

Chaque appel remplace le paramètre par la valeur transmise au bloc.

Voir le corrigé
  1. Les sorties sont 11, 1-1 et 88.
  2. Le même bloc peut traiter n'importe quelle entrée sans recopier la formule.
  3. Une variable globale pourrait conserver une ancienne valeur et produire un résultat sans rapport avec l'argument de l'appel.

Exercice 8 : Simuler deux dés

Difficile

On veut estimer la probabilité que la somme de deux dés vaille 77 avec 10001\,000 essais.

  1. Décrire l'initialisation des variables.
  2. Décrire les deux tirages dans la boucle.
  3. Écrire la condition qui incrémente le compteur.
  4. Écrire le calcul final de la fréquence.
Indication

Les deux dés doivent être tirés séparément à chaque essai ; réutiliser le même tirage simulerait deux dés identiques.

Voir le corrigé
  1. On met compteur à 00 avant la boucle.
  2. À chaque essai, on choisit indépendamment d1d_1 et d2d_2 entre 11 et 66.
  3. Si d1+d2=7d_1+d_2=7, on ajoute 11 au compteur.
  4. Après 10001\,000 essais, la fréquence vaut compteur divisé par 10001\,000 et devrait être proche de 1/61/6.

Exercice 9 : Simulation biaisée par une borne

Moyen

Pour simuler un dé, un script choisit un entier aléatoire entre 00 et 66, puis compte les résultats pairs.

  1. Lister les issues réellement produites.
  2. Expliquer pourquoi ce n'est pas un dé ordinaire.
  3. Corriger les bornes du tirage.
  4. Donner la probabilité théorique d'un résultat pair après correction.
Indication

Les bornes de l'opérateur aléatoire sont incluses.

Voir le corrigé
  1. Le script produit 0,1,2,3,4,5,60,1,2,3,4,5,6, soit 77 issues.
  2. La face 00 n'existe pas sur un dé ordinaire et modifie la fréquence des nombres pairs.
  3. Il faut choisir un entier entre 11 et 66.
  4. Les résultats pairs sont 2,4,62,4,6, donc la probabilité vaut 3/6=1/23/6=1/2.

Dessiner, prévoir et tester

Les coordonnées et l'orientation du lutin permettent de raisonner avant l'exécution. Un test utile compare le résultat prévu à plusieurs cas, pas à un seul.

Exercice 10 : Polygone obtenu par une boucle

Moyen

Un lutin répète 88 fois : avancer de 5050 pas, tourner de 4545 degrés.

  1. Identifier le polygone tracé.
  2. Calculer la somme des angles de rotation.
  3. Prévoir la position et la direction finales.
Indication

Pour fermer un polygone régulier, la somme des rotations extérieures doit être 360360 degrés.

Voir le corrigé
  1. Le lutin trace un octogone régulier.
  2. 8×45=3608\times45=360 degrés.
  3. Il revient au point de départ avec la même direction qu'au début.

Exercice 11 : Tester une conjecture numérique

Difficile

Un programme calcule n3nn^3-n pour des entiers nn. Après quelques essais, on conjecture que le résultat est toujours divisible par 66.

  1. Calculer pour n=2,3,4,5n=2,3,4,5.
  2. Factoriser n3nn^3-n.
  3. Expliquer pourquoi le produit contient toujours un facteur 22 et un facteur 33.
  4. Distinguer le rôle des tests et celui de la preuve.
Indication

Utilisez n3n=n(n1)(n+1)n^3-n=n(n-1)(n+1), produit de trois entiers consécutifs.

Voir le corrigé
  1. Les résultats sont 6,24,60,1206,24,60,120, tous divisibles par 66.
  2. n3n=n(n21)=n(n1)(n+1)n^3-n=n(n^2-1)=n(n-1)(n+1).
  3. Parmi trois entiers consécutifs, l'un est multiple de 33 et au moins l'un est pair ; leur produit est donc divisible par 66.
  4. Les tests suggèrent la propriété, mais seule la factorisation la démontre pour tous les entiers.