Erreur avec highest[j], j paramètre entier positif

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #153473 quote
    patrick144
    Participant
    New

    Bonjour !

    Je calcule une durée que j’appelle dur qui est un entier positif. J’écris

    dh=highest[dur](high)
    db=lowest[dur](low)

    et jusque là tout va bien ! J’ai vérifié en faisant “Valider le programme” sans recevoir de message d’erreur.

    Mais quand je poursuis avec

    if dur<>0 and dh<=ph and db>=pb then
    pbfort=pb
    endif

    je reçois le message : Erreur, un paramètre de type entier positif est attendu avec highest.

    Je ne comprends pas pourquoi il accepte de calculer dh quand je ne l’utilise pas ailleurs, mais pas si je veux en faire usage. D’ailleurs dans un autre indicateur, j’utilise highest de cette façon, avec un paramètre entier positif, et je peux l’utiliser. Je ne vois pas de différence entre mes deux cas… J’aimerais beaucoup faire appel à vos lumières sur le codage de highest[j] et comprendre qqch qui me dépasse…

    Comprendre serait formidable, mais comment avancer ? Si je demeure coincé de cette façon, il me semble que la seule solution est une boucle de type while high<ph. C’était justement pour éviter une boucle et le temps de calcul correspondant que je voulais coder comme ci-dessus…

    Merci de votre aide !

    Patrick

    PS. La dernière fois je me suis fait tirer les oreilles pour un titre de post pas assez explicite. Si c’est encore le cas cette fois-ci, je veux bien qq indications de titre meilleur…

    #153515 quote
    Daniele Maddaluno
    Participant
    Master

    Avez-vous essayé d’entourer vos deux lignes comme suit?

    if dur > 0 then
       dh=highest[dur](high)
       db=lowest[dur](low)
    endif

    Ne sachant pas exactement comment prt compile les programmes, je ne peux pas répondre à l’autre question de savoir pourquoi le premier est validé et le second non.
    Probablement ne pas utiliser la variable rend les vérifications moins strictes sur les lignes impliquant cette variable.

    #153571 quote
    patrick144
    Participant
    New

    Bonjour Daniele !

    Et merci d’avoir pris le temps de m’aider. Je suis d’accord sur la compilation, même si je n’y connais pas grand chose.

    Sur le code lui-même, j’avais défini dur auparavant par dur=1+round(expression positive), donc dur était obligatoirement un entier positif (c’était une durée en nb de barres). Je vais quand même essayer d’ajouter la condition que vous me proposez : on ne sait jamais puisque le code me confronte à qqch que je considère encore comme illogique… (ce qui veut dire que je ne comprends pas…).

    #153641 quote
    Nicolas
    Keymaster
    Master

    J’ai remarqué un petit problème plusieurs fois avec ce type d’erreur en v11, je vais alerter qui de droit. Même si l’entier est positif, l’erreur apparaît.

    Je corrige avec :

    dh=highest[max(1,dur)](high)
    db=lowest[max(1,dur)](low)
    #153656 quote
    patrick144
    Participant
    New

    Grand merci !

    Puisqu’on y est, j’ai aussi remarqué que MOD ne se comporte pas comme la fonction mathématique modulo. Pourquoi ne pas le signaler aussi… ça fait pas propre. Pour ma part, je me suis contenté de contourner le pb.

    Merci du soutien. Je vois que je n’ai pas toujours la berlue quand je vois des erreurs…

Viewing 5 posts - 1 through 5 (of 5 total)
  • You must be logged in to reply to this topic.

Erreur avec highest[j], j paramètre entier positif


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
patrick144 @patrick144 Participant
Summary

This topic contains 4 replies,
has 3 voices, and was last updated by patrick144
5 years, 2 months ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 12/12/2020
Status: Active
Attachments: No files
Logo Logo
Loading...