Bonjour a tous !
J'ai un DM de mathématiques a faire sur algobox et il me dit toujours qu'il y a une erreur ! Voici l'énoncé :
"On tire, au hasard, une carte dans un jeu de 32 cartes. Si c'est un as on gagne 1€. On réalise n fois cette expérience.
Ecrir sous le logiciel algobox un algorithme permettant :
- de simuler n tirages de cartes
- d'afficher la somme gagnée au cours de ces n tirages
- de calculer la fréquence d'apparition d'un as
J'accepte tout type d'aide.
Merci a vous de m'avoir lu et j'espere quelques réponses !
Bonsoir,
Je vous propose de travailler comme ceci:
VARIABLES
2 n EST_DU_TYPE NOMBRE
3 s EST_DU_TYPE NOMBRE
4 r EST_DU_TYPE NOMBRE
5 a EST_DU_TYPE NOMBRE
6 b EST_DU_TYPE NOMBRE
7 i EST_DU_TYPE NOMBRE
8 Carte EST_DU_TYPE CHAINE
9 Couleur EST_DU_TYPE CHAINE
10 ca EST_DU_TYPE CHAINE
11 co EST_DU_TYPE CHAINE
12 DEBUT_ALGORITHME
13 Carte PREND_LA_VALEUR "Sept-,Huit-,Neuf-,Dix--,Valet,Dame-,Roi--,As---"
14 Couleur PREND_LA_VALEUR "Pique--,Trèfle-,Carreau,Coeur--"
15 //les cartes seront codées 0 1 2 3 4 5 6 7
16 //pour 7 8 9 10 valet dame Roi as
17 s PREND_LA_VALEUR 0
18 r PREND_LA_VALEUR 0
19 AFFICHER "Valeur de n"
20 LIRE n
21 AFFICHER " "
Si ceci vous convient, faites le moi savoir.
Alors en faites on doit simplement déclarer des variables de type nombre et utiliser la fonction random !
Voici pour l'utilisation du random
22 POUR i ALLANT_DE 1 A n
23 DEBUT_POUR
24 a PREND_LA_VALEUR floor(8*random())
25 ca PREND_LA_VALEUR Carte.substr(6*a,5)
26 b PREND_LA_VALEUR floor(4*random())
27 co PREND_LA_VALEUR Couleur.substr(8*b,7)
28 AFFICHER "Tirage n°"
29 AFFICHER i
30 AFFICHER "("
31 AFFICHER a
32 AFFICHER ca
33 AFFICHER ","
34 AFFICHER b
35 AFFICHER co
36 AFFICHER ") "
37 SI (a==7) ALORS
38 DEBUT_SI
39 r PREND_LA_VALEUR r+1
40 AFFICHER " gagné "
41 AFFICHER r
42 FIN_SI
43 AFFICHER " "
44 FIN_POUR
45 AFFICHER "Pour "
46 AFFICHER n
47 AFFICHER "tirages votre gain est "
48 AFFICHER r
49 AFFICHER "€"
50 FIN_ALGORITHME
Cela va de soi qu'il devrait y avoir une mise que l'on peut perdre.
Les variables chaîne couleur et carte sont utilisées pour afficher la carte du tirage.
Merci pour votre réponse et avoir pris le temps de le faire
Si d'autre on appris autrement faites moi le savoir !
Joli, Caylus.
Je me demandais comment faire. Donner ça en seconde, je trouve ça un peu rude. Combien de profs savent le faire ?
Bonjour
Il a plusieurs manières de coder des cartes en nombre. Mais il faut suivre la même logique pour la génération et l'exploitation des résultats.
par exemple:
on tire un nombre entre 1 et 32
1-4 représentent les cartes 7, rangées en Carreau, Coeur, Pique, Trefle
5-8 repérentent les cartes 8
9-12 --> 9
...
33-36 -> as
Et donc, en tirant un nombre x
si le reste de la division de x par 4 est
1, alors c'est un carreau
2 - coeur
3- pique
0- trefle
...
Et pour la question, il suffit de vérifier si x est supérieur ou égal à 33, et dans ce cas, on gagne 1€
Bonjour,
j'ai le même DM pour le 25février, auourd'hui j'ai vu votre algorithme et l'ai recopié sur mon logiciel algobox mais quand je le teste il y a un erreur
"***L'algorithme contient une erreur : impossible de le lancer***
***Vérifiez la syntaxe des affectations et des conditions***"
Pouvez-vous m'expliquer ?
Es-ce par ce que quand vous mettez "a PREND_LA_VALEUR floor(8*random())" par exemple moi il y a AFFICHER devant ?
Merci, a bientot j'espère avant le 25
Euh, non afficher c'est autre chose, et cela explique ton erreur
Je ne sais pas comment fonctionne Algobox pour préremplir les algorithmes, mais APREND_LA_VALEUR est bien une fonction prédéfinie d'algobox
Bnojour
Voici mon algorithme j'ai changé les "prend la valeur" comme vous me l'aviez dit mais quand je le teste il ne fonctionne toujours pas, pouvez vous regarder mon algorythme ci dessous et me dire ce qu'il ne va pas s'il vous plait ?
Merci =)
C'est a PREND_LA_VALEUR floor(8*random())
pas a PREND_LA_VALEUR PREND_LA_VALEUR floor(8*random())
etc...
ha oui je vois Merci
J'ai tout changé mais cela ne marche toujours pas si vou n'avez pas ce message avant ce soir a 22h je l'envérai comme cela car c'est mon dernier délai.
Merci beaucoup de votre aide
bonjour
je n'ai pas de réponse à vous apporter...mais une question
on ne peut pas simplifier le cas commee on le ferait en probabilité :
si as : succès et donc afficher "on reçoit un euro"
si la carte n'est pas un as, afficher "vous avez perdu"
qu'appelle-t-on "chaine"? (couleur est du type chaine"
merci
Finalement j'ai trouvé le problème dans mon algoritme et j'ai pu l'envoyer a temps, Merci beaucoup pour vos aides et conseils
comment on fait cette partie sur algobox?
15 //les cartes seront codées 0 1 2 3 4 5 6 7
16 //pour 7 8 9 10 valet dame Roi as
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :