Poster un nouveau sujet Poster une réponse
echantillonage (tirage de boule)
Auteur Message
monsaibert
Invité
Posté le : Mar 10 Avr 2012, 17:48   Citer 

Problème

Simuler un tirage de boule:
dans une urne on a 60 boules blanches,10boules rouges, 30 boules noires.
on tire une boule.
simuler 500 fois / etablir les 3 frequences.

J'ai fait un essais

.....
For(I,1,500
entAleat(1,100-> P
Si P < ou= 10
then
R+1->R (pour compter les rouges)
......là celà marche- le problème vient apres..

Si P > 10 et P < ou= à 40
then
N+1 -> N (pour compter les noires) là celà coince.
........

Tu as compris la methode ?..de 1 à 10 pour pour les rouges/ de 10 à 40 pour les noires , de 40 à 100 pour les blanches.

Autrement dit est-ce qu'un SI de ce type
" Si P > 10 et P < ou= à 40" peut marcher ?

  Haut de page Bas de page 
 
darkmory
Avatar

Autorisation : Membre
Nb de messages : 131
Inscrit le : Jeu 07 Jan 2010, 22:13
Posté le : Mar 10 Avr 2012, 21:32   Citer 

sa marche tout à fait je suis curieux de voir le code final...

----------------------
chuck norris peut jouer au tout dernier prince of persia sur une calto
chuck norris peut ecrire tres vite et tres bien avec une psp
Cours de programmation via le fofo ici
 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 : Mar 10 Avr 2012, 23:09   Citer 

Ton problème vient je crois du fait que tu ne met pas de FiinSi à la fin de tes Si, mais pas de Sinon non-plus

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
monsalbert
Invité
Posté le : Mer 11 Avr 2012, 15:00   Citer 

Merci à tous deux. C'est bon.
Bravo sandro! effectivement les finSi m'ont fait des misères, de même les else..

pour darkmory :

input K ( nombres de tirages)
0 -> R
0 -> N
0-> B
For(I,1,K
entAleat(1,100 -> P (boule tirée de 1 à 100)
If P <ou= 10
then
R+1 ->R
end
If P > 10 et P<ou= 40
then
N+1->N
end
If P > 40 et P <ou= 100
then
B+1 -> B
end
end
Disp R,N,B (somme :100)

  Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mer 11 Avr 2012, 19:05   Citer 

Excellent, c'est rigoureux et valable dans de nombreux languages.
Mais on peut alléger les structures des tests en éliminant les Then et End facultatifs.
J'ai aussi supprimmé une condition sans influence.

Code
Input K
0 -> R
0 -> N
0 -> B
For(I,1,K
entAléat(1,100 -> P
If P <ou= 10
R+1 ->R
If P>10 et P <ou= 40
N+1->N
If P>40
B+1 -> B
End
Disp R,N,B

PS : Ah, les Then... Cela me marque de nostalgie car c'est le premier problème qui m'a mené sur ce forum.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
monsaibert
Invité
Posté le : Ven 13 Avr 2012, 17:21   Citer 

Merci Linka de tes felicitations! C'est mon premier code officiel fait tout seul!Un bon encouragement.

je remarque
- tu ne mets pas les then. Sont-ils toujours facultatifs?
- de meme tu ne mets aucun end aux Si . Sont-ils facultatifs?
Le seul end est au For? Mais lui il s'arrête à K( valeur de l'echantillon )de toutes façons.
Un End est obligatoire pour fermer un programme dans tous les cas? ..avant les Disp pour voir le travail.

  Haut de page Bas de page 
 
Sangohan38



Autorisation : Membre
Nb de messages : 3293
Inscrit le : Sam 31 Déc 2005, 19:48
Posté le : Ven 13 Avr 2012, 18:55   Citer 

Les Then/else/end sont facultatifs quand il n'y a qu'une instruction après le if. Par contre quand on ouvre une boucle (While ou for par exemple) il faut forcément la refermée pour retourner au début d'où sa présence ici.

Sangohan38

 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Ven 13 Avr 2012, 19:01   Citer 

L'algorithme valable dans tous les languages pour un SI :
Code
SI ... // test
Alors
 // actions
Sinon  // facultatif
 // actions
FinSI

Cela se traduit litéralement en TI-Basic :
Code
If ... // test
Then
 // actions
Else  // facultatif
 // actions
End

Remarque : la TI n'utilise qu'un seul type de "End" pour toutes les boucles.

Prenons maintenant le cas où il n'y a PAS de Else et UNE SEULE action.
La TI admet alors une syntaxe particulière, propre à TI.
Code
If ... //test
Then
 // une seule action
End

///////////// cela se simplifie de la manière suivante :

If ... // test
... // l'unique action



Maintenant une boucle comme le For
Code
... // actions
For( ...
 // actions
End
... // autres actions pour la fin du programme, éventuellement rien



----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
monsaibert
Invité
Posté le : Sam 14 Avr 2012, 12:41   Citer 

Merci pour ces precisions.

  Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





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