Corrigés 6 : Boucles imbriquées¶
Exercice 1 : Prédire la sortie¶
1.
Sortie :
2.
Sortie :
Exercice 2 : Table de multiplication personnalisée¶
Exemple d’exécution :
Exercice 3 : Affichage d’un carré¶
n = int(input("Entrez la taille du carré : "))
for i in range(n):
for j in range(n):
print("*", end=" ")
print()
Exemple d’exécution :
Exercice 4 : Affichage d’un triangle rectangle¶
n = int(input("Entrez la hauteur du triangle : "))
for i in range(1, n + 1):
for j in range(i):
print("*", end=" ")
print()
Exemple d’exécution :
Exercice 5 : Affichage d’un triangle isocèle¶
n = int(input("Entrez la hauteur du triangle : "))
for i in range(1, n + 1):
print(" " * (n - i), end="")
for j in range(2 * i - 1):
print("*", end="")
print()
Exemple d’exécution :
Exercice 6 : Matrice d’entiers¶
Sortie :
Exercice 7 : Damier¶
n = int(input("Entrez la taille du damier : "))
for i in range(n):
for j in range(n):
if (i + j) % 2 == 0:
print("□", end=" ")
else:
print("■", end=" ")
print()
Exemple d’exécution :
Exercice 8 : Boucle while imbriquée pour un compte à rebours¶
compteur_externe = 3
while compteur_externe > 0:
compteur_interne = 3
while compteur_interne > 0:
print(compteur_interne, end=" ")
compteur_interne -= 1
print()
compteur_externe -= 1
Sortie :
Exercice 9 : Débogage d’une boucle imbriquée¶
Problème : Le code affiche un triangle rectangle de hauteur n-1 au lieu de n.
Correction : La boucle interne doit aller jusqu’à i+1 pour inclure la dernière ligne.
n = 4
for i in range(n):
for j in range(i + 1): # Correction : i + 1 au lieu de i
print("*", end="")
print()
Sortie corrigée :
Exercice 10 : Tester et corriger¶
Problème : La boucle interne n’incrémente pas j, ce qui crée une boucle infinie.
Correction : Ajouter j += 1 dans la boucle interne.
n = 3
i = 0
while i < n:
j = 0
while j < n:
print("*", end=" ")
j += 1 # Correction : Incrémentation de j
print()
i += 1
Sortie corrigée :
Exercice 11 : Ajouter des print de débogage¶
for i in range(2):
for j in range(3):
print(f"(i={i}, j={j})", end=" ") # Ajout des valeurs de i et j
print("*", end=" ")
print()
Sortie :
Exercice 12 : Vérifier les conditions de sortie¶
Problème : La boucle interne n’incrémente pas j, ce qui crée une boucle infinie.
Correction : Ajouter j += 1 dans la boucle interne.
i = 0
while i < 5:
j = 0
while j < 5:
print(f"({i}, {j})", end=" ")
j += 1 # Correction : Incrémentation de j
print()
i += 1
Sortie corrigée :
(0, 0) (0, 1) (0, 2) (0, 3) (0, 4)
(1, 0) (1, 1) (1, 2) (1, 3) (1, 4)
(2, 0) (2, 1) (2, 2) (2, 3) (2, 4)
(3, 0) (3, 1) (3, 2) (3, 3) (3, 4)
(4, 0) (4, 1) (4, 2) (4, 3) (4, 4)
Exercices supplémentaires¶
1. Affichage de carrés dans la console¶
def afficher_carre(n):
# Ligne du haut
print("* " * n)
# Lignes du milieu
for i in range(1, n - 1):
print("* ", end="")
for _ in range(1, n - 1):
print(". ", end="")
print("*")
# Ligne du bas
if n > 1:
print("* " * n)
for largeur in range(10, 3, -2):
print(f"largeur = {largeur}")
afficher_carre(largeur)
print()
2. Logarithme en base 2¶
def log_2(n):
puissance = 1
exposant = 0
while puissance < n:
puissance *= 2
exposant += 1
return exposant
valeurs = [32, 34, 64, 100, 128, 150]
for n in valeurs:
print(f"log_2({n}) = {log_2(n)}")
3. Somme des n premiers entiers¶
def somme_boucle(n):
somme = 0
for i in range(1, n + 1):
somme += i
return somme
def somme_formule(n):
return n * (n + 1) // 2
for n in range(0, 101, 7):
print(f"somme_boucle({n}) == somme_formule({n}) == {somme_boucle(n)}")
Utilisation de l’IA
Page rédigée en partie avec l’aide d’un assistant IA. L’IA a été utilisée pour générer des explications, des exemples et/ou des suggestions de structure. Toutes les informations ont été vérifiées, éditées et complétées par l’auteur.