Page 1 of 1
Manque d'une instruction de début ou de fin de bloc
Posted:
07 Dec 2013, 23:31
by Wenneguen
Bonjour,
je ne comprends pas pourquoi j'obtiens cette erreur avec ce code :
- Code: Select all
Defin ordre(k,n)=
Prgm
Local w
1 -> w
If test(k,n)=0
Then errCode erreur
Else
While remain(k^w,n) <>1
w+1 ->w
EndWhile
EndIf
Disp w
EndPrgm
Voyez-vous ce qui ne va pas ?
Merci de votre aide
Re: Manque d'une instruction de début ou de fin de bloc
Posted:
07 Dec 2013, 23:51
by Levak
Je dirais que ta syntaxe de if / then est mauvaise, mais c'est peut être à cause du copier/coller.
Voici la bonne :
If condition Then : commande : Endif
Ce que tu as écris :
If condition : Then commande : Endif
Ici, le ":" est le séparateur d'instruction. Il est équivalent à un retour à la ligne.
Re: Manque d'une instruction de début ou de fin de bloc
Posted:
08 Dec 2013, 08:38
by AnToX98
Visiblement, tu viens du TI Basic z80 : le "Then", tu dois le mettre sur la même ligne que ta condition, et pas en dessous.
Re: Manque d'une instruction de début ou de fin de bloc
Posted:
08 Dec 2013, 10:01
by Wenneguen
Merci pour vos réponses, drôle d'impératif !
J'ai corrigé l'alignement du then, ainsi que d'autres trucs :
- Code: Select all
Define ordre(k,n)=
Prgm
:Local w
:w:=1
:If test(k,n)=0 Then Return "erreur"
:Else
:While remain(k^(w),n)≠1
:w:=w+1
:EndWhile
:EndIf
:Disp w
:EndPrgm
mais maintenant j'ai l'erreur " Syntaxe "
Re: Manque d'une instruction de début ou de fin de bloc
Posted:
08 Dec 2013, 12:46
by Levak
Wenneguen wrote:J'ai corrigé l'alignement du then, ainsi que d'autres trucs
mais maintenant j'ai l'erreur " Syntaxe "
non, tu n'as pas corrigé, relis mon message et les positions des ":".
Là tu as écris If condition Then commade : EndIf
Re: Manque d'une instruction de début ou de fin de bloc
Posted:
08 Dec 2013, 14:00
by Wenneguen
Ah oui exact, autant pour moi je n'avais pas bien lu.
Voilà où j'en suis :
- Code: Select all
Define ordre(k,n)=
Prgm
:Local w
:w:=1
:If test(k,n)=0 Then
:Return "erreur"
:Else
:While remain(k^(w),n)≠1
:w:=w+1
:EndWhile
:EndIf
Quand j'appelle par exemple ordre(2,10), j'ai l'erreur " référence de programme invalide "
Re: Manque d'une instruction de début ou de fin de bloc
Posted:
08 Dec 2013, 19:20
by Bisam
Tu utilises le programme "test" que tu as sans doute créé... mais si celui-ci est un programme et non une fonction, tu ne peux pas l'utiliser comme tu l'as fait.
Re: Manque d'une instruction de début ou de fin de bloc
Posted:
09 Dec 2013, 12:36
by Wenneguen
En effet c'était bien ça le problème, merci