Aller au contenu

Exercices corrigés — Algorithmique et Python (Première)

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 « Application ». Voir les 8 exercices.

Exercice 3 Application

a) Écrire une fonction image_g(x) qui renvoie g(x) = 3x2 − 2x + 1. b) Construire, par compréhension, la liste des images des entiers de 0 à 5. c) Donner cette liste.

Voir la correction
Correction détaillée

a) On traduit l'expression en Python, où la puissance s'écrit ** et la multiplication * est obligatoire :

def image_g(x):
    return 3*x**2 - 2*x + 1

b) La compréhension parcourt range(6), qui donne les entiers de 0 à 5 inclus (la borne 6 est exclue) : L = [image_g(k) for k in range(6)].
c) On calcule g(0) = 1, g(1) = 3 − 2 + 1 = 2, g(2) = 12 − 4 + 1 = 9, g(3) = 27 − 6 + 1 = 22, g(4) = 48 − 8 + 1 = 41, g(5) = 75 − 10 + 1 = 66. La liste est [1, 2, 9, 22, 41, 66].
Cette liste est un tableau de valeurs : L[3] vaut 22, image de 3 (les indices commencent à 0). Elle sert à tracer la parabole ou à repérer un changement de signe.

Exercice 4 Application

Écrire une fonction compte_positifs(L) qui renvoie le nombre de termes strictement positifs d'une liste L. Que renvoie-t-elle pour [3, -1, 0, 7] ?

Voir la correction
Correction détaillée

on parcourt la liste avec une boucle for et l'on incrémente un compteur, initialisé à 0 avant la boucle, à chaque terme strictement positif :

def compte_positifs(L):
    compteur = 0
    for x in L:
        if x > 0:
            compteur = compteur + 1
    return compteur

Déroulement pour [3, -1, 0, 7] : 3 > 0, compteur = 1 ; −1 > 0 est faux ; 0 > 0 est faux (0 n'est pas strictement positif) ; 7 > 0, compteur = 2. La fonction renvoie 2.
Erreurs à éviter : oublier l'initialisation compteur = 0 (erreur à l'exécution), écrire x >= 0 (0 serait compté), ou placer return dans la boucle (la fonction s'arrêterait au premier terme). Pour une liste vide, la boucle ne s'exécute pas et la fonction renvoie 0, ce qui est correct.