Basic Casio

De Casio Universal Wiki
Aller à : navigation, rechercher

Présentation

Le Basic Casio est un langage de programmation simple, dérivé du Basic. Il est destiné à la programmation d'algorithmes et de programmes basiques par des étudiants ne possédant pas une formation spécialisée. C'est un langage interprété, c'est à dire qu'il est la calculatrice lit les programmes au fur et à mesure qu'elle les exécute. Cela s'oppose aux langages compilés comme le C ou le Lua, qui sont traités (« compilés ») à l'avance.

Le Basic Casio existe sur quasiment toutes les calculatrices Casio modernes, mais il y a des différences, par exemple entre la Graph 35+E, la Graph 90+E ou encore la Classpad. Un certain niveau de compatibilité existe (notamment quand des programmes pour Graph 35+E sont transférés à une Graph 90+E), mais porter un programme n'est jamais gagné d'avance.

Initialement destiné à la programmation d'algorithmes en classe, le Basic Casio a vite été détourné pour programmer des jeux sur les calculatrices. L'interprétation (c'est-à-dire l'exécution) des programmes Basic reste beaucoup plus lente que celle du Lua (voir LuaFx), et encore plus que celle des add-ins en C (voir le système de développement des SDK).

Ainsi, les bons jeux en Basic sont ceux qui parviennent à s'accomoder des difficultés de vitesse, généralement des jeux de réflexion ou au tour-par-tour.

Tutoriel de programmation Basic

Le tutoriel de programmation en Basic de Totoyo est disponible sur Planète Casio : Cours, Tutoriel de programmation Basic pour calculatrices Casio (v2)

Le menu de l'application PRGM

La programmation en Basic se fait dans le menu PRGM (touche [9] pour les anciennes Graph 35+USB, [A] pour les Graph 35+E et [B] pour les Graph supérieure). Les onglets qui apparaissent en bas de la fenêtre permettent de gérer les programmes :

  • EXE  : Lancer le programme sélectionné.
  • EDIT  : Ouvre l'éditeur de code pour modifier le programme.
  • NEW  : Crée un nouveau programme.
  • DEL  : Supprime (après confirmation) le programme sélectionné. Aussi accessible par la touche [DEL] du clavier.
  • DEL-A : Supprime (après confirmation) tous les programmes.
  • SRC  : Rechercher un programme par son nom.
  • REN  : Renomme le programme sélectionné.

Appuyer sur [F3] permet de créer un nouveau programme. Le bouton BASE permet de créer un programme dit *en mode Base* ; il s'agit d'un type différent de programmes Basic réservé aux calculs de conversions de bases. Le symbole avec la clé permet d'ajouter un code d'accès qui sera demandé à chaque fois que l'utilisateur tentera d'éditer le programme. Le niveau de sécurité est ridicule (on peut le retirer aisément sans recourir à un PC ou à une application externe), mais il permet d'éviter les modifications malencontreuses (surtout quand une erreur se produit et qu'il l'utilisateur incrédule se retrouve face à l'éditeur de code).

Débuter en basic Casio

Le Basic Casio possède une multitude d'instructions, les plus élémentaires étant les instructions suivantes qui sont utilisées pour réaliser des algorithme de base (par exemples en maths) :

  • Affichage la valeur d'un calcul avec le symbole DISP : ([SHIFT],[PRGM],[F5])
  • La saisie de données : ? ([SHIFT],[PRGM],[F4])
  • Affectation de valeurs aux variables : (touche [→] située au-dessus de [AC/ON])
  • Affichage du texte à l'écran, avec les guillemets (e.g. "Le résultat est :"). ([ALPHA],[×10^x])
  • Les commentaires de texte avec le symbole ' (dure jusqu'à la fin de la ligne)


Commandes de base

  • Les conditions
If Condition                // On définit la condition                                                           => [SHIFT][VARS][F1][F1]
Then Instructions           // Les instructions à exécuter si la condition est vraie                             => [SHIFT][VARS][F1][F2]
Else Instructions           // Facultatif, instructions à exécuter si la condition est fausse                    => [SHIFT][VARS][F1][F3]
IfEnd                       // Fin de la condition                                                               => [SHIFT][VARS][F1][F4]
Condition => Instruction    // Plus rapide mais ne permet d’exécuter qu'une seule instruction                    => [SHIFT][VARS][F3][F3]


  • Les boucles
