Algorithmique et programmation (Python)
🔴 ExpertLes é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.
- 1
On exécute deux boucles imbriquées : for i in range(1, 5): for j in range(1, i+1): print(i, j).
Généralise : si la boucle extérieure est for i in range(1, n+1), combien de lignes au total, en fonction de n ?Voir le corrigéoffert
a) Pour chaque i, la boucle intérieure fait i tours (j va de 1 à i). Le total est donc lignes.
b) Dans l'ordre d'exécution :
• : (1, 1).
• : (2, 1) ; (2, 2).
• : (3, 1) ; (3, 2) ; (3, 3).
• : (4, 1) ; (4, 2) ; (4, 3) ; (4, 4).
c) Le total est , c'est-à-dire lignes. Pour on retrouve bien . - 2
On exécute : a = 48, b = 36, puis while b != 0: r = a % b, a = b, b = r. Enfin print(a). (a % b est le reste de la division de a par b.) a) Complète un tableau des valeurs de a, b et r à chaque tour.
b) Qu'affiche le programme ?
c) Que calcule ce programme pour deux entiers a et b ?Voir le corrigéoffert
a) On suit les tours (à chaque tour on calcule r, puis a prend l'ancien b, et b prend r).
• Départ : a = 48, b = 36.
• Tour 1 : r = 48 % 36 = 12 ; puis a = 36, b = 12.
• Tour 2 : r = 36 % 12 = 0 ; puis a = 12, b = 0.
• Test b != 0 : b = 0, condition fausse → on sort.
b) On affiche a, soit 12.
c) C'est l'algorithme d'Euclide : il calcule le PGCD (plus grand diviseur commun) de a et b. Ici PGCD(48, 36) = 12. Vérification : 48 = 12 × 4 et 36 = 12 × 3, et aucun diviseur commun n'est plus grand que 12. - 3
On considère le programme : S = 0 puis for i in range(1, n+1): S = S + i*i.
Écris un programme qui calcule la somme des cubes des entiers de 1 à n.🔒 Corrigé réservé aux abonnésS'abonner → - 4
On simule 1000 lancers d'un dé à 6 faces et on compte les 6 (from random import randint).
Comment estimer la fréquence des 6 à partir de nb6 ?🔒 Corrigé réservé aux abonnésS'abonner → - 5
On veut compter, parmi les entiers de 1 à 100, ceux qui sont multiples de 3 mais PAS multiples de 5.
Calcule la valeur de c sans exécuter le programme.🔒 Corrigé réservé aux abonnésS'abonner → - 6
a) Écris une fonction maxi(a, b) qui renvoie le plus grand des deux nombres a et b, sans utiliser la fonction max de Python.
b) À l'aide de maxi, écris une fonction maxi3(a, b, c) qui renvoie le plus grand de trois nombres.
c) Que renvoie maxi3(7, 12, 9) ? Justifie.🔒 Corrigé réservé aux abonnésS'abonner → - 7
a) Écris une fonction est_pair(n) qui renvoie True si n est pair et False sinon (utilise le reste n % 2).
b) Écris une fonction compte_pairs(debut, fin) qui renvoie le nombre d'entiers pairs entre debut et fin inclus, en utilisant est_pair.
c) Que renvoie compte_pairs(1, 10) ?🔒 Corrigé réservé aux abonnésS'abonner → - 8
Une culture de bactéries double chaque heure. Au départ elle compte 50 bactéries. On cherche au bout de combien d'heures elle dépasse 1000.
a) Donne le nombre de bactéries après 1 h, 2 h, 3 h, 4 h, 5 h.
b) Écris un programme avec une boucle while qui affiche le nombre d'heures nécessaires.
c) Conclus.🔒 Corrigé réservé aux abonnésS'abonner → - 9
Léa place 200 € sur un compte qui rapporte 5 % d'intérêts chaque année : le montant est multiplié par 1,05 chaque année. Elle veut atteindre au moins 260 €.
Donne la réponse en détaillant les montants année par année (arrondis au centime).🔒 Corrigé réservé aux abonnésS'abonner → - 10
On traite les températures d'une semaine (en °C), lues une par une, avec ce programme, pour la suite 12, 15, 9, 18, 14, 11, 16 : maxi = -100 puis for t in [12, 15, 9, 18, 14, 11, 16]: if t > maxi: maxi = t. Enfin print(maxi).
Modifie le programme pour compter EN PLUS combien de jours la température a dépassé 13 °C.🔒 Corrigé réservé aux abonnésS'abonner →
Comment ça s'est passé ?
Retrouve tout dans Mon suivi.
