Fonction avec algobox
-
CCANAILLE dernière édition par
Bonsoir,
Pouvez vous me dire quel est le rôle de ce programme ?
1 VARIABLES
2 h EST_DU_TYPE NOMBRE
3 x EST_DU_TYPE NOMBRE
4 y EST_DU_TYPE NOMBRE
5 Max EST_DU_TYPE NOMBRE
6 c EST_DU_TYPE NOMBRE
7 DEBUT _ALGORITHME
8 LIRE h
9 Max PREND _LA_VALEUR 0
10 TANT_QUE (x<1) FAIRE
11 DEBUT _TANT QUE
12 x PREND _LA VALEUR x+h
13 y PREND _LA VALEUR x sqrt (1-pow (x,2))
14 SI (y>max) ALORS
15 DEBUT_SI
16 mAX PREND_LA_VALEUR y
17 c PREND_LA_VALEUR x
18 FIN SI
19 FIN_TAN_QUE
20 AFFICHER "c="
21 AFFICHER c
22 AFFICHER "Max="
23 AFFICHER Max
24 FIN_ALORITHMEMerci à celui qui pourra me guider (et par la suite
je dois faire l'étude théorique du problème résolu).C'est une première pour moi merci de votre compréhension.
-
Lleonel dernière édition par
vraiment bisard ton algo, il commence avec une boucle TANQUE(x<1)
Alors que le X n'a pas encore été lue.
-
Bonjour,
Non loenel , il n'y a pas de problème à ce niveau .
Par défaut , dans Algobox , la valeur initiale de la variable est 0 , donc ici ça va.Par contre , il y a un problème aux lignes 12-13
Si on teste l'algorithme avec h=0.3 , on finit par avoir une erreur de calcul ...
x prend les valeurs 0 , 0.3 , 0.6 sans difficulté. problème pour x=0.9 ( donc x< 1 )
le "Tant que " donne x =0.9+0.3=1.2 ( ligne 12 )
la ligne 13 fait calculer y avec la racine carrée d'un nombre négatif (!) d'où message d'erreur et programme bloqué...Il faudrait donc modifier ce programme en alternant les lignes 12 et 13 , mais il faudrait dans ce cas modifier aussi la valeur de c à afficher car ce n'est pas la valeur utile qui est affichée....
En bref , CANAILLE , le programme qui tu donnes a des défauts...
Si tu veux, malgrè tout , en comprendre l'idée , teste-le avec h=0.1 ( tu n'auras pas de message d'erreur et les résultats seront bons )
Bien entendu , te dire ce que fait le programme ne te permettrait pas d'en comprendre la logique .
Pense cependant qu'il s'agit de la fonction x→x1−x2x \to x\sqrt{1-x^2}x→x1−x2 et que Max veut dire "maximum".Pour comprendre , si tu as le programme en Algobox , fait le fonctionner pas à pas ( avec h=0.1 par exemple ) .
Sinon , toujours avec h=0.1 , tu peux aussi remplacer la machine et appliquer le programme à la main ...Si ça peut-être utile , je te donne quelques résultats
Pour h=0.1 , tu obtiens c=0.7 et Max=0.49989999
Pour h=0.01 , tu obtiens c=0.7 et Max=0.49998319
Pour h=0.001 , tu obtiens c=0.707 et Max=0.49999998Bon exercice.
-
CCANAILLE dernière édition par
bonsoir et merci d'avoir étudier cet excercice,
je vais poursuivre bonne soirée.