question de maths

Publié le 14 déc. 2018 il y a 5A par Anonyme - Fin › 17 déc. 2018 dans 5A
1

Sujet du devoir

je dois transformer cette algorithme en language python :

variables
t EST_DU_TYPE NOMBRE
i EST_DU_TYPE NOMBRE
d EST_DU_TYPE NOMBRE
j EST_DU_TYPE NOMBRE
p EST_DU_TYPE NOMBRE

Début algorithme
t PREND_LA_VALEUR 0
POUR i ALLANT_DE 1 A 10000
DEBUT_POUR
d PREND_LA_VALEUR 0
POUR j ALLANT_DE 1 A 20
DEBUT_POUR
p PREND_LA_VALEUR ALGOBOX_ALEA_ENT(0,1)
SI (p==0) ALORS
DEBUT_SI
d PREND_LA_VALEUR d+1
FIN_SI
FIN_POUR
SI (d==10) ALORS
DEBUT_SI
t PREND_LA_VALEUR t+1
FIN_SI
FIN_POUR
AFFICHER "La fréquence d'atteinte de t est :"
AFFICHERCALCUL t/10000
FIN_ALGORITHME

merci pour votre aide.

Où j'en suis dans mon devoir

j'ai fais ca mais ca ne marche pas :

T=0
for i in range (1,10000):
D=0
for j in range (1,20) :
from random import*
p= randint (0,1)
if p==0:
D=D+1
if D==10:
T=T+1
T=T/10000



3 commentaires pour ce devoir


thomas4085
thomas4085
Posté le 14 déc. 2018

Ce qu'il ne faut jamais oublier, c'est qu'en python l'indentation est essentielle. Par exemple, 

for i in range(1,10):

|   n = n+1

|   print(n)

n'afichera pas la même chose que 

for i in range(1,10):

|   n = n+1

print(n)

 donc il faut bien que tu fasses attention à quelle boucle est imbriquée dans quelle autre boucle (regarde bien les "DEBUT_POUR" et "FIN_POUR")

 

Voilà, essaie déjà de corriger ça et envoie-moi ton code une fois que c'est bon

Anonyme
Anonyme
Posté le 15 déc. 2018

Dans mon algorithme, il y a une boucle pour (avec variable i) dans laquelle il y a une autre boucle pour (avec variable j) et 2 boucles si. La première boucle pour se termine juste avant La ligne : afficher " la frequence de t est :". La seconde boucle pour se termine à la ligne avant : si d==10             Je ne sais vraiment pas comment faire pour ajuster mes erreurs de boucles sur Python , merci d'avance pour votre aide.                                                                                              variables

t EST_DU_TYPE NOMBRE
i EST_DU_TYPE NOMBRE
d EST_DU_TYPE NOMBRE
j EST_DU_TYPE NOMBRE
p EST_DU_TYPE NOMBRE

Début algorithme
t PREND_LA_VALEUR 0
POUR i ALLANT_DE 1 A 10000
DEBUT_POUR
d PREND_LA_VALEUR 0
POUR j ALLANT_DE 1 A 20
DEBUT_POUR
p PREND_LA_VALEUR ALGOBOX_ALEA_ENT(0,1)
SI (p==0) ALORS
DEBUT_SI
d PREND_LA_VALEUR d+1
FIN_SI
FIN_POUR
SI (d==10) ALORS
DEBUT_SI
t PREND_LA_VALEUR t+1
FIN_SI
FIN_POUR
AFFICHER "La fréquence d'atteinte de t est :"
AFFICHERCALCUL t/10000
FIN_ALGORITHME
thomas4085
thomas4085
Posté le 16 déc. 2018

pour régler les problèmes de boucles, il faut juste changer l'indentation de tes lignes.

Globalement, tu rentres dans ta première boucle for avec

for i in range(1,10000):

ensuite tout ce qui vient après doit être indenté, de base, une fois (jusqu'à l'équivalent de ton "FIN_POUR". Après, si dans cette première boucle tu as une autre boucle for, le contenu de cette deuxième boucle for sera indenté une fois par rapport à 

for j in range...

et donc, au total, deux fois par rapport à l'initialisation de ta première boucle for.

 

Un exemple, qui est toujours plus parlant que du blala :

POUR i ALLANT DE 1 A 10

DEBUT POUR

a PREND LA VALEUR 2

POUR J ALLANT DE 1 A 20:

DEBUT POUR

b PREND LA VALEUR a+2

FIN POUR

FIN POUR

AFFICHER b

Donnera, en python :

for i in range(1,10):

|   a = 2

|   for j in range(1,20):

|   |   b = a+2

print(b)

Voilà voilà, encore une fois n'hésite pas à m'envoyer ton code une fois que t'as résolu ce problème, et surtout demande moi si tu ne comprends toujours pas.


Ils ont besoin d'aide !

Il faut être inscrit pour aider

Crée un compte gratuit pour aider

Je m'inscrisOU

J'ai déjà un compte

Je me connecte