Aller au contenu

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

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 « Maîtrise ». Voir les 8 exercices.

Exercice 5 Maîtrise

Compléter le script pour qu'il affiche « Pair » ou « Impair » selon le nombre entré (indication : utiliser le bloc (x) modulo (2)).

Voir la correction
Correction détaillée

Un nombre est pair lorsque le reste de sa division par 2 vaut 0, impair lorsque ce reste vaut 1. Le bloc (x) modulo (2) donne exactement ce reste.

quand le drapeau vert est cliqué
demander [Nombre ?] et attendre
mettre [x] à (réponse)
si <((x) modulo (2)) = (0)> alors
    dire [Pair]
sinon
    dire [Impair]
fin
Test : avec 14, 14 modulo 2 = 0, la condition est vraie et le lutin dit « Pair » ; avec 27, 27 modulo 2 = 1, la condition est fausse et le lutin dit « Impair ». En Python, la même condition s'écrit if x % 2 == 0:.

Exercice 6 Maîtrise

On considère la fonction Python :

def mystere(n):
    s = 0
    for i in range(1, n + 1):
        s = s + i
    return s

print(mystere(4))
a) Qu'affiche ce programme ? Détailler les valeurs successives de s. b) Que calcule la fonction mystere ? c) Que renvoie mystere(10) ?

Voir la correction
Correction détaillée

a) On déroule la fonction avec n = 4. Au départ, s = 0. La boucle for i in range(1, n + 1) fait prendre à i les valeurs 1, 2, 3 et 4, car range(1, 5) s'arrête avant 5.
i = 1 : s = 0 + 1 = 1 ; i = 2 : s = 1 + 2 = 3 ; i = 3 : s = 3 + 3 = 6 ; i = 4 : s = 6 + 4 = 10. La fonction renvoie 10 et le programme affiche 10.
b) La fonction calcule la somme des entiers de 1 à n : mystere(n) = 1 + 2 + … + n.
c) mystere(10) = 1 + 2 + … + 10 = 55. On peut le vérifier en regroupant les termes deux par deux : (1 + 10) + (2 + 9) + (3 + 8) + (4 + 7) + (5 + 6) = 5 × 11 = 55.