π
<-

Erreur syntaxe en attachant une formule à une liste

:32ti73: :32ti73e: :32ti73e2: :32ti76f: :32ti80: :32ti81: :32ti82: :32ti85: :32ti86: :32ti82s: :32ti82sf: :32ti82sfn: :32ti83: :32ti83p: :32ti83pb: :32ti83pr: :32ti83pfr: :32ti83pse: :32ti84p: :32ti84pse: :32ti84ppse: :32ti84pfr: :32ti84pcse: :32ti83pfrusb: :32ti82p: :32ti82a: :32ti84pce: :32ti83pce:

Erreur syntaxe en attachant une formule à une liste

Unread postby Barahir » 16 Jan 2016, 00:21

Bonjour à tous,

J'obtiens une erreur syntaxe qui me renvoie à la ligne de code suivante en exécutant un programme en Ti-Basic sur ma Ti-83+ (ligne 30 dans le programme principal) :
Code: Select all
"{15+6L₂(1)+int((L₂(1)-1)/3),2-6L₂(2)-int(1/3(L₂(2)-1→ʟCOORR


Cependant, au lieu de me renvoyer à la ligne de code à l'intérieur du programme, la calculatrice affiche l'instruction sur l'écran d’accueil (voir le fichier joint). Encore plus étrange, lorsque j'appuie simplement sur :f105: pour exécuter cette instruction, aucune erreur syntaxe ne survient, et je peux ensuite vérifier que la liste a bien été attachée à la formule.

J'ai donc essayé de déterminer l'origine du bug à l'aide de pauses, et je me suis rendu compte que le programme crashait à l'appel d'une seconde liste (que je met dans Ans) (ligne 38 dans le programme principal) :
Code: Select all
ʟθRECT


Attachée elle aussi à une formule en fonction de la première liste (ligne 32 dans le programme principal) :
Code: Select all
"{2,⁻1,ʟCOORR(1),ʟCOORR(2),4,4→ʟθRECT


