Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Logigramme et représentation


Sujet :

Algorithmes et structures de données

  1. #1
    Membre actif
    Logigramme et représentation
    Bonjour,
    Sur Wikipedia on trouve ça:

    Mais si le traitement 1 (ou un autre) modifie les termes de la condition, cette représentation est-elle pertinente:
    Savoir pour comprendre et vice versa.

  2. #2
    Rédacteur/Modérateur

    Ton dessin évoque plus ou moins un comportement du type :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    TantQue  <condition>
        exécuter traitement1
    Fin TantQue
    Exécuter traitement2.


    Mais il faudrait supprimer le trait qui sort de traitement1 vers le bas.
    Après traitement1, on retourne systématiquement vers le losange qui symbolise le test 'Si <Condition>'.

    Un rectangle qui a 2 sorties, ça n'existe pas dans ce genre de représentation. Il faut un test qui dit quelle sortie emprunter.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  3. #3
    Membre actif
    Les lignes sont donc obligatoirement des branchements ?
    Et on ne peut pas représenter de lien entre une modification des termes d'une condition et cette condition ?
    Savoir pour comprendre et vice versa.

  4. #4
    Rédacteur/Modérateur

    J'ai l'impression que tu racontes un peu n'importe quoi, mais comme je ne pratique pas du tout ces logigrammes, je passe la main.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  5. #5
    Expert éminent sénior
    Bonjour

    cette représentation est-elle pertinente ?
    Non. Elle n'est pas pertinente, car tu n'as que 2 branchements possibles. Fabriquer une troisième voie n'a de sens que si tu pointes vers un troisième bloc de traitement.

    De plus, la condition est évaluée à une date donnée. Ce qui se passe avant ou après n'est pas pris en compte.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  6. #6
    Membre averti
    Bonjour,
    Non, si ta condition est modifiée par ton traitement, alors elle ne peut plus être affectée à la même représentation. Il s'agit donc d'un nouveau test...
    Windows 7 / Delphi Tokyo
    "Les choses ne changent pas. Change ta façon de les voir, cela suffit" Lao Tseu

  7. #7
    Membre actif
    @ Flodelarab et Galet:
    Vous êtes clairs, mais c'est quand même étonnant qu'on ne puisse pas relier une condition à une commande qui lui envoie du paramètre, en considérant qu'une condition a une sortie (à droite) et une entrée (à gauche).
    Donc la gauche et la droite d'une condition sont des sorties ? Et n'y a pas d'entrée autre que par le haut ?
    Savoir pour comprendre et vice versa.

  8. #8
    Membre régulier
    Citation Envoyé par valentin03 Voir le message
    @ Flodelarab et Galet:
    Vous êtes clairs, mais c'est quand même étonnant qu'on ne puisse pas relier une condition à une commande qui lui envoie du paramètre, en considérant qu'une condition a une sortie (à droite) et une entrée (à gauche).
    Donc la gauche et la droite d'une condition sont des sorties ? Et n'y a pas d'entrée autre que par le haut ?
    Ce n'est pas une question de pouvoir ou non, c'est une question de savoir quelle signification donner à ça. Tout va dépendre de ce que tu entends par «relier une condition à une commande qui lui envoie du paramètre», hormis le fait bien sûr de rajouter un lien dans un organigramme. Que signifie ce lien dans ton esprit ? Peut-être pourrais-tu nous donner un exemple de ce que tu penses pouvoir exprimer avec ça ?
    Est-ce que ça serait quelque chose du genre :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    calc_cond: condition = f(param1, param2, …)
    si condition alors
        modifier(param1, param2, …)
       aller en calc_cond
    sinon
       faire autre chose
    fin si


    Si c'est cela alors cela revient à faire une boucle tant que.
    Mais c'est peut-etre autre chose dans ton esprit ?

  9. #9
    Expert éminent sénior
    Citation Envoyé par valentin03 Voir le message
    Et n'y a pas d'entrée autre que par le haut ?

    • Ah bon ? Parce que, toi, tu lis un texte autrement que de haut en bas ? Le programme informatique, c'est pareil, et le logigramme qui en découle aussi. Du haut, vers le bas.
    • D'ailleurs, tu n'as pas indiqué le sens de circulation sur tes traits, ce qui enlève toute signification.
    • Il ne faut pas voir l'entrée comme une donnée unique mais comme un faisceau de données. Tu peux bien avoir un millier d'informations en entrée.



    relier une condition à une commande qui lui envoie du paramètre,
    Si une condition subit l'influence d'un paramètre, tout cela est déterminé avant le dessin que tu as posté. Ce sont les éléments précédents.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  10. #10
    Membre actif
    Par exemple conserver une valeur d'un premier passage
    ...prog Clic et re-clic
    Si flag=1 aller à [passer]
    ...prog prises de cotes xa, ya
    ...prog
    flag=1
    [passer]
    ...prog prise de cotes xb, yb

    Après n clics j'aurai les premières cotes et les dernières.
    Savoir pour comprendre et vice versa.

  11. #11
    Membre actif
    Suite du 15h17
    Si je fais ça, c'est compréhensible ?
    Et qu'est-ce qu'on comprend ?
    Savoir pour comprendre et vice versa.

  12. #12
    Expert éminent sénior
    Tu as essayé de rentrer dans une pièce par le mur et tu as écrasé ton petit nez.

    Un schéma valide serait celui-ci :
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  13. #13
    Membre averti
    Bonjour,
    Le but du logigramme est de formuler une méthode sans être sujet à interprétation. Si tu dois le compléter par une explication, c'est que la représentation n'est pas claire...donc que la compréhension n'est pas claire.

    Si tu n'arrives pas à schématiser une idée, c'est, soit qu'elle n'est pas claire, soit qu'elle est géniale au point de remettre en cause les bases. Il faut reconnaitre que c'est souvent le premier cas qui s'applique.

    Les règles ont donc 2 grands avantages :
    - faire remonter des incompréhensions (qui risquent de se transformer en problèmes ou en bug)
    - servir de communication avec d'autres programmeurs (pour partager une tâche ou simplement avoir de l'aide)

    Belle journée...
    Windows 7 / Delphi Tokyo
    "Les choses ne changent pas. Change ta façon de les voir, cela suffit" Lao Tseu

  14. #14
    Membre actif
    Ah Ok.
    Et est-ce que ça c'est valide ? (le petit rectangle est l'endroit ou la variable de test est modifiée)
    Savoir pour comprendre et vice versa.

  15. #15
    Expert éminent sénior
    Les graphes sont déformables. Dans la boucle, que tu mettes 1, 2 ou 3 blocs, à gauche en montant, ou à droite en descendant, c'est pareil. Tu pourrais même résumer tes 3 blocs en un. C'est comme les données évoquées précédemment : un bloc n'est pas 1 instruction, mais un ensemble d'instructions.

    Quand on voit ce dessin, on comprend qu'on sera prisonnier de la branche qui boucle, jusqu'à ce qu'on s'enfuit à droite. Et on s'enfuira à droite quand la condition sera remplie ( ou non remplie, si un "faux" est nécessaire ).
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  16. #16
    Membre régulier
    On appelle ça «une boucle tant que» …
    Et on le retrouve même sur la page wiki citée par le PO.

  17. #17
    Membre actif
    Citation Envoyé par WhiteCrow Voir le message
    On appelle ça «une boucle tant que» …
    Et on le retrouve même sur la page wiki citée par le PO.
    Ok ok, je n'aime pas trop les "Tan que...", mais je pense avoir compris.
    Savoir pour comprendre et vice versa.

  18. #18
    Expert éminent sénior
    Connais-tu le brainfuck ? C'est un langage de programmation qui a, en tout et pour tout, 8 instructions :
    • avancer dans la mémoire
    • reculer dans la mémoire
    • incrémenter la mémoire
    • décrémenter la mémoire
    • début de boucle
    • fin de boucle
    • entrée
    • sortie

    Et avec ces instructions, on pourrait refaire tous les logiciels du monde. Je rappelle cela pour montrer que la "boucle" sert de condition, de boucle "for", de boucle "tant que", etc. Tout ça, c'est pareil. Et il faut le comprendre.

    Tu dis ne pas aimer la boucle "tant que". Mais quand on écrit for (i=0;i<n;i++), c'est bien une boucle "tant que" avec une initialisation (i=0), une condition d'arrêt (i<n) qui est l'échappatoire de la boucle. Et un incrément (i++).

    Code brainfuck :Sélectionner tout -Visualiser dans une fenêtre à part
    ++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  19. #19
    Membre averti
    Citation Envoyé par valentin03 Voir le message
    Ok ok, je n'aime pas trop les "Tan que...", mais je pense avoir compris.
    ??? Curieuse réponse

    +1 pour BrainFuck. Enfin un candidat pour faire avancer ce langage plein d'avenir ...
    Windows 7 / Delphi Tokyo
    "Les choses ne changent pas. Change ta façon de les voir, cela suffit" Lao Tseu

  20. #20
    Membre actif
    Citation Envoyé par Galet Voir le message
    ??? Curieuse réponse .
    Pourquoi je n'aime pas les "Tant que"


    Méthode avec "If":
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    clic et re-clic
    Si flag =1 alors-->passer-->
    Lecture cote xa, ya
    -->Passer
    lecture xb, yb
    suite du prog
    ...
    prog...

    Méthode avec "Tant que":
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    clic et re-clic
    Tant que flag=0
       Lire xa,ya
       Flag =1
       Lire xb, yb
       Suite du prog
    ...
    prog...

    Où tu place le Fin tant que ?
    Savoir pour comprendre et vice versa.

###raw>template_hook.ano_emploi###