Bonjour, bonsoir
Je dois écrire un programme qui permet de réviser les tables de multiplications.
entrées: les réponses de l'utilisateur à 10 questions posées sous la forme"[?]*[?]="
Sortir: 'faux" ou "exact" selon le cas, puis"Terminé,[?] réponses correctes sur 10".
Traitement: générer deux nombres aléatoires compris entre -10 et 10.
Je travail sur Algobox
Pouvez-vous m'aider si vous plait
Bonjour,
score = 0
répéter 10 fois :
tirer deux nombres au hasard entre -10 et +10
poser la question
saisir la réponse
si réponse bonne : sortir "exact", score + 1 -> score
sinon : sortir "faux"
afficher "Terminé" et score
traduire sur Algobox : il ne mord pas, essaye.
Excusez-moi, c'est peut être une question bête, mais comment on fait la boucle pour y répéter 10 fois?
tu définis une variable que tu appelles comme tu veux, i par exemple
et tu utilises une boucle
POUR i ALLANT_DE 1 A 10
on cherche dans la doc de Algobox (aide en ligne)
Chapitre 3 - opérations avec les nombres, il y a une fonction faite pour.
Je fini cela demain, je vais me coucher
début de mon algorithme:
variable:
score, question, nombre1, nombre2
début:
score prend la valeur 0
pour i allant de 1 à 10
nombre1 prend la valeur (chiffre aléatoire entre -10 et 10)
nombre2 " " " " " " " " "
si question==nombre1*(nombre2)
score prend la valeur +1
afficher " Exact "
fin si
sinon
afficher "faux"
fin sinon
afficher score
Es-ce un bon début?
il y a encore quelques trous.
mais "c'est un bon début"
- aller effectivement regarder l'aide en ligne pour voir la traduction de "chiffre aléatoire" (ne pas confondre chiffre et nombre, tu veux un nombre) et comment faire pour qu'il soit entre -10 et +10
- et "question" vaut combien ?? il ne manquerait pas un "lire" ?
ta variable question n'a jamais pris aucune valeur
la comparer à quoi que ce soit ne veut rien dire (ou plutot donne un résultat totalement imprévisible)
- "score prend la valeur +1" veut dire que tu mets toujours la valeur 1 dans score,
et non pas que tu comptes le nombre de réponses justes,
c'est à dire que tu dois ajouter 1 à score, pas mettre la valeur constante +1 (identique à "1" sans signe), toujours la même, dedans
- il manque textuellement le "fin pour", mais ça Algobox rale en vrai s'il manque
c'est surtout que ici on ne sait pas où tu l'aurais mis ce "fin pour"...
Bonjour,
-Pour les nombres aléatoire, on me propose cette article: http://algogame.forums-actifs.net/t12-generer-une-valeur-aleatoire
Mais je ne comprends pas comment on peut générer un nombre entre -10 et 10.
-Pour répondre à "question" vaut combien? Je pense qu'elle vaut le premier nombre aléatoire * le deuxième nombre aléatoire.
- Dans score prend la valeur score + 1.
score prend la valeur 0
pour i allant de 1 à 10
nombre1 prend la valeur (chiffre aléatoire entre -10 et 10)
nombre2 " " " " " " " " "
si question==nombre1*(nombre2)
score prend la valeur score +1
afficher " Exact "
fin si
sinon
afficher "faux"
fin sinon
Fin pour
afficher score
fin algorithme
Bonjkour,
si tu avais cliqué sur le menu "Aide" en haut de l'écran de Algobox, il n'aurait pas été difficile de voir que la fonction Algobox qui génère un nombre aléatoire est random()
VARIABLES
score EST_DU_TYPE NOMBRE
nombre1 EST_DU_TYPE NOMBRE
nombre2 EST_DU_TYPE NOMBRE
question EST_DU_TYPE NOMBRE
i EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
score PREND_LA_VALEUR 0
LIRE question
POUR i ALLANT_DE 1 A 10
DEBUT_POUR
nombre1 PREND_LA_VALEUR floor(random()*21) - 10
nombre2 PREND_LA_VALEUR floor(random()*21) - 10
SI (question==nombre1*nombre2) ALORS
DEBUT_SI
score PREND_LA_VALEUR score+1
AFFICHER "Exact"
FIN_SI
SINON
DEBUT_SINON
AFFICHER "Faux"
FIN_SINON
FIN_POUR
AFFICHER score
FIN_ALGORITHME
Mais ça ne marche pas
tu ne demande qu'un seul résultat ????
tu dois pour chaque tirage demander la valeur de cette multiplication
pas demander une fois pour toute un résultat et le comparer, cet unique résultat, à 10 multiplications tirées ensuite au hasard !!
Et tout de même, il faut bien que tu affiches quelle multiplication est demandée ! que tu affiche le message
Je lui est dit d'afficher nombre1 et nombre2. Mais je n'arrive pas à dire que c'est juste ou faux: cela me met les multiplications à faire et la dernière, cela écrit si elle est juste ou fausse et le nombres de multiplications juste.
score EST_DU_TYPE NOMBRE
nombre1 EST_DU_TYPE NOMBRE
nombre2 EST_DU_TYPE NOMBRE
question EST_DU_TYPE NOMBRE
i EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
score PREND_LA_VALEUR 0
POUR i ALLANT_DE 1 A 10
DEBUT_POUR
nombre1 PREND_LA_VALEUR floor(random()*21) - 10
nombre2 PREND_LA_VALEUR floor(random()*21) - 10
AFFICHER "La multiplication est:"
AFFICHER nombre1
AFFICHER "*"
AFFICHER nombre2
question PREND_LA_VALEUR nombre1*nombre2
LIRE question
SI (question==nombre1*nombre2) ALORS
DEBUT_SI
score PREND_LA_VALEUR score+1
AFFICHER "Exact"
FIN_SI
SINON
DEBUT_SINON
AFFICHER "Faux"
FIN_SINON
FIN_POUR
AFFICHER "Votre score est de "
AFFICHER score
FIN_ALGORITHME
la ligne "question PREND_LA_VALEUR nombre1*nombre2" est inutile puisque la ligne suivante tu remplaces cette valeur par ce que tape l'utilisateur :
"LIRE question"
mais ça ne perturbe pas l'algorithme qui doit fonctionner
en réduisant à 4 le nombre de boucles pour tout avoir sur l'écran :
***Algorithme lancé***
La multiplication est:-7*8
Entrer question : -56
ExactLa multiplication est:6*8
Entrer question : 48
ExactLa multiplication est:-10*-4
Entrer question : 40
ExactLa multiplication est:7*-2
Entrer question : 14
FauxVotre score est de 3
***Algorithme terminé***
donc "ça marche" (j'ai copié collé ton algorithme et j'ai uniquement remplacé "10" par "4" pour que ça ne dure pas trop longtemps)
on peut certes améliorer la présentation en faisant suivre le verdict "exact" ou "faux" d'un retour à la ligne :
AFFICHER* "Exact"
AFFICHER* "Faux"
le "*" derrière "AFFICHER" veut dire "retour à la ligne après l'affichage" sinon il continue tout sur la même, et seuls les "LIRE" provoquent un retour à la ligne
qui donne
***Algorithme lancé***
La multiplication est:8*-6
Entrer question : -48
Exact
La multiplication est:-4*6
Entrer question : 24
Faux
La multiplication est:6*-4
Entrer question : -24
Exact
La multiplication est:-7*-3
Entrer question : 21
Exact
Votre score est de 3
***Algorithme terminé***
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :