FOR … NEXT

Viewing 4 posts - 1 through 4 (of 4 total)
  • #253214

    Bonjour
    J’ai du mal à comprendre le fonctionnement de NEXT

    Tous les xPi et yPi ont déjà été définis dans l’algo par:
    //—– Peak storage
    $xP[PeakCount]= PeakBar
    $yP[PeakCount]= PeakVal )
    //
    ……….
    //—– Calculations between the first peak and the nth
    FOR j = 2 TO PeakCount
    xPI = $xP[j]
    yPI = $yP[j]
    PeakSlope = ROUND((yPI – yP1) / (xPI – xP1),2)
    DrawSegment(BarIndex[xPI], yPI, BarIndex[xP1], yP1) Coloured(“Orange”) Style(Line,2)
    xP2= $xP[2]
    yP2= $yP[2]
    NEXT
    DrawRay(BarIndex[xP2], yP2, BarIndex[xP1], yP1) Coloured(“Red”) Style(Line,2)

    et le Rayon s’affiche correctement sur le graph. (Les segments aussi)

    Si je code
    ………
    DrawSegment(BarIndex[xPI], yPI, BarIndex[xP1], yP1) Coloured(“Orange”) Style(Line,2)
    NEXT
    xP2= $xP[2]
    yP2= $yP[2]
    DrawRay(BarIndex[xP2], yP2, BarIndex[xP1], yP1) Coloured(“Red”) Style(Line,2)

    J’obtiens le message d’erreur “Paramètres de type entier positif attendu avec BarIndex[xP2]”
    Pourquoi  xP2 n’est-il plus défini en dehors de la boucle ?

    Merci d’avance. Cordialement.

    #253221

    Ajoutes : if PeakCount >= 2 then // avant la boucle For … Next

    2 users thanked author for this post.
    #253243

    Merci @LaMaille de ta contribution qui soulève la remarque suivante:
    Intuitivement j’avais découvert
    IF PeakCount > 1 THEN
    xP1 = $xP[1]
    yP1= $yP[1]
    ENDIF
    pour initialiser mon point de référence, ça me marchait pas autrement.
    Ta solution fonctionne parfaitement, mais mieux, çà marche aussi avec 1 !
    Donc après des tests je m’aperçois que pour récupérer  n  éléments d’un tableau complètement calculé, il est quand nécessaire de tester    IF  PeakCount > n-1   THEN
    Cela me parait étrange.
    Qu’en pensez-vous ?

    #253252

    e code a besoin de remplir le tableau avant de pouvoir l’exploiter/le lire… Cette condition (if PeakCount >= 2 then) évite de tester/lire des cases du tableau qui ne sont pas encore remplies… Cette condition, c’est comme si tu dis au code : Tant que la case 2 du tableau n’est pas rempli => ne fais rien.

Viewing 4 posts - 1 through 4 (of 4 total)

Create your free account now and post your request to benefit from the help of the community
Register or Login