📝 Exercice : Jeu des Tables de Multiplication
Objectif : Écrire un programme qui permet de tester les tables de multiplication.
- Le programme choisit au hasard deux entiers x et y (entre 0 et 10)
- Il affiche la question : x * y = ?
- L'utilisateur répond en donnant un entier n
- Le programme vérifie si c'est la bonne réponse et affiche "Bravo" ou "Erreur"
- Le jeu se déroule en 5 essais
- À chaque essai, on calcule le score
- À la fin du jeu, afficher le score final
Exemple d'exécution :
Essai : 1
4 * 7 = ?
Votre réponse : 28
Bravo !
Score actuel : 1/5
📌 Déroulement du programme :
- Utiliser une boucle pour les 5 essais
- Générer des nombres aléatoires entre 0 et 10
- Demander à l'utilisateur sa réponse
- Vérifier si la réponse est correcte
- Mettre à jour le score
- Afficher le résultat final
✅ Solution détaillée
Méthode pas à pas :
- Initialiser le score à 0
- Pour chaque essai de 1 à 5 faire :
- Générer aléatoirement x entre 0 et 10
- Générer aléatoirement y entre 0 et 10
- Afficher "Essai i" (i de 1 à 5)
- Afficher la question "x * y"
- Demander la réponse de l'utilisateur
- Si réponse correcte :
- Afficher "BRAVO"
- Augmenter le score de 1
- Sinon :
- Afficher "Erreur"
- Afficher une séparation "***********"
- Afficher le score final
📋 Tableau des variables (TDO) :
| Nom Variable | Type | Description |
|---|---|---|
| score | Entier | Nombre de bonnes réponses |
| i | Entier | Compteur de boucle (0 à 4) |
| x, y | Entier | Nombres à multiplier |
| n | Entier | Réponse de l'utilisateur |
📊 Exemple d'exécution complète :
Essai 1 :
- Essai 1
- 4 * 7
- Votre réponse : 28
- BRAVO
- ***********
Essai 2 :
- Essai 2
- 9 * 6
- Votre réponse : 54
- BRAVO
- ***********
Résultat final : Score final = 5
Points clés de la solution :
- Utilisation d'une boucle
for i in range(5) - Génération de nombres aléatoires avec
random.randint(0, 10) - Conversion de
i+1pour afficher "Essai 1" au lieu de "Essai 0" - Comparaison simple
if n == x*y - Mise à jour du score avec
score = score + 1
📋 Algorithme détaillé
** Algorithme : Jeu des tables de multiplication **
** Exactement comme le code Python de la photo **
Algorithme TablesMultiplication
Début
// 1. Initialiser le score à 0
score <- 0
// 2. Boucle pour les 5 essais (i de 0 à 4)
Pour i <- 0 à 4 Faire
// 3. Afficher le numéro de l'essai (i+1 pour commencer à 1)
Ecrire("Essai " + convertir_en_chaine(i+1))
// 4. Générer deux nombres aléatoires entre 0 et 10
x <- alea(0, 10)
y <- alea(0, 10)
// 5. Afficher la question de multiplication
Ecrire(x, "*", y)
// 6. Demander la réponse à l'utilisateur
Ecrire("votre réponse :")
Lire(n)
// 7. Vérifier si la réponse est correcte
Si n = x * y Alors
Ecrire("BRAVO")
score <- score + 1
Sinon
Ecrire("Erreur")
FinSi
// 8. Afficher une séparation entre les essais
Ecrire("***********")
FinPour
// 9. Afficher le score final
Ecrire("Score finale = ", score)
Fin
🔍 Explications détaillées :
- Initialisation : Le score commence à 0
- Boucle : 5 essais avec
ide 0 à 4 - Affichage essai : On affiche "Essai 1" grâce à
i+1 - Génération aléatoire : Deux nombres entre 0 et 10
- Question : Affichage simple "x * y"
- Saisie : Lecture de la réponse utilisateur
- Vérification : Comparaison avec le produit
x*y - Feedback : "BRAVO" ou "Erreur" selon le résultat
- Mise à jour score : Incrémentation si bonne réponse
- Séparation : Ligne d'étoiles entre chaque essai
- Résultat final : Affichage du score total
🐍 Code Python
# Programme Python : Jeu des tables de multiplication
# Code corrigé selon la photo - Sans utiliser de fonctions
import random # Nécessaire pour random.randint
# 1. Initialiser le score à 0
score = 0
# 2. Boucle pour les 5 essais (i de 0 à 4)
for i in range(5) :
# 3. Afficher le numéro de l'essai (i+1 pour commencer à 1)
print("Essai " + str(i+1)) # Essai 1
# 4. Générer deux nombres aléatoires entre 0 et 10
x = random.randint(0, 10)
y = random.randint(0, 10)
# 5. Afficher la question de multiplication
print(x, "*", y)
# 6. Demander la réponse à l'utilisateur
n = int(input("votre réponse :"))
# 7. Vérifier si la réponse est correcte
if (n == x * y) :
print("BRAVO")
score = score + 1
else :
print("Erreur")
# 8. Afficher une séparation entre les essais
print("***********")
# 9. Afficher le score final
print("Score finale = ", score)
🎯 Étapes du programme Python :
- Importation :
import randompour générer des nombres aléatoires - Initialisation :
score = 0pour compter les bonnes réponses - Boucle :
for i in range(5)pour 5 essais (i=0,1,2,3,4) - Affichage essai :
"Essai " + str(i+1)pour afficher "Essai 1", "Essai 2", etc. - Génération aléatoire :
random.randint(0, 10)pour x et y - Question :
print(x, "*", y)affiche la multiplication - Saisie :
int(input("votre réponse :"))lit la réponse - Vérification :
if (n == x * y)compare la réponse - Feedback : Affiche "BRAVO" ou "Erreur"
- Mise à jour score :
score = score + 1si bonne réponse - Séparation : Ligne d'étoiles entre chaque essai
- Résultat : Affiche le score final
Correspondance Algorithme ↔ Python :
| Algorithme | Python | Description |
|---|---|---|
score ← 0 |
score = 0 |
Initialisation du score |
Pour i ← 0 à 4 |
for i in range(5) |
Boucle de 5 essais |
convertir_en_chaine(i+1) |
str(i+1) |
Conversion en chaîne |
alea(0, 10) |
random.randint(0, 10) |
Génération nombre aléatoire |
Ecrire() |
print() |
Affichage à l'écran |
Lire(n) |
n = int(input()) |
Lecture d'un entier |
Si n = x*y Alors |
if (n == x*y): |
Condition de vérification |
score ← score + 1 |
score = score + 1 |
Incémentation du score |