Tous | Tutoriels du Mercredi | Basic Casio | C/C++/ASM | LuaFX | Graphisme | Transferts | Logiciels | Diverses astuces

Calculatrice
Toutes
Graphs 35 à 100
Graph 25
Graphs 75/85/95 (SD)
Graph 100(+)
Classpad 300/330 (+)
Fx-CG 10/20
Fx-CP 400
Graph 90+E

Retour à la liste des tutoriels
Tutoriel Casio : Chaines de caractères et tableaux 2D
Tutoriel rédigé le : 2012-04-24 17:50  par Purobaz  Catégorie : Basic Casio  Calculatrice : Toutes

Discutez de ce tutoriel sur le forum >> Voir le sujet dédié (11 commentaires)

Chaines de caractères et tableaux 2D
Voici un petit tutorial sur l'utilisation des chaines de caractères en tant que tableaux 2 dimensions aussi appelés Matrices en basic.
Les chaines de caractères ont l'avantage d'être moins gourmandes en mémoire et d'être compatibles avec PRGM2


En revanche vous ne pourrez pas y stocker des grands nombres, ni des nombres décimaux. Dans ce tuto nous utiliserons des nombres compris entre 0 et 99, mais vous pourrez aller au delà quand vous aurez compris le principe.


I. Préparation
Cliquez pour découvrir
Cliquez pour recouvrir
Voici tout ce qu'il faut préparer et savoir avant d'utiliser les chaines de caractères en tant que tableaux 2 dimensions.

Tout d'abord déterminez les dimensions du tableau. Dans la suite du tuto nous choisirons une largeur L, et une longueur K qui a cependant moins d'importance.
X et Y correspondront respectivement à l'abscisse et à l'ordonnée de la cellule choisie. Attention la cellule de coordonnées (1, 1) est en haut à gauche du tableau.
Dans notre exemple, le tableau sera stocké dans la Str 1. Au total il y a 20 Str, évitez de faire des tableaux de plus de 120 cellules, utilisez plutôt plusieurs tableaux.

Enfin nous utiliserons une chaine de caractères de "référence" pour encoder les valeurs.
Mettez donc le code suivant au début de votre programme, vous comprendrez peut-être son utilité plus tard
"0123456789. ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz(){}[]=!=><>=<=^log ln sin cos tan ,->If Then Else IfEndFor  To Step NextWhile WhileEndDoLpWhile Prog ReturnBreakStop"->Str 20

Peut importe les caractères que contient la chaine de caractères, il en faut 100 différents. Vous pouvez vérifier la longueur de la chaine avec StrLen(Str 20)


II. Initialisation du tableau
Cliquez pour découvrir
Cliquez pour recouvrir
La création et l'initialisation de votre tableau en chaine de caractères sont simultanés.
Pour créer un tableau vide utilisez le code suivant :
For 1->A To L*K
Str 1+"0"->Str 1
Next

Vous pouvez aussi initialiser le tableau dès sa création, mais attention il faut respecter l'encodage de votre chaine de référence.
Par exemple le tableau "0A.E49Yfb1E3"->Str 1 et de largeur 4 correspond d'après l'encodage décrit plus haut au tableau :
-------------
| 0|12|10|16|
| 4| 9|36|43|
|13| 1|16| 3|
-------------



III. Lire et écrire des valeurs dans le tableau
Cliquez pour découvrir
Cliquez pour recouvrir
Cette partie est sans doute la plus facile, vous avez simplement à utiliser les codes proposés.

Lire la valeur de coordonnées (X, Y) dans N :
StrSrc(Str 20,StrMid(Str 1,L(Y-1)+X,1))-1->N

Ecrire la valeur N aux coordonnées (X, Y) :
StrLeft(Str 1,L(Y-1)+X-1)+StrMid(Str 20,N+1,1)+StrRight(Str 1,StrLen(Str 1)-L(Y-1)-X)->Str 1


Un petit programme contenant tout le code est en fichier joint

Après ça, vous êtes près à affronter la prochaine version de PRGM2, qui offrira encore plus de possibilités pour vos jeux 8)

Fichier joint


Discutez de ce tutoriel sur le forum >> Voir le sujet dédié (11 commentaires)

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2018 | Il y a 27 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire indépendant, géré bénévolement et n'est donc pas affilié à Casio | Toute reproduction de Planète Casio, même partielle, est interdite
Les fichiers, programmes et autres publications présents sur Planète Casio restent la propriété de leurs auteurs respectifs et peuvent être soumis à des licences ou des copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd