Poster un nouveau sujet Poster une réponse
algorithme grenouille while / for
Auteur Message
f(x)=2x



Autorisation : Membre
Nb de messages : 21
Inscrit le : Sam 04 Fév 2012, 17:46
Posté le : Dim 15 Avr 2012, 13:38   Citer 

Bonjour !
je dois faire un algorithme.
"Une grenouille se trouve sur un nénuphare noté 0. Faire un lancer aléatoire entre 1 et 0. Si le résultat est 0, la grenouille saute a gauche, sinon elle saute a droite. Au nenuphare 4, il y a un animal, si elle arrive au 4, elle meurt. Si elle arrive au nenuphare -3 elle mange, le jeu s'arrete.
on fait au maximum 10 lancers aléatoires.
Realiser un algo pour qu'il fait 100fois et qu'il fasse afficher le nombre de fois qu'elle meurt, le nombre de fois qu'ele mange & le nombre de fois qu'elle se balade sans manger et sans se faire manger par l'animal."

J'ai fait quelque chose mais il ne me dit pas combien de fois elle se balade sans manger.


VARIABLES
X EST_DU_TYPE NOMBRE // numéro du nénuphare
P EST_DU_TYPE NOMBRE // Resultat du lancer aleatoire 1 ou 0
N EST_DU_TYPE NOMBRE // Compteur de lancers
I EST_DU_TYPE NOMBRE // Indice de boucle
A EST_DU_TYPE NOMBRE // Nombre de fois qu'elle mange
B EST_DU_TYPE NOMBRE // Nombre de fois qu'elle se balade sans manger
C EST_DU_TYPE NOMBRE // Nombre de fois qu'elle meurt

DEBUT_ALGORITHME
1 A PREND LA VALEUR 0
11 B PREND LA VALEUR 0
12 C PREND_LA_VALEUR 0
13 POUR I ALLANT_DE 1 A 100
14 DEBUT_POUR
15 X PREND_LA_VALEUR 0
16 N PREND_LA_VALEUR 0
17 P PREND_LA_VALEUR ALGOBOX_ALEA_ENT(0,1)
18 N PREND_LA_VALEUR N+1
19 TANT_QUE (X!=-3 ET X!=4 ET N<10) FAIRE
20 DEBUT_TANT_QUE
21 SI (P==0) ALORS
22 DEBUT_SI
23 X PREND_LA_VALEUR X-1
24 FIN_SI
25 SINON
26 DEBUT_SINON
27 X PREND_LA_VALEUR X+1
28 FIN_SINON
29 FIN_TANT_QUE
30 SI (X==4) ALORS
31 DEBUT_SI
32 AFFICHER "Mort"
33 B PREND_LA_VALEUR B+1
34 FIN_SI
35 SI (X==-3) ALORS
36 DEBUT_SI
37 AFFICHER "Sieste Digestive"
38 A PREND_LA_VALEUR A+1
39 FIN_SI
40 SI (X!=-3 ET X!=4) ALORS
41 DEBUT_SI
42 AFFICHER "grenouille vit bigmouth.gif"
43 C PREND_LA_VALEUR C+1
44 FIN_SI
45 FIN_POUR
46 AFFICHER "Nombre de sieste digestive"
47 AFFICHER A
48 AFFICHER "Nombre de mort"
49 AFFICHER B
50 AFFICHER "Nombre de vie"
51 AFFICHER C
FIN_ALGORITHME

je l'ai fait sur algobox.
Est ce que quelqu'un peut me dire où est mon erreur ?

 Adresse email Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Dim 15 Avr 2012, 15:05   Citer 

tu nous demande où est l'erreur, mais c'est quoi le problème?

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
tapenad



Autorisation : Membre
Nb de messages : 197
Inscrit le : Jeu 17 Nov 2011, 13:20
Posté le : Dim 15 Avr 2012, 15:09   Citer 

et de plus ce forum est plutôt dédié à la progra sur ti et non sur algobox, je pense donc que la majorité des gens auront du mal à t'aider

----------------------
L’erreur est humaine, mais pour provoquer une vraie catastrophe, il faut un ordinateur.

je suis premier!!!

je m'aime.
 Adresse email Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Dim 15 Avr 2012, 15:15   Citer 

bah, c'est du langage naturel, donc ça devrait aller, c'est pas comme si on nous sortait de l'assembleur pour ordinateurs modernes ou du C ou encore du http qui sont incompréhensibles pour ceux qui ne connaissent pas le langage.

Sandro

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
f(x)=2x



Autorisation : Membre
Nb de messages : 21
Inscrit le : Sam 04 Fév 2012, 17:46
Posté le : Dim 15 Avr 2012, 15:38   Citer 

Lorsque je le fais fonctionner, j'ai toujours 0 pour le nombre de fois que le grenouille se balade sans manger. Donc je pense que j'ai mal mis certains éléments, mais je ne sais pas lesquels :/ Le prof a dit que ce n'est pas possible d'avoir un resultat nul pour le nombre de fois qu'elle se balade sans manger.
bah je peux tout mettre en langage TI alors ..

Code

Variables:
X numéro du nénuphare
P Resultat du lancer aleatoire 1 ou 0
N Compteur de lancers
I Indice de boucle
A Nombre de fois qu'elle mange
B Nombre de fois qu'elle se balade sans manger
C Nombre de fois qu'elle meurt

Debut:
0->A
0->B
0->C
For(I,1,100
0->X
0->N
entaleat(1,0)-> P
N+1 -> N
While X=/=3 ET X=/=4 ET N<10
If(P==0)
Then
X-1->X
Else
X+1-> X
End
End
If X=4
Then
Disp "Mort"
B+1 -> B
End
If X=-3
Then
Disp "Sieste Digestive"
A+1->A
end
If X=/= -3 ET X=/=4
Then
Disp "grenouille vit "
C+1->C
End
End
disp "Nombre de sieste digestive"
disp A
disp "Nombre de mort"
disp B
disp "Nombre de vie"
disp C

FIN



Voilà.

 Adresse email Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Dim 15 Avr 2012, 15:44   Citer 

c'est bon, je crois que j'ai trouvé l'erreur : le 18 N PREND_LA_VALEUR N+1 est hors de laboucle tantQue, donc la condition N<10 ne fonctionne pas : le programme continue donc jusqu'à ce que la grennouille face la sièste ou soit mangée.

Il te suffit donc d'iverser les lignes 18 et 19.

Sandro

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Page générée en 6 requêtes