Utilisateur:François Melchior/Bac à sable/test bandeau

Erreur Lua : frame:expandTemplate: invalid type function for arg 'go'.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
À faire...link={{{link}}}


  • Décrire l'usage et l'utilité des différents types de variables ;
  • Finir la liste des commandes ;


Cette page décrit les commandes de base qui permettent de mettre en place de premiers programmes fonctionnels.

Afficher du texte

modifier

Pour l'instant, exécuter votre programme ne sert a rien car il ne contient aucun code. Il faut Revenir dans l'éditeur puis entrer un texte entre guillemets (accessibles par la touche [ALPHA]), par exemple "LA POMME EST UN FRUIT". En exécutant le programme, on voit en principe le texte « LA POMME EST UN FRUIT » s'afficher.

À noter que si on omet les guillemets, le programme aurait effectué la multiplication de toutes les variables correspondant lettres du texte puis aurait retourné la valeur du produit, voire la section suivante expliquant le fonctionnement des variables. Voici une des premières spécificités du Basic Casio car il n'est pas besoin de mettre la commande PRINT devant le texte a afficher. Seuls les guillemets suffisent.

Les variables

modifier

La calculatrice dispose de cases mémoires dont les noms et types sont prédéfinis. Cela sous entend qu'il n'est pas nécessaire de demander soi même la création des variables comme dans d'autres langages de programmation. Cela éclaircit la syntaxe mais limite le programmeur.

Alphanumériques

modifier

Il existe une grande variété de variables disponibles pour les programmeurs. Les plus simples et les plus économiques en code (ce qui est un facteur très important car on ne dispose que de 64 Ko pour une graph 35 par exemple) sont les variables alphanumériques. Elles sont au nombre de 28 en comprenant les 26 lettres de l'alphabet plus les signes thêta et rhô. Pour apprendre à manipuler ces variables, il est plus commode d'aller dans le mode RUN.

