​ ​ ​ ​ Problème avec la commande If...then\elseif...then\else\endif - Page 2
Page 2 of 2 FirstFirst 1 2
Results 11 to 16 of 16

Thread: Problème avec la commande If...then\elseif...then\else\endif

  1. #11
    New Member
    Join Date
    Jan 2014
    Location
    Vaujours
    Posts
    12

    Default

    Bonjour,
    Bigre! Ma façon de m'exprimer ne doit vous convenir, pour récolter (de telles réponses!)une telle réponse! (#10)
    Promis, juré, je ne sors plus des sentiers battus de ce forum...
    Je redeviens un toutou docile qui ne posera qu'une seule question à la fois.
    Sincères salutations.
    Last edited by Couqui93; 07-09-2017 at 19:08. Reason: rectification 1ère ligne

  2. #12
    Senior Member
    Join Date
    Jan 2010
    Location
    34 France
    Posts
    3,845

    Default

    Quote Originally Posted by Couqui93 View Post
    Bonjour,
    Bigre! Ma façon de m'exprimer ne doit vous convenir, pour récolter de telles réponses!
    Promis, juré, je ne sors plus des sentiers battus de ce forum...
    Je redeviens un toutou docile qui ne posera qu'une seule question à la fois.
    Sincères salutations.
    Comment ça? Quels sentiers battus ?

    Je vous explique que ce vous voyez comme particularité, n'en est pas une pour moi et je vous explique pourquoi.
    Ensuite vous me demandez de vous faire une liste de "particularités" de programmation, alors que nous avons une divergence sur cette appellation.
    Je suis désolé mais je n'ai rien recensé dans ce domaine, et n'ai pas le loisir de parcourir les 18000 discussions du forum pour dénicher ces supposées particularités.
    Mais peut être avez vous le temps et le loisir de vous y atteler.
    Et désolé si mes réponses ne vous conviennent pas; j'éviterai à l'avenir de vous stresser!

    Enfin, je vous ferai remarquer que votre toute première interrogation trouvait sa réponse par une lecture attentive du manuel, auquel je ne me suis pas contenté de vous renvoyer.
    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème . (Les Shadoks)

  3. #13
    New Member
    Join Date
    Jan 2014
    Location
    Vaujours
    Posts
    12

    Default

    Bonsoir,
    Désolé chers followers, mais le feuilleton s'arrête ici...
    Cordialement.

  4. #14
    Senior Member
    Join Date
    Sep 2011
    Location
    Montpellier (FRANCE)
    Posts
    2,696

    Default

    Quote Originally Posted by Couqui93 View Post
    Bonjour,
    Bigre! Ma façon de m'exprimer ne doit vous convenir, pour récolter (de telles réponses!)une telle réponse! (#10)
    Promis, juré, je ne sors plus des sentiers battus de ce forum...
    Je redeviens un toutou docile qui ne posera qu'une seule question à la fois.
    Sincères salutations.
    La réponse de PieM ne me semble nullement offensante.
    Il est effectivement difficile d'arbitrer entre "astuce" ou "particularité" et usage "normal" ou "conforme à la doc".

    Le fait est que les Picaxes utilisent un BASIC spécifique, en particulier au niveau de l'évaluation des expressions.
    Dans le cas cité, l'expression est normale et conforme à la doc Picaxe, mais "particulière" pour quelqu'un qui viendrait d'un autre BASIC, ce qui semble être votre cas.

    Sur le fond, et s'agissant d'un BASIC interprété (faut-il expliquer ce terme ?) la comparaison de deux formulations d'une même expression peut conduire à différents constats :
    - Constat N°1) les deux formulations sont strictement identiques. En fait, le pré-compilateur fourni le même P-code.
    - Constat N°2) une des deux formulations utilise moins de mémoire que l'autre
    - Constat N°3) une des deux formulations s'exécute plus rapidement

    Dans de nombreuses situations, (notamment quand le code comprends des PAUSEs) la vitesse d'exécution n'est pas critique. Mais un Picaxe étant environ 1000 fois plus lent que le PIC qui le supporte, cet aspect peut prendre une grande importance.

    Tant que le P-code tient dans la mémoire, il est en général inutile de chercher à optimiser la taille du p-code. Par contre, dès que le programme devient un peu complexe, il est assez fréquent de sortir le chausse-pieds pour faire rentrer tout ça dans le Picaxe choisi...

    La taille du programme source n'a strictement aucune importance dans tous les cas. Par contre, IMHO, sa lisibilité est fondamentale pour différentes raisons :
    - si vous souhaitez obtenir de l'aide, plus votre programme sera lisible, plus vous obtiendrez de conseils pertinents...
    - si vous revenez sur votre code des mois ou des années plus tard, vous constaterez que ce qui vous semblait évident lors de l'écriture l'est beaucoup moins plus tard...
    - l'expérience montre qu'un code très lisible est très souvent aussi très performant (en termes de taille comme de vitesse)
    - pour des exemples spécialement parlants (et même si vous ne souhaitez plus lire les excellents conseils de notre ami PieM) recherchez sur le forum anglais les posts de Hippy : il y a effectivement de véritables "astuces" parfaitement documentées mais pas du tout triviales ! Bien souvent, il faut relire la doc trois fois pour comprendre comment ses formulations fonctionnent, mais le fait est que c'est souvent extrêmement brillant.

    A titre d'exemple, une de ses toutes dernières propositions http://www.picaxeforum.co.uk/showthr...-output-timing
    Dans ce cas extrêmement spécifique, l'objectif n'est pas d'optimiser la vitesse, encore moins la taille du code, mais de stabiliser la vitesse d'exécution !
    Et si on lit bien, on découvre une véritable astuce de programmation (pour le coup non documentée...)la vitesse d'exécution d'une commande dépends de l'endroit où elle se situe dans le programme !
    Très peu en fait et donc négligeable la plupart du temps, ça peut devenir fondamental pour une application "time critical".

    Toujours dans les publications récentes, voir http://www.picaxeforum.co.uk/showthr...or-light/page5 post #45 ainsi que les réactions de lbenson et newplumber qui suivent...
    Je vous préviens : c'est du lourd. Mais si vous cherchez des "astuces", il y a de la matière...

    Maintenant, libre à vous de participer au forum ou pas. Sachez que vous serez toujours le bienvenu.
    Comme dans tout espace de convivialité, chacun peut avoir ses humeurs. Mais avec un peu de souplesse, les échanges sont la plupart du temps très pertinents et souvent aussi plutôt divertissants, voire humoristiques...
    Last edited by BESQUEUT; 09-09-2017 at 08:31.
    There are 10 types of people in the world: those who understand binary, and those who don't.

  5. #15
    Senior Member
    Join Date
    Sep 2011
    Location
    Montpellier (FRANCE)
    Posts
    2,696

    Default

    Quote Originally Posted by Couqui93 View Post
    Bonjour,
    J'espère ne pas vous froisser, M.PieM, en vous disant ceci:
    Ce n'est pas si évident que cela...
    En effet, si l'on regarde le dernier code que j'ai écrit, il y a 6 retours à la ligne, alors que seulement 4 ":" ont été suffisants dans le code précédent (5 pour le votre).
    Cordialement
    Belle démonstration des effets de la pré-compilation : toutes ces formulations produisent très probablement le même p-code, la preuve en étant que la taille (du p-code) indiquée par PE6 est la même !
    PE6 interprête les : et les retours à la ligne de la même façon.
    De plus, dans le cas particulier du IF THEN, il est tolérant sur la présence ou pas des :
    IF THEN GOTO et IF THEN : GOTO sont acceptés et conduisent au même p-code.

    Dès lors, peu importe le nombre de : et/ou de retours à la ligne. D'un point de vue Picaxe, c'est strictement la même chose.
    Par contre, pour le lecteur, j'ai tendance à préférer écrire sur plusieurs lignes, sauf dans le cas où il y a plusieurs expressions similaires successives, genre :
    if bit1=0 then gosub TOTO else gosub TATA
    if bit2=0 then gosub TITI else gosub TUTU
    if bit3=0 then gosub TRUC else gosub MACHIN
    There are 10 types of people in the world: those who understand binary, and those who don't.

  6. #16
    New Member
    Join Date
    Jan 2014
    Location
    Vaujours
    Posts
    12

    Default

    Bonjour,
    En refaisant un tour dans le forum, je suis étonné, puis finalement agréablement surpris:
    Je constate que mon échange (un peu houleux à la fin!) avec M.PieM a suscité, malgré tout, une longue intervention de votre part M.BESQUEUT.

    Je vous remercie d'avoir pris le temps d'écrire ce long paragraphe, en partie, pour ménager la chèvre et le chou.

    Je reconnais que j'ai réagi d'une façon peu réfléchie en répondant au message #10.
    Veuillez m'en excuser M.PieM.

    Merci encore de toutes ces informations et pistes de recherche.
    Cordialement.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •