Comment traduire un algorithme sur Algobox


  • C

    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 algorithme

    on 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


  • mtschoon

    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)


  • C

    Bonjour
    donc sa veut dire que je dois remplacer a et b par 1 et 2 ?


  • mtschoon

    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


  • C

    à oui je n'avais pas vus merci je viens de le tester et il me marque
    Algorithme lancé
    1.61718751.6181641
    Algorithme terminé


  • mtschoon

    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.


  • C

    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 ?


  • mtschoon

    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.


  • C

    Merci oui en effet j'ai oublié quel que chose
    j'ai du faire une erreur
    l'algorithme c'est sa

    A 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 ?


  • C

    à 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)


  • mtschoon

    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"


  • C

    merci


  • C

    #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


  • mtschoon

    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 !


  • C

    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


  • mtschoon

    Tu remplis ton tableau avec les valeurs successives de a et b données par le programme en mode pas à pas.


  • C

    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


  • mtschoon

    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.


  • C

    #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.6191406

    oui 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:


  • mtschoon

    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


  • C

    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 😄


  • mtschoon

    De rien.

    Bon algorithme!


Se connecter pour répondre