While Condition             // On définit la condition de la boucle                                      => [SHIFT][VARS][F1][F6][F6][F1]
Instructions                // Les instructions à exécuter tant que la condition est vraie  
WhileEnd                    // Fin de la boucle                                                          => [SHIFT][VARS][F1][F6][F6][F2]
Do                          // Début de la boucle                                                        => [SHIFT][VARS][F1][F6][F6][F3]
Instructions                // Les instructions à exécuter tant que la condition est vraie
LpWhile Condition           // On définit la condition de la boucle                                      => [SHIFT][VARS][F1][F6][F6][F4]

La différence entre un boucle "While/WhileEnd" et une boucle "Do/LpWhile" est que, si la condition est fausse depuis le début, une boucle "While/WhileEnd" ne fera aucune itération, tandis qu'une boucle "Do/LpWhile" en fera toujours au moins une.


For Valeur initiale Arrow.gif Variable To Valeur finale Step Pas     
Instructions                // Les instructions à exécuter pendant la boucle 
Next                        // Fin de la boucle
For                                                                                                          => [SHIFT][VARS][F1][F6][F1]
To                                                                                                           => [SHIFT][VARS][F1][F6][F2]
Step  (Facultatif, 1 par défaut)                                                                             => [SHIFT][VARS][F1][F6][F3]
Next                                                                                                         => [SHIFT][VARS][F1][F6][F4]


  • Les sauts inconditionnels
Goto nombre ou lettre       // Fait un saut inconditionnel vers le "Lbl" avec le même identifiant                => [SHIFT][VARS][F3][F2]
Lbl nombre ou lettre        // Marque le point d'arrivée d'un "Goto" avec le même identifiant                    => [SHIFT][VARS][F3][F1]


  • Les opérateurs relationnels :
Premier terme = Second terme                                                                                 => [SHIFT][VARS][F6][F3][F1]
Premier terme  Second terme                                                                                 => [SHIFT][VARS][F6][F3][F2]
Premier terme < Second terme                                                                                 => [SHIFT][VARS][F6][F3][F4]
Premier terme > Second terme                                                                                 => [SHIFT][VARS][F6][F3][F3]
Premier terme  Second terme                                                                                 => [SHIFT][VARS][F6][F3][F6]
Premier terme  Second terme                                                                                 => [SHIFT][VARS][F6][F3][F5]


  • Les commandes de contrôle
Prog Nom du programme       // Exécute un autre programme dont on spécifie le nom comme une sous-routine         => [SHIFT][VARS][F2][F1]
Return                      // Ramène dans le programme appelant                                                 => [SHIFT][VARS][F2][F2]
Break                       // Force la sortie d'une boucle                                                      => [SHIFT][VARS][F2][F3]
Stop                        // Arrête l'exécution du programme                                                   => [SHIFT][VARS][F2][F4]


  • Autres
La répartition du Getkey sur Fx-9860
Locate, x, y, "Texte"       // Affiche du texte aux coordonnées spécifiées            => [SHIFT][VARS][F6][F4][F1]
GetKey                      // Prend une valeur selon la touche pressée               => [SHIFT][VARS][F6][F4][F2]


Commandes avancées

  • Les opérateurs logiques:

Ceux-ci servent à relier deux conditions ou plus pour n'en faire qu'une. Elles se situent dans l'onglet "LOGIC".

C1 And C2       // Est vrai ssi les deux paramètres sont non nuls                       =>  [OPTN][F6][F6][F4][F1]
C1 Or C2        // Est vrai ssi au moins l'un des deux paramètres est non nul           =>  [OPTN][F6][F6][F4][F2]
Not C           // Est vrai ssi le paramètre est nul                                    =>  [OPTN][F6][F6][F4][F3]
C1 Xor C2       // Est vrai ssi un et un seul des deux paramètres est non nul           =>  [OPTN][F6][F6][F4][F4]

Les paramètres non nuls sont soit des variables dont la valeur est différente de 0, soit des expressions conditionnelles vraies. On peut donc utiliser le résultat d'une condition logique en paramètre d'une autre.


  • Les chaînes de caractères (Strings)

Disponibles uniquement sur les calculatrices disposant d'une version de l'OS supérieur à 2

Les chaînes de caractères permettent d'insérer du texte dans des variables spéciales, les Strings (Str). Le Basic Casio dispose aussi de fonctions permettant de les manipuler.