J'ai vérifié, il ne semble pas y avoir d'erreur syntaxe et je ne touche pas aux listes après leurs définitions. Quelqu'un aurait-il une idée sur l'origine du bug?
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Le code complet, si vous voulez essayer de comprendre :
Le programme principal :
Show/Hide spoilerAfficher/Masquer le spoiler
Code: Select all
//---------------Réglage de l'écran---------------
0:prgmGRAPHWIN
//
//---------------Affichage du quadrillage---------------
For(A,0,18,6
For(B,0,38,19
Line(20+A+B,⁻3,20+A+B,⁻59
Line(20,⁻3-A-B,76,⁻3-A-B
End
End
Line(19,⁻2,19,⁻60
Line(77,⁻60,19,⁻60
Line(19,⁻2,77,⁻2
Line(77,⁻60,77,⁻2
//
//---------------Définition de variables---------------
//  B: joueur qui joue
0→B
//  L1: extremums des cases parcourables
{1,9,1,9→ʟXTRM
//  [A]: matrice représentant le plateau 9*9
{9,9→dim([A]
Fill(0,[A]
//  [B]: matrice représentant le plateau 3*3
{3,3→dim([B]
Fill(0,[B]
//  ʟCOORM: coordonnées de la case dans la matrice
"{int((ʟXTRM(1)+ʟXTRM(2))/2),int(0.5(ʟXTRM(3)+ʟXTRM(4→ʟCOORM
//  ʟCOORR: les coordonnées du coin supérieur gauche de la case en action dans le repère
"{15+6ʟCOORM(1)+int((ʟCOORM(1)-1)/3),2-6ʟCOORM(2)-int(1/3(ʟCOORM(2)-1→ʟCOORR
//  ʟθRECT: paramètres pour prgmRECTGNL pour afficher le curseur
"{2,⁻1,ʟCOORR(1),ʟCOORR(2),4,4→ʟθRECT
//
//---------------Lancement du jeu---------------
While 1
//  A: getKey
0→A
ʟθRECT
prgmRECTNGL
Repeat A=105
0→A
Repeat A≠0
getKey→A
End
ʟθRECT
prgmRECTNGL
If A=24 and ʟXTRM(1)<ʟCOORM(1
ʟCOORM(1)-1→ʟCOORM(1
If A=25 and ʟXTRM(3)<ʟCOORM(2
ʟCOORM(2)-1→ʟCOORM(2
If A=26 and ʟXTRM(2)>ʟCOORM(1
ʟCOORM(1)+1→ʟCOORM(1
If A=34 and ʟXTRM(4)>ʟCOORM(2
ʟCOORM(2)+1→ʟCOORM(2
ʟθRECT
prgmRECTNGL
End
End


prgmPTCOOR :
Show/Hide spoilerAfficher/Masquer le spoiler
Code: Select all
Ans→θP2C
If 0=ʟθP2C(1
Then
{15+6ʟθP2C(2)+int((ʟθP2C(2)-1)/3),2-6ʟθP2C(3)-int(1/3(ʟθP2C(3)-1
Return
Else
{(ʟθP2C(2)-20-int((ʟθP2C(2)-20)/19))/6,1/6(ʟθP2C(3)+3+int(1/19(ʟθP2C(3)+3
Return
End



prgmRECTNGL :
Show/Hide spoilerAfficher/Masquer le spoiler
Code: Select all
Ans→ʟθRECT
//Afficher
If 0=ʟθRECT(1
Then
//  le pixel
If 1=ʟθRECT(2
Then
For(θ,ʟθRECT(3),ʟθRECT(3)+ʟθRECT(5
For(Z,ʟθRECT(4),ʟθRECT(4)+ʟθRECT(5
Pxl-On(θ,Z
End
End
//  le point
Else
For(θ,ʟθRECT(3),ʟθRECT(3)+ʟθRECT(5
For(Z,ʟθRECT(4),ʟθRECT(4)-ʟθRECT(5),⁻1
Pt-On(θ,Z
End
End
End
//Effacer
Else
If 1=ʟθRECT(1
Then
//  le pixel
If 1=ʟθRECT(2
Then
For(θ,ʟθRECT(3),ʟθRECT(3)+ʟθRECT(5
For(Z,ʟθRECT(4),ʟθRECT(4)+ʟθRECT(5
Pxl-Off(θ,Z
End
End
//  le point
Else
For(θ,ʟθRECT(3),ʟθRECT(3)+ʟθRECT(5
For(Z,ʟθRECT(4),ʟθRECT(4)-ʟθRECT(5),⁻1
Pt-Off(θ,Z
End
End
End
//Inverser
Else
//  le pixel
If 1=ʟθRECT(2
Then
For(θ,ʟθRECT(3),ʟθRECT(3)+ʟθRECT(5
For(Z,ʟθRECT(4),ʟθRECT(4)+ʟθRECT(5
Pxl-Change(θ,Z
End
End
//  le point
Else
For(θ,ʟθRECT(3),ʟθRECT(3)+ʟθRECT(5
For(Z,ʟθRECT(4),ʟθRECT(4)-ʟθRECT(5),⁻1
Pt-Change(θ,Z
End
End
End
End
End
You do not have the required permissions to view the files attached to this post.
Last edited by Barahir on 16 Jan 2016, 10:45, edited 1 time in total.
User avatar
Barahir
Invité
Invité
 
Calculator(s):
MyCalcs profile

Re: Erreur syntaxe en attachant d'une formule à une lis

Unread postby Hamza.S » 16 Jan 2016, 00:24

c'est à cause des guillemets, pour les listes c'est juste {
quand ça commence par " il faut utiliser les Str (Chn)
Image
User avatar
Hamza.SAdmin
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 29.2%
 
Posts: 4510
Images: 18
Joined: 07 Nov 2014, 00:43
Gender: Male
Calculator(s):
MyCalcs profile

Re: Erreur syntaxe en attachant d'une formule à une lis

Unread postby Barahir » 16 Jan 2016, 10:55

Hamza.S wrote:c'est à cause des guillemets, pour les listes c'est juste {
quand ça commence par " il faut utiliser les Str (Chn)


Les guillemets permettent d'attacher une formule à une liste. Considère le code suivant :
Code: Select all
{1,2,3→L₁
"2L₁→L₂
Disp L₂
{4,5,6→L₁
Disp L₂
Le programme affichera d'abord {2,4,6} au premier Disp puis {8,10,12} au second.

Un autre exemple :
Code: Select all
{1,2,3→L₁
"{3L₁(2),2L₁(3),L₁(1→L₂
Disp L₂
{4,5,6→L₁
Disp L₂
Le programme affichera d'abord {6,6,1} au premier Disp puis {15,12,4} au second.
User avatar
Barahir
Invité
Invité
 
Calculator(s):
MyCalcs profile

Re: Erreur syntaxe en attachant une formule à une liste

Unread postby Hamza.S » 16 Jan 2016, 11:15

je ne connaissait pas cette astuce merci j'ai apprit quelque chose.
par contre j'ai remarqué quelque chose sur le capture écran il manque le petit ʟ après le sto
tu as écrit ça :
Code: Select all
"{15+6L₂(1)+int((ʟCOORM(1)-1)/3),2-6ʟCOORM(2)-int(1/3(ʟCOORM(2)-1→COORR

ça ne devrait pas être ça par hasard?
Code: Select all
"{15+6L₂(1)+int((ʟCOORM(1)-1)/3),2-6ʟCOORM(2)-int(1/3(ʟCOORM(2)-1→ʟCOORR
Image
User avatar
Hamza.SAdmin
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 29.2%
 
Posts: 4510
Images: 18
Joined: 07 Nov 2014, 00:43
Gender: Male
Calculator(s):
MyCalcs profile

Re: Erreur syntaxe en attachant une formule à une liste

Unread postby Barahir » 16 Jan 2016, 11:36

Hamza.S wrote:je ne connaissait pas cette astuce merci j'ai apprit quelque chose.
par contre j'ai remarqué quelque chose sur le capture écran il manque le petit ʟ après le sto
tu as écrit ça :
Code: Select all
"{15+6L₂(1)+int((ʟCOORM(1)-1)/3),2-6ʟCOORM(2)-int(1/3(ʟCOORM(2)-1→COORR

ça ne devrait pas être ça par hasard?
Code: Select all
"{15+6L₂(1)+int((ʟCOORM(1)-1)/3),2-6ʟCOORM(2)-int(1/3(ʟCOORM(2)-1→ʟCOORR


C'est quelque chose que je n'arrive pas à expliquer non plus, j'avais mis cette ligne de code dans le programme au début pour économiser un octet, le ʟ n'étant pas nécessaire :
Code: Select all
"{15+6L₂(1)+int((ʟCOORM(1)-1)/3),2-6ʟCOORM(2)-int(1/3(ʟCOORM(2)-1→COORR
Mais étant donné que ça ne marchait pas, j'ai rajouté le ʟ, au cas où il serait à l'origine du bug. Sauf que le message d'erreur me renvoie toujours au code initial, et ce même après un ClrAllLists ou même un reset de toutes les données.
User avatar
Barahir
Invité
Invité
 
Calculator(s):
MyCalcs profile

Re: Erreur syntaxe en attachant une formule à une liste

Unread postby Bisam » 19 Jan 2016, 17:22

As-tu essayé de mettre toutes les parenthèses et guillemets manquants pour vérifier que ce n'est pas bêtement une erreur du parseur ?
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile


Return to Problèmes divers / Aide débutants

Who is online

Users browsing this forum: ClaudeBot [spider] and 3 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1137 utilisateurs:
>1107 invités
>23 membres
>7 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)