Page 1 of 1

Manque d'une instruction de début ou de fin de bloc

Unread postPosted: 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

Unread postPosted: 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

Unread postPosted: 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

Unread postPosted: 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

Unread postPosted: 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

Unread postPosted: 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 " :o

Re: Manque d'une instruction de début ou de fin de bloc

Unread postPosted: 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

Unread postPosted: 09 Dec 2013, 12:36
by Wenneguen
En effet c'était bien ça le problème, merci :D