Comment traduire un algorithme sur Algobox
-
Cchilan dernière édition par Hind
Bonjour j'ai un devoir maison à faire pour la semaine prochaine je l'ai commencé
j'ai fait la question 1) a et b
pour 2) a ) j'ai rentré cet algorithmeon considère l'algorithme suivant
a prend la valeur 1
b prend la valeur 2
traitement
tant que b-a>0.01
m prend la valeur a+b/2
si m² a prend la valeur m
sinon
b prend la valeur m
fin du si
fin tant que
sortis afficher a , b
il faut traduire cet algorithme sur Algobox se que j'ai fait mais sa ne fonctionne pas
faire fonctionner cet algorithme: effectuer 4 itérations et noter les valeurs successives de a et de b
pour la question b) je pense pouvoir trouvé
et pour la question c) il faut donner le code de l'algorithme
qui est
1 V A R I A B L E S
2 a E S T _ D U _ T Y P E N O M B R E
3 b E S T _ D U _ T Y P E N O M B R E
4 m E S T _ D U _ T Y P E N O M B R E
5 D E B U T _ A L G O R I T H M E
6 T A N T _ Q U E ( ( b - a > 0 . 0 0 1 ) ) F A I R E
7 D E B U T _ T A N T _ Q U E
8 m P R E N D _ L A _ V A L E U R ( a + b ) / 2
9 S I ( p o w ( m , 2 ) < m + 1 ) A L O R S
1 0 D E B U T _ S I
1 1 a P R E N D _ L A _ V A L E U R m
1 2 F I N _ S I
1 3 S I N O N
1 4 D E B U T _ S I N O N
1 5 b P R E N D _ L A _ V A L E U R m
1 6 F I N _ S I N O N
1 7 F I N _ T A N T _ Q U E
1 8 A F F I C H E R a
1 9 A F F I C H E R b
2 0 F I N _ A L G O R I T H M E
Le problème c'est que des que je fait lancer le code de l'algorithme sa me marque
Algorithme lancé
00
Algorithme terminé
je ne comprends pas pourquoi sa ne marche pas et ce que quel qu'un peut me dire ou j'ai fait une erreur sil vous plait
-
Bonjour,
Visiblement, tu as oublié de donner les valeurs initiales de a et b (a=1 et b=2)
(Par défaut, Algobox a pris a=0 et b=0)
-
Cchilan dernière édition par
Bonjour
donc sa veut dire que je dois remplacer a et b par 1 et 2 ?
-
Tu dois bien voir, en relisant ton algorithme, que le programme ne peut pas deviner que a=1 et b=2
A la ligne 6, avant TANT QUE..., tu dois écrire :
a prend la valeur 1
b prend la valeur 2
-
Cchilan dernière édition par
à oui je n'avais pas vus merci je viens de le tester et il me marque
Algorithme lancé
1.61718751.6181641
Algorithme terminé
-
Tu devrais améliorer l'affichage en utilisant du texte et faire écrire
a=...
b=...Cela éviterait que les valeurs soient collées et guère lisibles.
-
Cchilan dernière édition par
d'accord merci j'ai un tableau et je dois effectuer 4 itérations successive pour les valeurs a et b et ce que vous pouvez m'expliquer comment procéder ?
-
Une question d'abord :
Dans l'énoncé, tu as oublié quelque chose.
Tu as écrit :
Citation
si m² a prend la valeur m?
Merci de préciser.Quand tu exécutes normalement le programme, ce sont les dernières valeurs de a et b qui s'affichent.
Si tu veux voir les valeurs intermédiaires de a et b sans rien changer au programme, avec Algobox, exécute le programme en mode pas à pas.
-
Cchilan dernière édition par
Merci oui en effet j'ai oublié quel que chose
j'ai du faire une erreur
l'algorithme c'est saA prend la valeur 1
B prend la valeur 2
traitement
tan que b-a>0.001
m prend la valeur (a+b)/2
si m²<m+1
alors
a prend la valeur de m
sinon
b prend la valeur de m
fin du si
fin du tant que
sorties
afficher a.b
donc s'y je veut rien changer au programme il faut que je fasse mode pas à pas il faut faire comment ?
-
Cchilan dernière édition par
à oui j'ai trouvé le mode pas à pas
et sa me donne#1 Nombres/chaines (ligne 6) -> a:1 | b:0 | m:0
#2 Nombres/chaines (ligne 7) -> a:1 | b:2 | m:0
Entrée dans le bloc DEBUT_TANT_QUE/FIN_TANT_QUE : condition vérifiée (ligne 9)
-
D'accord.
Il y a bien correspondance entre l'énoncé et ton algorithme.Pour se mettre en mode pas à pas, c'est tout simple :
Tu cliques sur "tester l'algorithme"
Tu cliques sur la case à cocher**"pas à pas"**
Tu cliques sur "Lancer l'algorithme"
Ainsi, l'exécution se fera en mode "pas à pas"
-
Cchilan dernière édition par
merci
-
Cchilan dernière édition par
#1 Nombres/chaines (ligne 6) -> a:1 | b:0 | m:0
#2 Nombres/chaines (ligne 7) -> a:1 | b:2 | m:0
Entrée dans le bloc DEBUT_TANT_QUE/FIN_TANT_QUE : condition vérifiée (ligne 9)
#3 Nombres/chaines (ligne 10) -> a:1 | b:2 | m:1.5
La condition est vérifiée (ligne 11)
Entrée dans le bloc DEBUT_SI/FIN_SI (ligne 12)
#4 Nombres/chaines (ligne 13) -> a:1.5 | b:2 | m:1.5
Sortie du bloc DEBUT_SI/FIN_SI (ligne 14)
Sortie du bloc DEBUT_TANT_QUE/FIN_TANT_QUE (ligne 19)sa me donne tout sa
-
nos réponses se sont croisées.
En mode pas à pas, il faut que tu cliques continuellement sur "Continuer" pour que le programme s'exécute et le voir fonctionner : c'est le but !
-
Cchilan dernière édition par
oui elle se sont croisées.
merci donc c'est pour voir si mon algorithme fonctionne
il fonctionne mais
comment je peut faire pour remplir le tableau il me demande 4 itération je ne sais pas se que sait enfaite avec le mode pas à pas je penser noter les nombres dans le tableau mais je ne suis pas sur que sa sois sa qu'il faut noter ou même que sa me serve mais c'est utile sa permet de le voir fonctionner
-
Tu remplis ton tableau avec les valeurs successives de a et b données par le programme en mode pas à pas.
-
Cchilan dernière édition par
d'accord je n'étais pas sur merci beaucoup
j'ai encore une dernière question il y a beaucoup de valeur comment savoir les quelles prendre tant donner que mon tableau ne contient que 8 cases à remplir 4 cases à remplir pour chaque valeur de A et B comment savoir les quels prendre
-
Beaucoup de valeurs ?
Je ne trouve pas.
Avant les dernières affichées, j'ai l'impression qu'il n'y a successivement que 4 valeurs distinctes pour a et 3 pour b.
-
Cchilan dernière édition par
#1 Nombres/chaines (ligne 6) -> a:1 | b:0 | m:0
#2 Nombres/chaines (ligne 7) -> a:1 | b:2 | m:0
Entrée dans le bloc DEBUT_TANT_QUE/FIN_TANT_QUE : condition vérifiée (ligne 9)
#3 Nombres/chaines (ligne 10) -> a:1 | b:2 | m:1.5
La condition est vérifiée (ligne 11)
Entrée dans le bloc DEBUT_SI/FIN_SI (ligne 12)
#4 Nombres/chaines (ligne 13) -> a:1.5 | b:2 | m:1.5
Sortie du bloc DEBUT_SI/FIN_SI (ligne 14)
Sortie du bloc DEBUT_TANT_QUE/FIN_TANT_QUE (ligne 19)
Entrée dans le bloc DEBUT_TANT_QUE/FIN_TANT_QUE : condition vérifiée (ligne 9)
#5 Nombres/chaines (ligne 10) -> a:1.5 | b:2 | m:1.75
La condition n'est pas vérifiée (ligne 11)
Entrée dans le bloc DEBUT_SINON/FIN_SINON (ligne 16)
#6 Nombres/chaines (ligne 17) -> a:1.5 | b:1.75 | m:1.75
Sortie du bloc DEBUT_SINON/FIN_SINON (ligne 18)
Sortie du bloc DEBUT_TANT_QUE/FIN_TANT_QUE (ligne 19)
Entrée dans le bloc DEBUT_TANT_QUE/FIN_TANT_QUE : condition vérifiée (ligne 9)
#7 Nombres/chaines (ligne 10) -> a:1.5 | b:1.75 | m:1.625
La condition n'est pas vérifiée (ligne 11)
Entrée dans le bloc DEBUT_SINON/FIN_SINON (ligne 16)
#8 Nombres/chaines (ligne 17) -> a:1.5 | b:1.625 | m:1.625
Sortie du bloc DEBUT_SINON/FIN_SINON (ligne 18)
Sortie du bloc DEBUT_TANT_QUE/FIN_TANT_QUE (ligne 19)
Entrée dans le bloc DEBUT_TANT_QUE/FIN_TANT_QUE : condition vérifiée (ligne 9)
#9 Nombres/chaines (ligne 10) -> a:1.5 | b:1.625 | m:1.5625
La condition est vérifiée (ligne 11)
Entrée dans le bloc DEBUT_SI/FIN_SI (ligne 12)
#10 Nombres/chaines (ligne 13) -> a:1.5625 | b:1.625 | m:1.5625
Sortie du bloc DEBUT_SI/FIN_SI (ligne 14)
Sortie du bloc DEBUT_TANT_QUE/FIN_TANT_QUE (ligne 19)
Entrée dans le bloc DEBUT_TANT_QUE/FIN_TANT_QUE : condition vérifiée (ligne 9)
#11 Nombres/chaines (ligne 10) -> a:1.5625 | b:1.625 | m:1.59375
La condition est vérifiée (ligne 11)
Entrée dans le bloc DEBUT_SI/FIN_SI (ligne 12)
#12 Nombres/chaines (ligne 13) -> a:1.59375 | b:1.625 | m:1.59375
Sortie du bloc DEBUT_SI/FIN_SI (ligne 14)
Sortie du bloc DEBUT_TANT_QUE/FIN_TANT_QUE (ligne 19)
Entrée dans le bloc DEBUT_TANT_QUE/FIN_TANT_QUE : condition vérifiée (ligne 9)
#13 Nombres/chaines (ligne 10) -> a:1.59375 | b:1.625 | m:1.609375
La condition est vérifiée (ligne 11)
Entrée dans le bloc DEBUT_SI/FIN_SI (ligne 12)
#14 Nombres/chaines (ligne 13) -> a:1.609375 | b:1.625 | m:1.609375
Sortie du bloc DEBUT_SI/FIN_SI (ligne 14)
Sortie du bloc DEBUT_TANT_QUE/FIN_TANT_QUE (ligne 19)
Entrée dans le bloc DEBUT_TANT_QUE/FIN_TANT_QUE : condition vérifiée (ligne 9)
#15 Nombres/chaines (ligne 10) -> a:1.609375 | b:1.625 | m:1.6171875
La condition est vérifiée (ligne 11)
Entrée dans le bloc DEBUT_SI/FIN_SI (ligne 12)
#16 Nombres/chaines (ligne 13) -> a:1.6171875 | b:1.625 | m:1.6171875
Sortie du bloc DEBUT_SI/FIN_SI (ligne 14)
Sortie du bloc DEBUT_TANT_QUE/FIN_TANT_QUE (ligne 19)
Entrée dans le bloc DEBUT_TANT_QUE/FIN_TANT_QUE : condition vérifiée (ligne 9)
#17 Nombres/chaines (ligne 10) -> a:1.6171875 | b:1.625 | m:1.6210938
La condition n'est pas vérifiée (ligne 11)
Entrée dans le bloc DEBUT_SINON/FIN_SINON (ligne 16)
#18 Nombres/chaines (ligne 17) -> a:1.6171875 | b:1.6210938 | m:1.6210938
Sortie du bloc DEBUT_SINON/FIN_SINON (ligne 18)
Sortie du bloc DEBUT_TANT_QUE/FIN_TANT_QUE (ligne 19)
Entrée dans le bloc DEBUT_TANT_QUE/FIN_TANT_QUE : condition vérifiée (ligne 9)
#19 Nombres/chaines (ligne 10) -> a:1.6171875 | b:1.6210938 | m:1.6191406oui enfaite a:1.6171875 | b:1.6210938 par exemple c'est sa que je dois mettre dans mon tableau mais le problème c'est que il y a beaucoup de paires comme sa :frowning2:
-
Dur, dur, de lire !
Tu dois faire le tableau en donnant les valeurs de a et b obtenues en faisant 4 itérations ( c'est à dire en faisant "tourner" la boucle (dans le Tant que) 4 fois.
Vérifie car la lecture est très difficile !
La 1ere itération semble donner a=1.5 et b=2
La 2eme itération semble donner a=1.5 et b=1.75
La 3eme itération semble donner a=1.5 et b=1.625
La 4eme itération semble donner a=1.5625 et b=1.625
-
Cchilan dernière édition par
oui je sais c'est dur de le lire désolé :rolling_eyes:
oui en effet j'ai vérifié et oui sa correspond bien au 4 itération merci beaucoup de m'avoir aidé pour ces quelques questions car je bloqué vraiment dessus merci
-
De rien.
Bon algorithme!