Bonjour,
Voilà une semaine que j'essaie de trouver une solution à mon DM d'algorithme :
"Sébastien veut un algorithme qui simule un certain nombre de fois le lancer d'un dé
- Il doit lui demander le nombre de faces du dé. Il doit vérifier que c'est bien 4 au minimum.
- Il doit demander le nombre de lancers
- Il affiche alors les résultats de ces lancers de dé"
Écrire en langage courant l'algorithme qui convient et le tester sur Algobox
Il y a une seconde partie:
"Pour aller plus loin, modifier ensuite l'algorithme pour qu'il n'affiche pas le nombre mais "Gagné" si c'est le nombre maximum du dé, ou "Perdu" si c'est un autre nombre"
Pour le moment, sur Algobox, j'aboutis juste à ça et je suis complètement bloquée:
Bonjour,
si tu demandes le nombre de lancés et que le mets dans une variable L, c'est pas pour changer la valeur de L la ligne après !
Prends une autre variable pour simuler la valeur du lancé de dés ou mets un AFFICHERCALCUL devant.
ALGOBOX_ALEA_ENT(1,Faces_dés) va tirer un nombre entier aléatoire entre 1 et Faces_dés (il faut lui mettre des arguments à cette fonction !)
pour simuler L lancés, il faut que tu mettes une boucle Pour I allant de 1 à L
il faut également que tu affiches les résultats.
continue !
Comme ça??
1 VARIABLES
2 L EST_DU_TYPE NOMBRE
3 Faces_dés EST_DU_TYPE NOMBRE
4 Valeur_lancer_dé EST_DU_TYPE NOMBRE
5 DEBUT_ALGORITHME
6 LIRE Faces_dés
7 SI (Faces_dés>=4) ALORS
8 DEBUT_SI
9 POUR Valeur_lancer_dé ALLANT_DE 1 A L
10 DEBUT_POUR
11 LIRE L
12 Valeur_lancer_dé PREND_LA_VALEUR ALGOBOX_ALEA_ENT(1,Faces_dés)
13 FIN_POUR
14 FIN_SI
15 AFFICHER Valeur_lancer_dé
16 FIN_ALGORITHME
non, tu ne peux pas mettre une boucle Pour Valeur_lancer_dé ALLANT_DE 1 A L et puis à l'intérieur de la boucle changer aléatoirement la valeur de ta variables ! on voit que tu ne l'as pas essayé ton algorithme
et puis tu mets un Pour Valeur_lancer_dé ALLANT_DE 1 A L alors que L n'a pas encore de valeur, comment veux tu qu'algobox arrive à executer ça ?
(tu peux le copier/coller dans algobox en mode éditeur de texte, ou bien directement en ligne dans proglab )
VARIABLES
L EST_DU_TYPE NOMBRE
I EST_DU_TYPE NOMBRE
Faces_dés EST_DU_TYPE NOMBRE
Valeur_lancer_dé EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
LIRE Faces_dés
SI (Faces_dés >= 4) ALORS
DEBUT_SI
LIRE L
POUR I ALLANT_DE 1 A L
DEBUT_POUR
Valeur_lancer_dé PREND_LA_VALEUR ALGOBOX_ALEA_ENT(1,Faces_dés)
AFFICHER* Valeur_lancer_dé
FIN_POUR
FIN_SI
FIN_ALGORITHME
Ah ok! Ben oui c'était pas logique !
Mais le résultat c'est la valeur de chaque lancer??
Et du coup, pour la suite je raccorde au pour et je mets une condition?
J'ai esssayé mais je ne comprends pas pourquoi il met tout le temps gagné quand je le teste.
1 VARIABLES
2 L EST_DU_TYPE NOMBRE
3 I EST_DU_TYPE NOMBRE
4 Faces_dés EST_DU_TYPE NOMBRE
5 Valeur_lancer_dés EST_DU_TYPE NOMBRE
6 DEBUT_ALGORITHME
7 LIRE Faces_dés
8 SI (Faces_dés>=4) ALORS
9 DEBUT_SI
10 LIRE L
11 POUR I ALLANT_DE 1 A L
12 DEBUT_POUR
13 Valeur_lancer_dés PREND_LA_VALEUR ALGOBOX_ALEA_ENT(1,Faces_dés)
14 SI (Valeur_lancer_dés=ALGOBOX_MAXIMUM(Faces_dés)) ALORS
15 DEBUT_SI
16 AFFICHER "Gagné"
17 FIN_SI
18 SINON
19 DEBUT_SINON
20 AFFICHER "Perdu"
21 FIN_SINON
22 FIN_POUR
23 FIN_SI
24 FIN_ALGORITHME
ALGOBOX_MAXIMUM(Faces_dés)) c'est le maximum des termes d'une liste. tu n'as pas de liste ici !
SI (Valeur_lancer_dés == Faces_dés ) ALORS
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :