Aller au contenu

Exercices corrigés — Algorithmique et programmation (4e)

Quatre niveaux de difficulté, du plus simple au plus exigeant. Chaque exercice a sa correction détaillée, étape par étape.

2 exercices de niveau « Challenge ». Voir les 8 exercices.

Exercice 7 Challenge

Écrire un script qui demande deux nombres a et b et affiche le plus grand des deux. Que fait le script si a = b ?

Voir la correction
Correction détaillée

On range les deux réponses dans deux variables, car le bloc « réponse » ne garde que la dernière saisie. Puis on compare.

quand le drapeau vert est cliqué
demander [a ?] et attendre
mettre [a] à (réponse)
demander [b ?] et attendre
mettre [b] à (réponse)
si < (a) > (b) > alors
    dire (a)
sinon
    dire (b)
fin
Si a = b, la condition « a > b » est fausse : le script exécute le « sinon » et affiche b, qui est aussi la valeur de a. Le résultat est correct : le plus grand des deux nombres est bien leur valeur commune. Test : avec 4 et 9, il dit 9 ; avec 7 et 7, il dit 7.

Exercice 8 Challenge

Écrire un script qui demande un nombre entier N (au moins égal à 1), puis compte combien de fois il faut doubler N pour dépasser 1 000, et affiche ce nombre de doublements. Tester le script à la main avec N = 3.

Voir la correction
Correction détaillée

On utilise une variable « x » qui double à chaque tour et un compteur « tours ». La boucle « répéter jusqu'à » s'arrête dès que la condition « x > 1000 » devient vraie.

quand le drapeau vert est cliqué
demander [Un entier N ?] et attendre
mettre [x] à (réponse)
mettre [tours] à (0)
répéter jusqu'à < (x) > (1000) >
    mettre [x] à ((x) * (2))
    ajouter (1) à [tours]
fin
dire (tours)
Test avec N = 3 : x prend les valeurs 6, 12, 24, 48, 96, 192, 384, 768, 1 536. La condition devient vraie quand x = 1 536, après 9 doublements : le script affiche 9.
Vérification : 3 × 29 = 3 × 512 = 1 536 > 1 000, alors que 3 × 28 = 768 < 1 000. Le nombre de tours n'est pas connu à l'avance : c'est pour cela qu'on utilise « répéter jusqu'à » et non « répéter n fois ».