Page 1 of 1

erreur: etiquette

Unread postPosted: 19 Oct 2009, 17:24
by Mikaz
Bon voila, j'ai un gros probleme...

J'ai fais un programme de quizz mais le probleme c'est que lorsque j'ai fini de répondre aux questions, il m'affiche erreur etiquette et en + c'est pas le bon score :#tsss#:


bon à peut près a quoi ça ressemble :

Menu("titre", "choix 1",A,"choix 2",B,"choix3",C
Lbl A
disp "...."
(plein d'autres disps)
return
Goto D
Lbl B
0 sto S
disp "question"
disp "reponse1"(faux)
disp "reponse2"(faux)
disp "reponse3"(juste)
disp "reponse4"(faux)
disp "reponse0"(ne sais pas)
input "reponse:",R
If R=3
then
(S+1)stoS
end
If R=1 ou 2 ou 4
then
(S-0.5)stoS
end
If R=0
then
(S+0)stoS
end

disp "question"
disp "reponse1"(faux)
disp "reponse2"(juste)
disp "reponse3"(faux)
disp "reponse4"(faux)
disp "reponse0"(ne sais pas)
input "reponse:",R
If R=2
then
(S+1)stoS
end
If R=1 ou 3 ou 4
then
(S-0.5)stoS
end
If R=0
then
(S+0)stoS
end

disp "score:"
disp S
Goto G


alors quelqu'un peut m'aider ?

Re: erreur: etiquette

Unread postPosted: 19 Oct 2009, 18:11
by critor
L'erreur d'étiquette vient du "Goto G" en fin de programme.
Cette instruction dit au processeur de sauter à l'endroit du programme où il y a écrit "Lbl G".
Or ce n'est écrit nulle-part dans ton programme, d'où l'erreur...


Tu as plusieurs autres erreurs d'étiquette.

Le "Goto D" juste avant le "Lbl B" ne marchera pas car il n'y a aucun "Lbl D".
Donc le menu "choix 1" provoquera une erreur étiquette...

Le menu "choix 3" provoquera aussi une erreur étiquette, car il n'y a aucun "Lbl C" dans ton programme.


Bonne soirée et bon travail.

Re: erreur: etiquette

Unread postPosted: 19 Oct 2009, 18:17
by jacques
Ah, critor viens de poster ce que je voulais dire ! :):

J'ajouterai seulement que je te conseille de mettre ta TI en anglais, histoire d'avoir les "vrai" noms des fonctions et messages.

Re: erreur: etiquette

Unread postPosted: 19 Oct 2009, 18:19
by critor
jacques wrote:Ah, critor viens de poster ce que je voulais dire ! :):

J'ajouterai seulement que je te conseille de mettre ta TI en anglais, histoire d'avoir les "vrai" noms des fonctions et messages.



Si je me souviens bien, la plupart des fonctions de programmation ne sont pas traduites (If/Then/Else/End/Lbl/Goto/Menu/Disp/Prompt/Input...).

Re: erreur: etiquette

Unread postPosted: 19 Oct 2009, 18:26
by Mikaz
donc si j'ai bien compris goto D je l'appelle gota A et j'enleve goto G

Re: erreur: etiquette

Unread postPosted: 19 Oct 2009, 18:33
by jacques
@Critor : Oui, mais le nom des erreurs change, et pas mal de fonctions moins importantes sont traduites, et ça peut devenir très déroutant (surtout pour les élèves possesseurs d'une TI en français à qui le prof leur dit de chercher des fonctions en anglais).
Par exemple : clrhome devient effcran, dispgraph devient affgraph ; mais surtout, une bonne partie des fonctions du menu Maths sont traduites, et là on n'y comprend parfois plus rien ! (randint( donne entaléat( ; nPr donne arrangement ; angle( donne argument( ...) :s:

@Mikaz : tu peux enlever le goto G, mais si tu remplace goto D par goto A, le programme va s'exécuter indéfiniment du label A au goto A, ce n'est donc pas la solution.

Re: erreur: etiquette

Unread postPosted: 19 Oct 2009, 18:35
by Emyl
tu peux maintenant reduire ton code pour qu il soit plus lisible et prenne moins de place
par exemple
Code: Select all
If R=3
then
(S+1)stoS
end
nous donne
Code: Select all
If R=3
S+1stoS
pas besoin de then et End car une seule consequence, meme pas besoin de parenthese pour ce calcul simple :;):

Code: Select all
If R=0
then
(S+0)stoS
end
peut etre tout simplement supprime, puisque cela a ne rien faire :):


et enfin
Code: Select all
(S-0.5)stoS
tu peux ;ettre
Code: Select all
S-.5stoS
qui prend moins de plqce :;):

Re: erreur: etiquette

Unread postPosted: 19 Oct 2009, 18:37
by Mikaz
ouai j'ai vu...

ben a la place j'ai enlevé les goto et j'ai fais un return et sa marche puisque je veux qu'a la fin des questions le joueur retourne au menu. Est-ce une bonne technique ?

ok merci emyl

Re: erreur: etiquette

Unread postPosted: 19 Oct 2009, 19:29
by Mikaz
Emyl wrote:
Code: Select all
If R=0
then
(S+0)stoS
end
peut etre tout simplement supprime, puisque cela a ne rien faire :):




Désolé de te contrdire mais si j'enleve ça, au niveau du score ça compte comme si c'était une réponse fausse et ça fait -.5

Re: erreur: etiquette

Unread postPosted: 19 Oct 2009, 20:33
by Bisam
Désolé de te contredire à nouveau, Mikaz, mais Emyl a parfaitement raison.
Puisque tu testes en dernier si la réponse est la réponse 0, les autres cas ont déjà été traités... et dans celui-ci, il n'y a rien à faire !