Str Identifiant (1Arrow.gif6)       // Permet d'accéder à une chaîne à la manière des listes                                    => [VARS][F6][F5]


Commandes graphiques

Les repères d'affichage

Le Basic Casio permet de gérer deux écran. Le premier est l'écran de texte, qui a 21 colonnes, 7 lignes, et dans lequel on affiche du texte avec la commande Locate. Le second est l'écran graphique, qui permet de contrôler chaque pixel indépendamment. Il a 127 colonnes et 63 lignes (les dimensions de l'écran, dont une colonne et une ligne sont inaccessibles). Ces deux écrans sont indépendants et on peut pas afficher le contenu des deux en même temps.

L'écran graphique utilise deux repères pour l'affichage.

  • Le premier est le repère du graphique, dans lequel sont tracées les courbes. Ce repère est défini par la commande ViewWindow.
  • Le second est le repère statique de l'écran. Chaque pixel a des coordonnées entières, et la valeur pour y=0 se trouve en haut de l'écran. Toutes les coordonnées y sont positives.


Préparer l'écran pour le programme

Les commandes utilisées pour préparer l'écran graphique sont les suivantes.

ViewWindow Xmin, Xmax, Xscale, Ymin, Ymax, Yscale                                                                      => [SHIFT][F3][F1]

La commande ViewWindow définit les dimensions du repère graphique. Comme de nombreuses fonctions l'utilisent plutôt que le repère statique, il est utile de le définir au plus près de ce dernier.

ViewWindow 1,127,1,1,63,1

Il est aussi recommandé d'enlever les axes, la grille et autres afin d'avoir un écran blanc.

CoordOff                                                                                                         => [SHIFT][MENU][F2][F2]
GridOff                                                                                                          => [SHIFT][MENU][F3][F2]
AxesOff                                                                                                          => [SHIFT][MENU][F4][F2]
LabelOff                                                                                                         => [SHIFT][MENU][F5][F2]


Dessiner à l'écran graphique

Les fonctions utilisées pour dessiner à l'écran graphique sont les suivantes.

Cls                         // Efface l'écran graphique                                                                => [SHIFT][F4][F1]
PlotOn x, y                 // Allume le pixel aux coordonnées spécifiées                                      => [SHIFT][F4][F6][F1][F2]
PlotOff x, y                // Éteint le pixel aux coordonnées spécifiées                                      => [SHIFT][F4][F6][F1][F3]
PlotChg x, y                // Inverse l'état du pixel aux coordonnées spécifiées                              => [SHIFT][F4][F6][F1][F4]
Line                        // Trace une ligne entre 2 pixels allumés avec PlotOn                              => [SHIFT][F4][F6][F2][F1]
F-Line x1, y1, x2, y2       // Trace une ligne entre les points spécifiés                                      => [SHIFT][F4][F6][F2][F2]

PxlOn x, y                  // Allume le pixel aux coordonnées spécifiées                                  => [SHIFT][F4][F6][F6][F3][F1]
PxlOff x, y                 // Éteint le pixel aux coordonnées spécifiées                                  => [SHIFT][F4][F6][F6][F3][F2]
PxlChg x, y                 // Inverse l'état du pixel aux coordonnées spécifiées                          => [SHIFT][F4][F6][F6][F3][F3]

Les commandes Plot, Line ainsi que F-Line utilisent le repère du graphe.
Les commandes Pxl utilisent le repère statique de l'écran.


Utiliser les Pictures

Il est possible de stocker le contenu d'un écran graphique dans la mémoire sous la forme d'une Picture, puis de le rappeler. Ceci n'efface pas l'écran.

StoPict p                   // Stocke l'écran graphique dans la Picture p                                       => [OPTN][F6][F6][F2][F1]
RclPict p                   // Affiche à l'écran graphique le contenu de la Picture p                           => [OPTN][F6][F6][F2][F2]


Utiliser les Captures

Les Captures sont des captures d'écran réalisées par le système lorsque vous appuyez sur [SHIFT][7]. Vous pouvez les utiliser pour afficher des images également, et elles ont l'avantage d'être deux fois mois lourdes que les Picture.

RclCapt p                   // Affiche à l'écran graphique le contenu de la Capture p                           => [OPTN][F6][F6][F5][F1]

Cependant, on ne peut dessiner par-dessus une Capture.

Aller plus loin

Tutoriels de qualité