Bonjour,
j'ai un problème avec un TP de math.
Voilà le code de l'algorithme:
VARIABLES
D est du type nombre
DEBUT _ ALGORITHME
-D prend la valeur floor(6*random0)+1
- Afficher D
FIN_ ALGORIRTHME
Les questions sont:
1°) Que fait l'algorithme suivant?
J'ai répondu que c'était de simuler le lancer d'un dé équilibré à 6 faces.
2°) L'améliorer pour obtenir n lancers d'un dé équilibré.
3°) Améliorer le précédent pour obtenir la somme S des numéros obtenus lors de n lancers.
4°)Compléter et corriger si nécessaire l'algorithme suivant de manière à ce qu'il donne le nombre de lancers nécessaires avant l'apparition du premier 6 lors des lancers successifs et indépendants d'un dé équilibré.
Variables:D est du type nombre
k est du type nombre
Initialisation:
D prend la valeur 0
k prend la valeur 0
Traitement: Tant que D est différent de 6 Faire
Affecter à D un entier aléatoire entre 1 et 6
Fin Tant que
Affecter k+1 à k
Sortie: Afficher D. Afficher k
N.B: J'ai mis en italiques mes réponses
Voilà, je ne sais pas si ma question 4 est juste et c'est surtout les question 2 et 3 qui me posent problème.
Si quelqu'un pouvait m'aider, ce serait gentil.
Merci d'avance
Salut !
2. Pour obtenir n lancers, il faut simplement répéter l'algorithme n fois. Pour cela, on peut utiliser une boucle for (Pour ?) :
VARIABLES
D est du type nombre
k est du type nombre
DEBUT _ ALGORITHME
Pour k allant de 1 à n Faire
-D prend la valeur floor(6*random0)+1
- Afficher D
Fin Pour
FIN_ ALGORIRTHME
3. Pour obtenir la somme des numéros obtenus, il faut en plus avoir une sorte de "compteur" : il est nul initialement et à chaque étape, on rajoute le résultat du dé obtenu à notre compteur. Qu'est-ce que tu pourrais écrire comme algorithme avec cette indication ?
4. L'instruction "Affecter k+1 à k" doit se situer dans la boucle TantQue, sinon elle n'est exécutée qu'une fois et elle ne sert à rien... Puis, pas la peine d'afficher D à la fin, ce qui nous intéresse c'est seulement k.
Merci pour la réponse je pense qu'il faut mettre une boucle tant que dans la boucle pour mais je ne sais pas comment m'y prendre
non pourquoi faire ? tu as déjà une boucle Pour k allant de 1 à n qui remplit bien son rôle.
maintenant tu veux totaliser la somme des dés. Donc tu initialises une variable S à 0 avant la boucle puis dans la boucle tu rajoute une instruction S prend la valeur S+D
et en sortie de boucle tu mets un afficher S (et tu peux enlever le Afficher D à l'intérieur de la boucle qui ne sert plus à rien).
Les boucles TantQue, ça sert que quand on ne sait pas le nombre de lancés que l'on va faire à priori (par exemple ici si on nous disait de recommencer les lancés tant qu'un 6 n'est pas sorti, là on serait obligé de mettre une boucle TantQue à la place du Pour k allant de 1 à n. ça va servir à la question 4 par exemple )
donc si j'ai bien compris l'algorithme devrait être comme cela:
Variables
D est du type nombre
k est du type nombre
S est du type nombre
Début _Algorithme
S prend la valeur 0
Pour K allant de 1 à n Faire
D prend la valeur floor(6*random())+1
S Prend la valeur de S+D
Afficher D
Afficher S
Fin Pour
Fin_ algorithme
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :