Décompte de bonnes réponses

Fermé
cbnla - 9 oct. 2017 à 06:29
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 10 oct. 2017 à 09:31
Bonjour,
je suis très nouvelle sur ce site et j apprends la progammation en python (1ere année a l université) donc ceci est ma premiere question.
au fait j'ai un exercices dans lequel je dois créer un programme...le voici:"Vous devez développer un logiciel qui servira d’outil d’apprentissage
d’opérations arithmétiques pour les élèves de l’école élémentaire. Le logiciel permet à l’élève de
choisir l’opération arithmétique qu’il ou elle veut pratiquer. L’élève choisit l’une de deux
opérations, soit la multiplication, soit l’addition (les autres opérations ont été exclues pour que le
problème reste simple). Selon le choix effectué, le logiciel teste l’élève avec un exercice
contenant exactement 10 questions. Pour chaque question, deux entiers positifs d’un chiffre sont
générés de façon aléatoire; l’élève est ensuite invité à donner la bonne réponse pour l’opération
arithmétique appliquée aux deux entiers. Le logiciel affiche le message « Félicitations! » si plus de
6 bonnes réponses ont été données, sinon il affiche le message « Demandez à votre enseignant(e)
de vous aider. »".

Maintenant on me demande ça:" Créez la partie principale du programme Python pour intéragir avec l’élève : faites-le choisir
entre la multiplication et l’addition (demandez l’entier 1 pour la multiplication ou 0 pour
l’addition), appelez la fonction pour effectuer l’exercice de 10 questions, et affichez le nombre
de bonnes réponses données par la fonction et un message approprié selon le nombre de
bonnes réponses. Le message est « Félicitations! » si plus de 6 bonnes réponses ont été
données, sinon le message est « Demandez à votre enseignant(e) de vous aider. ». "
J'ai besoin d'aide SVP
merci


1 réponse

[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
9 oct. 2017 à 18:28
Bonjour,

Ce n'est pas comme cela que fonctionne le forum.

https://www.commentcamarche.net/infos/25899-demander-de-l-aide-pour-vos-exercices-sur-ccm/

Extraits :
  • Ne postez votre question que si vous avez déjà essayé de trouver une solution par vous-même. Surtout dites-nous ce que vous avez déjà tenté pour résoudre votre problème.
  • Détaillez précisément le ou les point(s) qui vous pose(nt) un problème dans votre exercice. Si vous ne savez pas par où commencer, dites-le à ceux qui vous aident sur le forum et ils vous donneront éventuellement des axes de recherche.
  • Si votre demande concerne la programmation, postez votre code en utilisant la coloration syntaxique. Si un message d'erreur apparait, recopiez-le en intégralité, précisez la ligne où il apparait et le contenu des variables.

Dal
0
cbnla Messages postés 3 Date d'inscription lundi 9 octobre 2017 Statut Membre Dernière intervention 14 février 2018
Modifié le 9 oct. 2017 à 21:22
D'accord... je savais pas!
voici mon code :

import random

print("Ce logiciel va effectuer un test avec 10 questions …… ")
X=int(input("SVP choisissez l'operation 0) Addition 1) Multiplication (0 ou 1): "))


if X==0:
    print("SVP donnez les reponses aux additions suivantes: ")
    for i in range(0,3):
        def My_function():
            x=random.randint(0,9)
            y=random.randint(0,9)
            z=x+y
            print(x, "+" ,y,"=")
            A=int(input())
            if A != z:
                print("Incorrect - la réponse est",z)
                return A
        m=My_function()
        print("Félicitations")
    
elif X==1:
    print("SVP donnez les reponses aux multiplications suivantes: ")
    for i in range(0,3):
        def Ma_fonction():
            a=random.randint(0,9)
            b=random.randint(0,9)
            c=a*b
            print(a,"*",b,"=")
            B=int(input())
            if B != c:
                print("Incorrect - la réponse est",c)
                return B
        n=Ma_fonction()
    print("Félicitations")
        

else:
    print("Mauvais choix, vous avez une deuxième chance !!!") 


Maintenant je dois avoir le résultat suivant :
"Ce logiciel va effectuer un test avec 10 questions ……
SVP choisissez l'operation 0) Addition 1) Multiplication (0 ou 1):
0
SVP donnez les reponses aux additions suivantes:
0 + 0 = 0
2 + 3 = 5
6 + 8 = 14
0 + 3 = 3
8 + 9 = 2
Incorrect – la reponse est 17
1 + 6 = 7
3 + 0 = 3
4 + 1 = 5
7 + 9 = 17
Incorrect – la reponse est 16
0 + 3 = 3
8 reponses correctes.
Felicitations! "


Mon problème c'est comment affichr le nombre de bonnes réponses !!!

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié le 10 oct. 2017 à 09:50
Dans ton code, tu ne demandes pas à l'utilisateur de résoudre 10 opérations, mais 3. En outre l'affichage n'est pas exactement le même.

Sinon, pour afficher le nombre de bonnes réponses, il faut les compter.

Comme tu déclares une fonction pour faire les calculs, tu pourrais lui faire retourner 1 si le résultat est correct et 0 sinon, et te servir de ce nombre pour incrémenter un compteur, et, lorsque la boucle de 10 appels à la fonction est finie, afficher les messages attendus en fonction du nombre de bonnes réponses.

Tes fonctions devraient être définies en dehors des boucles et du programme principal, et porter des noms différents et explicites.

Donne aussi à tes variables des noms explicites :
X
,
z
,
A
ou
B
, ne me parlent pas. Par contre
choix
,
resultat
, ou
reponse
oui.

Les variables définies dans une fonction ont une portée limitée à la fonction. Tu peux donc sans problèmes appeler le premier nombre du terme de l'opération
x
, le deuxième
y
, le résultat
resultat
et la réponse
reponse
dans les deux fonctions.

En fait, les fonctions sont tellement similaires, que tu pourrais n'en faire qu'une seule, avec un paramètre permettant de savoir si c'est une addition ou une multiplication qu'il faut gérer, ou en utilisant la variable globale
choix
pour distinguer l'opération à réaliser pour calculer
resultat
.


Dal
0