1

Bonjour, j'aurais besoin d'un petit coup de main confus
Je voudrais dans un programme, convertir une chaine en une liste. Mon programme marchait bien lorsqu'il s'agissait de convertir la chaine en liste de chiffres (ex: "12345" > {1 2 3 4 5} ) Seulement il faudrait que la chaine soit convertie en liste de nombres a deux chiffres (ex: "12345678" > {12 34 56 78} )
Voilà le programme, celui qui marche et converti la chaine en chiffres
Lbl 2
2->dim(£L)
length(Str0->£L(1)
£L(1)->dim(£XY)
0->£L(2)
Repeat £L(1)=£L(2)
£L(2)+1->£L(2)
expr(sub(Str0,£L(2),1)->£XY(£L(2))
End Return


£ c'est le petit L
en fait j'utilise deux listes, £L qui me sert à définir la boucle et prendre les chiffres au fur et a mesure dans la chaine, pour les sauver dans la liste £XY

Et voilà le programme qui ne marche pas, censé prendre des nombres à deux chiffres:
Lbl 2
2->dim(£L)
length(Str0->£L(1)
(£L(1)*0.5)->dim(£XY)
-1->£L(2)
Repeat £L(1)+1=£L(2)
£L(2)+2->£L(2)
expr(sub(Str0,£L(2),2)->£XY(£L(2))
End Return

Je ne comprend pas pourquoi il ne marche pas, en tout cas il me sort un message d'erreur de type dimension invalide.

Merci beaucoup à ceux qui m'aideront !
PS: je joint le programme, c'est le Lbl2.
tromb Fichier joint : ENGINE.83p

2

stark (./1) :
£L(2)+2->£L(2) expr(sub(Str0,£L(2),2)->£XY(£L(2))


£L(2)+2->£L(2) --> Tu augmente de 2 à chaque tour, ça viendrais pas de là ?

Car quand après tu store à la position £L(2) de £XY, ce n'est pas défini.

-1->£L(2) --> Pourquoi -1 ?

Voila, je t'ai corrigé ça vite fait, ça a l'air de marcher :
Lbl 2
2->dim(£L)
length(Str0->£L(1)
(£L(1)*0.5)->dim(£XY)
0->£L(2)
Repeat £L(1)=£L(2)
£L(2)+2->£L(2)
expr(sub(Str0,£L(2)-1,2)->£XY(£L(2)/2)
End
Return 


Alors, donc ce que j'ai modifié :
0->£L(2) --> bah on commence toujours à 0, c'était pas la peine de le modifier ;
Repeat £L(1)=£L(2) --> y avait pas à y modifier depuis le premier ;
expr(sub(Str0,£L(2)-1,2)->£XY(£L(2)/2) :
£L(2)-1 --> à cause de l'incrémentation de 2, sinon on commence à lire au 2nd caractère
£XY(£L(2)/2) --> à cause de l'incrémentation de 2, sinon on va stocker en position 2, 4, 6, 8, etc au mieu de 1, 2, 3, 4 etc.

Voila !
enjoy wink
avatar
loclamor
Mondo Photo
Le voyage en photo et en 1 clic

3

Super ! Ça marche, merci beaucoup de m'avoir aidé, et rapidement en plus grin
Comme ça, je vais pouvoir continuer smile

4

Pas de soucis !
Hésites pas si tu as encore un problème !
avatar
loclamor
Mondo Photo
Le voyage en photo et en 1 clic