Pour connaître la valeur de la variable alphanumérique, celle de « A » par exemple, appuyer sur [ALPHA] puis la touche correspondant à la lettre « A » ([X,O,T] en l'occurrence). Puis appuyer sur [EXE]. Si elle ne contient rien, il s'affichera 0.

Pour “remplir” une variable, utiliser la flèche présente au dessus de la touche [AC/ON] qui correspond à la valeur getkey? 25. Si on veut assigner la valeur 2 à la variable A, utiliser la syntaxe 2->A (cet article utilise -> plutôt que → car certains ordinateurs n'affichent pas correctement ce dernier caractère). En demandant l'affichage de la valeur de A comme expliqué dans le point précédent on constate que la Variable A contient effectivement la valeur 2.

Il est possible d'effectuer des assignations composées comme 3+B->A . Cela aura pour effet d'assigner la valeur de B plus la constante 3 a la variable A. Pour incrémenter? (augmenter de un) une valeur de 1, on peut s'y prendre ainsi: A+1→A. Le langage Casio ne gère pas les syntaxes comme A++ , familiers du C.

Toutes les variables sont limitées a l'intervalle numérique [-1e-99 ; 1e+99] et ne gèrent que 10 chiffres significatifs.

Pour assigner le même nombre a toute une série de variables, on peut utiliser le tilde ~ (accessible par [ALPHA][F3]) entre les deux variables bornes. Par exemple 3->B~U met 3 dans toutes les variables entre B et U. On met très souvent 0->A~Z en début des programmes pour réinitialiser toutes les variables.

Variables de liste

modifier

Variables matricielles

modifier

Variables système

modifier

Le menu de programmation

modifier

Mais les fonctions de programmation les plus intéressantes se trouvent ailleurs, regroupées dans un menu a priori peu accessible (c'est juste une chose qu'il faut connaître). On n'y accède pas en naviguant dans une quelconque arborescence; mais en effectuant la combinaison de touches [SHIFT][VARS] (shift puis vars) dans l'éditeur (cela fonctionne également dans le mode RUN ; en fait, il est même possible d'écrire des programmes dans le mode RUN en séparant les instructions par un retour chariot ([SHIFT][EXE]) mais cela se révèle généralement moins pratique que le mode PRGM où l'on peut nommer son programme, le protéger par un mot de passe, etc.).

Voici la liste de toutes les fonctions accessibles dans ce menu ainsi que les possibilités qu'elles fournissent au programmeur qui les utilisent:

Note: Pour mieux illustrer les exemples, des instruction gratuites (n'ayant qu'un rôle purement démonstratif) seront rajoutées. Ces instructions ressemblent à "TEXTE" ou A+B->C et ne servent qu'à vous exercer à repérer le code superflu et à vous habituer à la lecture de vrais programmes.

modifier
If/Then/Else/IfEnd
modifier

Ces instructions permettent d'exécuter des parties de votre code en précisant les conditions qui permettront leur exécution:

If (condition)
Then (code exécuté si la condition est vérifiée)
Else (code exécuté si la condition n'est pas validée)
IfEnd

(à noter que les parenthèses ne sont pas indispensables)

En français:

Si (condition)
Donc (code exécuté si la condition est vérifiée)
Sinon (code exécuté si la condition n'est pas validée)
SiFin

Concrètement, cela peut donner:

Code d'exemple Résultat Code à l'écran
  1. ...
  2. "TEXTE"
  3. 4→D
  4. If A=2
  5. Then A+B→C
  6. "LA CONDITION EST VÉRIFIÉE"
  7. Else 4→D
  8. "LA CONDITION N'EST PAS VÉRIFIÉE"
  9. IfEnd
  10. 2+5
  11. 5→A
  12. ...
  1. Précédent du programme
  2. Affichage du texte "TEXTE"
  3. Affectation "4" a la variable "D"
  4. Test "A=2"
  5. Si le test est valide, affectation de la variable "C" par la somme des variables "A" et "B"
  6. Et affichage du texte "LA CONDITION EST VÉRIFIÉE"
  7. Si le test est invalide, affectation de la variable "D" par la valeur "4"
  8. Et affichage du texte "LA CONDITION N'EST PAS VÉRIFIÉE"
  9. Fin de la zone concernée par le test "A=2"
  10. Calcul de l'opération 2+5 (le résultat étant stocké dans la variable "Ans")
  11. Affectation de la valeur "5" à la variable "A"
  12. Suite du programme

Le "Else" est optionnel. Si il est absent et que la condition de test n'est pas vérifiée, alors aucune des instructions situées entre le Then et le IfEnd ne seront exécutées.

Même le IfEnd est optionnel. Si il est absent, la condition regroupera tout le programme. C'est a dire que si le test n'est pas vérifié, aucune instruction du programme ne s'exécutera. Le IfEnd sert a borner les instructions conditionnelles. C'est a dire que toutes les instructions situées avant le IfEnd seront exécutées en fonction du test d'entrée. Toutes les instructions après le IfEnd seront exécutées, indépendamment du If.

While/WhileEnd
modifier

Les instructions incluses entre un While et un WhileEnd s'exécutent tant que le test effectué lors du while est validé.

While (test)
(instructions exécutées si le test est validé et autant de fois qu'il l'est)
WhileEnd

Le test est généralement une comparaison d'infériorité ou de supériorité. Par exemple on peut tester si telle variable est inférieure à telle valeur numérique. Tant que ce n'est pas le cas, on effectue une instruction lambda et on augmente la valeur de la variable jusqu'à ce que celle-ci atteigne la valeur de seuil, validant le test du while et permettant la poursuite du programme après le bloc.

Do/LpWhile
modifier

La boucle Do/LpWhile fonctionne à peu près de la même manière que While/WhileEnd à la différence que le test est effectué au niveau du WhileEnd, c'est à dire que même si il n'est pas validé, le code entre Do et LpWhile aurait été exécuté au moins une fois, alors que cela n'aurait pas été le cas avec While/WhileEnd.

Do
(instructions exécutées une première fois puis autant de fois que le test est validé)
LpWhile (test)

Utiliser cette boucle ou une boucle For/Next plutôt que While est généralement un moyen d'optimiser son code dans certaines circonstances. En pratique, le débutant peut fort bien se débrouiller uniquement avec des While voire avec des Goto, mais ces derniers ont tant été décriés que nous ne saurions vous conseiller de les utiliser par défaut.

For/To/Step/Next
modifier

Ces instructions permettent d'exécuter des instruction entre le For et le Next de manière répétitive.

For (Valeur initiale)->(variable du compteur) To (valeur finale) Step (valeur du pas)
(code exécuté tant que la variable ne franchit pas la valeur de la valeur finale)
Next


En français :

De la (Valeur initiale)->(variable) Jusqu'à la (valeur finale) Par étapes de (valeur du pas)
(code exécuté tant que la variable ne franchit pas la valeur de la valeur finale) Recommencer // tant que la variable ne franchit pas la valeur finale.

L'ensemble commencé par le For et terminé par le Next est appelé une boucle car les instructions situées dans cet ensemble s'exécuteront plusieurs fois de manière répétée. De la même manière qu'on dit « passer une musique en boucle », on exécutera ici des instructions en boucle. Ci-dessous seront expliquées les règles qui régissent cette boucle et la manière d'en sortir. À noter que la valeur du <pas> est de "1" par défaut et qu'il n'est pas nécessaire de la préciser si on veut la conserver à cette valeur.

C'est une instruction difficile à expliquer car elle en contient de nombreuses autres. Elle est destinée en pratique à effectuer des motifs linéaires avec un minimum de lignes de code. Il s'agit donc d'une fonction servant principalement à optimiser un code, et sa maîtrise est loin d'être indispensable pour monter des programmes fonctionnels mais s'avère très pratique pour les programmeurs expérimentés.

modifier

Cette instruction permet de faire appel à un autre programme. Cela est l'équivalent des fonctions pour d'autres langages.

Prog "Nom du programme"

Cette instruction permet de retourner une variable traitée dans une fonction.

Programme "MAIN"
"A"?→A
Prog "Carre"
Programme "CARRE"
AxA→A
return A

Cette instruction interrompt une boucle

Cette instruction interrompt un programme

modifier

Lbl = Label. Cela permet de faire des sauts dans les programmes. S'utilise avec Goto.

Goto = Go To (Aller Vers). Cela permet de faire des sauts dans les programmes. S'utilise avec Lbl. Exemple :

Lbl 2:"A":Goto 2

Affiche A à l'infini

Instruction =>
modifier

Forme contractée de l'instruction If-Then Exemple :

A<10=>Goto 10

Si A<10 Alors Aller vers le Label 10

Instruction d'incrémentation. Exemple :

Isz A

Équivaut à A+1→A

Instruction de décrémentation. Exemple :

Dsz A

Équivaut à A-1→A

Commande ?

modifier

Cette commande permet de demander une variable. Exemple :

?→r
P→2xπxr

Formule du périmètre d'un cercle

Commande [disp]

modifier
modifier
ClrText
modifier

Efface tout l'écran Syntaxe :

ClrText
ClrGraph
modifier
ClrList
modifier
modifier
modifier

Affiche un texte ou une variable à un endroit précis sur l'écran. Généralement, les écrans font 21 caractères en longueur x 7 caractères en hauteur. Syntaxe :

Locate PositionVerticale,PositionHorizontale,"Texte"
Locate PositionVerticale,PositionHorizontale,Variable

Permet de faire des instructions en fonction de la touche appuyée.

Commande :

modifier
Erreur Lua : frame:expandTemplate: invalid type function for arg 'go'.