Bonjour,
J'ai un exercice de maths à faire avec un algorithme à programmer sur AlgoBox, mais un message d'erreur ***L'algorithme contient une erreur : impossible de le lancer***
***Vérifiez la syntaxe des affectations et des conditions***
Pourriez vous me dire ce qu'il ne va pas dans mon algorithme?
Merci pour votre aide!
Bonjour,
4x connait pas.
si tu veux multiplier 4 par x tu écris 4*x
pareil pour 4x*x qui doit être écrit 4*x*x
(la multiplication implicite n'existe pas)
L'erreur de syntaxe est bien celle indiquée.
Sans présumer de l'exactitude de l'algo, le programme suivant se lance sans erreur :
VARIABLES
N EST_DU_TYPE NOMBRE
x EST_DU_TYPE NOMBRE
y EST_DU_TYPE NOMBRE
i EST_DU_TYPE NOMBRE
u EST_DU_TYPE NOMBRE
aire EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
LIRE N
N PREND_LA_VALEUR 10000
u PREND_LA_VALEUR 0
POUR i ALLANT_DE 0 A N
DEBUT_POUR
x PREND_LA_VALEUR random()
y PREND_LA_VALEUR random()
SI (y<=4*x-4*x*x) ALORS
DEBUT_SI
u PREND_LA_VALEUR u+1
TRACER_POINT (x,y)
FIN_SI
FIN_POUR
aire PREND_LA_VALEUR u/N
AFFICHER aire
FIN_ALGORITHME
Ceci dit, je ne vois pas à quoi sert l'instruction : LIRE N
Si elle est directement suivie par : N PREND_LA_VALEUR 10000
Oui c'est vrai vous avez raison je vais la retirer mais pensez vous qu'il y aurait un autre problème dans l'algorithme?
ben je sais pas
tu dois avoir une saleté (chiure de mouche) dans tes lignes...
en mettant très exactement :
1 VARIABLES
2 N EST_DU_TYPE NOMBRE
3 x EST_DU_TYPE NOMBRE
4 y EST_DU_TYPE NOMBRE
5 i EST_DU_TYPE NOMBRE
6 u EST_DU_TYPE NOMBRE
7 aire EST_DU_TYPE NOMBRE
8 DEBUT_ALGORITHME
9 LIRE N
10 N PREND_LA_VALEUR 10000
11 u PREND_LA_VALEUR 0
12 POUR i ALLANT_DE 0 A N
13 DEBUT_POUR
14 x PREND_LA_VALEUR random()
15 y PREND_LA_VALEUR random()
16 SI ((y<=4*x-4*x*x)) ALORS
17 DEBUT_SI
18 u PREND_LA_VALEUR u+1
19 TRACER_POINT (x,y)
20 FIN_SI
21 FIN_POUR
22 aire PREND_LA_VALEUR u/N
23 AFFICHER aire
24 FIN_ALGORITHME
Bon, le temps de tout saisir, et le coup du LIRE suivi d'affectation avait déjà été discuté
et J-P avait même donné l'algo copie-collable
Dans la suite de l'exercice je bloque sur cette question:
Soit a et b deux nb réels tels que -5a<b
5
Comment doit-on modifier la valeur prise par x pour que ce nombre soit choisi au hasard dans l'intervalle [a;b] et non dans l'intervalle [0;1]?
une façon simple est de transformer [0; 1] en [a; b] par une fonction affine :
a + (b-a)*random()
(f(x) = a + (b-a)x est la fonction affine telle que f(0) = a et f(1) = b)
Pouvez vous me réexpliquer s'il vous plait? Je n'ai pas bien compris comment on passe de la fonction à la formule a + (b-a)*random()
???
il n'y a rien de plus à expliquer
tu pars de l'original où x = random() et tu veux obtenir à la place f(x) donc tu remplaces x par random() dans cette fonction
peut être que pour éviter de faire une salade de x j'aurais dû te parler d'une fonction de t : f(t) = a + (b-a)*t
dans laquelle tu remplaces t par random() pour avoir x = f(random()) ?
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :