Kala te souhaite la bienvenueKalaMaths

Algorithmique et programmation (Python)

🟠 Difficile

📝 Les énoncés sont gratuits, et les 2 premiers corrigés sont offerts. Les autres corrigés détaillés sont réservés aux abonnés.

S'abonner ✨
  1. 1

    On exécute le programme :
    S = 0
    for i in range(1, 6):
    S = S + 2 * i
    a) Détaille la valeur de S après chaque tour de boucle.
    b) Que calcule ce programme, en général, si on remplace 6 par n + 1 ?

    ✅ Voir le corrigéoffert

    a) `range(1, 6)` parcourt 1, 2, 3, 4, 5.
    Tour 1 (i=1i = 1) : S=0+2=2S = 0 + 2 = 2.
    Tour 2 (i=2i = 2) : S=2+4=6S = 2 + 4 = 6.
    Tour 3 (i=3i = 3) : S=6+6=12S = 6 + 6 = 12.
    Tour 4 (i=4i = 4) : S=12+8=20S = 12 + 8 = 20.
    Tour 5 (i=5i = 5) : S=20+10=30S = 20 + 10 = 30.
    À la fin, S=30S = 30.

    b) On additionne 2×1+2×2++2×n2 \times 1 + 2 \times 2 + \dots + 2 \times n, c'est-à-dire le double de la somme des entiers de 1 à n.
    Le programme calcule donc 2×n(n+1)2=n(n+1)2 \times \frac{n(n+1)}{2} = n(n+1).
    Vérification pour n=5n = 5 : 5×6=305 \times 6 = 30 ✓.

  2. 2

    On exécute :
    n = 100
    etapes = 0
    while n > 1:
    n = n // 2
    etapes = etapes + 1
    a) Donne les valeurs successives de n, et la valeur finale de etapes.
    b) Que compte la variable etapes ?

    ✅ Voir le corrigéoffert

    a) `//` est la division entière.
    100502512631100 \to 50 \to 25 \to 12 \to 6 \to 3 \to 1.
    La boucle s'arrête quand n=1n = 1.
    On a fait 6 passages : etapes=6etapes = 6.

    b) Elle compte le nombre de fois qu'on peut diviser 100 par 2 avant d'atteindre 1.
    C'est le nombre d'étapes d'une recherche par dichotomie dans une liste de 100 éléments : 6 essais suffisent.
    (On retrouve 26=64<100128=272^{6} = 64 < 100 \leqslant 128 = 2^{7}.)

  3. 3

    On considère la fonction :
    def mystere(x):
    if x < 0:
    return -x
    else:
    return x
    a) Que renvoie mystere(-7) ? mystere(3) ? mystere(0) ?
    b) Quelle fonction mathématique ce programme calcule-t-il ?

    🔒 Corrigé réservé aux abonnésS'abonner →
  4. 4

    On exécute :
    P = 1
    for k in range(1, 6):
    P = P * k
    a) Que vaut P à la fin ?
    b) Modifie le programme pour qu'il calcule le produit des entiers PAIRS de 2 à 10.

    🔒 Corrigé réservé aux abonnésS'abonner →
  5. 5

    On considère :
    def f(x):
    return 3 * x - 5
    y = f(f(2))
    a) Que vaut y ?
    b) Résous l'équation f(x)=xf(x) = x à la main, puis vérifie que ce nombre est un « point fixe » du programme.

    🔒 Corrigé réservé aux abonnésS'abonner →
  6. 6

    Un programme trie une liste :
    L = [7, 2, 9, 4]
    m = L[0]
    for x in L:
    if x < m:
    m = x
    a) Que vaut m à la fin ? Détaille les comparaisons.
    b) Comment modifier une seule ligne pour obtenir le maximum ?

    🔒 Corrigé réservé aux abonnésS'abonner →
  7. 7

    On exécute :
    u = 5
    for i in range(4):
    u = 2 * u + 1
    a) Donne les valeurs successives de u.
    b) Écris la relation qui lie un terme au suivant, et donne le terme obtenu après 5 tours au lieu de 4.

    🔒 Corrigé réservé aux abonnésS'abonner →
  8. 8

    On veut savoir si un entier n est pair.
    a) Écris une fonction est_pair(n) qui renvoie True ou False.
    b) Écris un programme qui compte combien il y a d'entiers pairs entre 1 et 50.

    🔒 Corrigé réservé aux abonnésS'abonner →
  9. 9

    On exécute le programme :
    P = 1
    for i in range(1, 6):
    P = P * i
    a) Détaille la valeur de P après chaque tour de boucle.
    b) Que calcule ce programme ?

    🔒 Corrigé réservé aux abonnésS'abonner →
  10. 10

    On exécute :
    x = 3
    y = 8
    if x > y:
    m = x
    else:
    m = y
    a) Que vaut m à la fin ?
    b) Écris une fonction maxi(x, y) qui renvoie le plus grand des deux nombres.

    🔒 Corrigé réservé aux abonnésS'abonner →

Comment ça s'est passé ?

Retrouve tout dans Mon suivi.