Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les tutoriels > Non-Officiels > Programmation > Calculatrices > Casio > Lecture du tutoriel

Les boucles et les conditions

Avatar
Auteur : Ilae
Créé : le 18/04/2007 21:11:10
Modifié : le 05/05/2007 14:33:18
Noter et commenter ce tutoriel
Imprimer ce tutoriel
Vous vous apprêtez à lire un tutoriel rédigé par un membre de ce site. Malgré tout le soin que ce membre a pu apporter au tutoriel, nous ne pouvons pas garantir que les informations contenues sur cette page sont exactes à 100%. Merci de garder cela en tête lorsque vous lirez cette page ;o)
Voici, je crois, le chapitre le plus intéressant. C'est grâce à celui-là que vous serez capables de faire de véritables petits jeux. Il existe trois grands types de boucles que vous découvrirez dans ce chapitre. Lorsque vous maîtriserez bien ces trois types de boucles, vous pourrez déjà créer des petits jeux marrants.
Sommaire du chapitre :
Chapitre précédent Sommaire Chapitre suivant

If, Then, Else, IfEnd

Voici la plus simple des trois et (je pense) la plus utile : les conditions (If, Then, Else, IfEnd).

If, Then, IfEnd



Elle est très simple à utiliser car elle est logique. Je vous indique donc la syntaxe :

If <condition>
Then <actions à exécuter si la condition est respectée>
IfEnd

Simple ? Non ? Un petit exemple concret alors... Ce petit exemple sera en fait un programme. La calculatrice vous demandera votre âge et vous dira si vous êtes majeur ou mineur...
Code : Autre
1
2
3
4
5
6
7
8
9
10
11
12
13
"Quel est votre age":?->A

If A>=18

Then "Vous etes majeur"

If End

If A<18

Then "Vous etes mineur"

If End


Le signe ">=" veut dire "supérieur ou égal". Le chemin d'accès de ces signes est : [Shift], [VARS] (Prgm), [F6], [F3] (REL). Et voilà, tous vos symboles sont ici ! ;)

Le chemin d'accès des fonctions "If", "Then" et "IfEnd" est : [Shift], [VARS] (Prgm), [F1] (COM).
Toutes les fonctions sont là : If , Then, Else (une fonction que nous verrons à la fin de cette partie) et I-End (IfEnd)

Pas mal comme fonctions... n'est-ce pas ? C'est pratique. Mais les programmeurs ne les ont pas encore trouvées assez pratiques, ils en ont donc créé une autre : Else.


If, Then, Else, IfEnd



Je ne vais pas vous faire un beau discours, ce serait trop compliqué, je vais vous donner la syntaxe, ce sera plus facile à comprendre (et plus facile à expliquer) :

If <condition>
Then <actions à exécuter si la condition est respectée>
Else <actions à exécuter si la condition n'est pas respectée>
IfEnd

Pour bien comprendre, nous allons reprendre le même exemple que précédemment. Au lieu qu'il y ait deux conditions différentes, il n'y en aura qu'une !
Code : Autre
1
2
3
4
5
6
7
8
9
"Quel est votre age":?->A

If A>=18

Then "Vous etes majeur"

Else "Vous etes mineur"

If End


Ben voilà, c'est très simple, non ?

Une petite question : comment puis-je me souvenir du nom de chaque fonction ?

Vous connaissez un peu d'anglais ?
Eh bien dans ce cas, vous devez savoir que "If" veut dire "si" (c'est le début de la condition), "Then", "puis" (ce qu'il y a à exécuter si la condition est respectée), "Else", "sinon" (ce qu'il y a à exécuter si la condition n'est pas respectée) et "IfEnd", "fin de la condition".
N'oubliez jamais de fermer la condition (IfEnd). Sinon, les fonctions suivantes ne s'exécuteront que si les conditions sont respectées (Then) ou si elles ne le sont pas (Else).

Voilà, vous connaissez le premier groupe de ces trois grands groupes de fonctions. Dans la prochaine partie, vous verrez une fonction (n'existant pas directement sur Graph 100/100+) résumant cette boucle ! Elle est très utilisée. :-°

Code de saut (=>)

Cette fonction n'existe pas directement sur la Graph 100/100+ mais la calculatrice est capable de l'interpréter. Si vous la souhaitez, il faut que vous l'importiez depuis un ordinateur ou une autre calculatrice. Nous verrons la procédure de transfert en annexe.

Je vous préviens tout de suite, si vous ne connaissez pas cette fonction, vous ne comprendrez jamais les programmes des autres : c'est une des plus utilisées. Mais bon, si vous ne la connaissez pas, vous pourrez quand même programmer sans problème : c'est juste un raccourci de la condition vue précédemment.
Voilà la syntaxe de cette fonction :
<condition> => <action à exécuter si la condition est respectée>
Les conditions et les fonctions à exécuter sont les mêmes que précédemment. Nous allons donc encore reprendre le même exemple :
Code : Autre
1
2
3
4
5
"Quel est votre age":?->A

A=>18 => "Vous etes majeur"

A<18 => "Vous etes mineur"


Le chemin d'accès de la double flèche est : [shift], [VARS] (prgm), [F3] (jump), [F3] (=>).


Vous pouvez mettre plusieurs conditions de suite comme ça :
<condition 1> => <condition 2> => <condition 3> => <action à exécuter>
Si la condition 1 est respectée, il passera à la condition 2... et ainsi de suite jusqu'à ce que l'on arrive à l'action à exécuter une fois que toutes les conditions auront été vérifiées.
Voilà, c'était court et simple. Et croyez-moi, vous utiliserez beaucoup cette fonction : elle est très pratique :D .

Do/LpWhile et While/WhileEnd

En fait, ce n'est pas une boucle que nous allons voir mais deux qui sont assez similaires. Un peu dures à assimiler au début, elles sont en réalité très simples et se révéleront fort utiles. Si vous avez des petits problèmes dans cette partie, ce n'est pas bien grave : il vous suffira de la relire. Surtout ne l'ignorez pas : malgré le fait qu'elle soit remplaçable par une combinaison d'autres fonctions, elle est très importante.
Ces boucles sont toutes deux composées de 2 fonctions : l'ouverture de la boucle et la fermeture de la boucle. Ce qui différencie ces fonctions est l'endroit où est placée la condition pour en sortir : au début ou à la fin. Eh oui, ces fonctions feront en sorte que la boucle s'exécute tant que la condition sera vraie.

La première : While, WhileEnd



Je vais directement vous mettre la syntaxe puis un exemple, c'est ce qui sera le plus facile :

While <condition>
<actions à exécuter si la condition est respectée>
WhileEnd

Le chemin d'accès des fonctions "While" et "WhileEnd" est : [Shift], [VARS] (Prgm), [F1] (COM), [F6], [F6].
Toutes les fonctions sont là : Whle (While), WEnd (WhileEnd), Do et Lp-W (Lp-While) (deux fonctions que nous verrons à la fin de cette partie).


Voici donc l'exemple pour bien comprendre.
Un petit peu d'histoire ^^ .
Code : Autre
1
2
3
4
5
6
7
8
9
10
11
0->A

While A=|800

ClrText

"En quelle année Charlemagne est il devenu empereur ":?->A

WhileEnd

"Bravo, vous avez trouvé"

"=|" veut dire "différent", c'est le symbole mathématique (égal barré); il se trouve dans la calculatrice avec les autres symboles mathématiques : [Shift], [VARS] (Prgm), [F6], [F3] (REL], [F2].

Une petite explication ou vous avez compris ? Je vais quand même la donner à ceux qui n'ont pas compris :

Tant que A sera différent de 800, "la boucle tournera en boucle" (c'est la cas de le dire ^^ ) : elle vous posera toujours la question. Si jamais A vaut 800, la calculatrice sortira de la boucle et ira à la fonction suivante.

La seconde : Do, LpWhile



Personnellement, je préfère celle-là, je la trouve meilleure car la condition est à la fin; mais parfois il vaut mieux utiliser l'autre !
syntaxe :

Do
<actions à exécuter si la condition est respectée>
LpWhile<condition>

C'est exactement la même chose que précédemment sauf que la condition est à la fin de la boucle; nous allons donc prendre le même exemple :
Code : Autre
1
2
3
4
5
6
7
8
9
10
11
0->A

Do

ClrText

"En quelle année Charlemagne est il devenu empereur ":?->A

LpWhile A=|800

"Bravo, vous avez trouvé"

Je ne vous l'explique pas : c'est le même que précédemment.

Si jamais vous connaissez un peu le C, vous avez dû remarquer que cette fonction existe aussi en C : c'est la même.


Faites bien attention : s'il existe deux boucles différentes, c'est qu'elles ont deux utilités différentes. En effet, avec While et WhileEnd, si la condition n'est pas respectée, les actions à exécuter ne seront jamais lues par la calculatrice. Or si vous utilisez Do et LpWhile, elles seront lues au moins une fois... Adaptez donc en fonction de vos besoins.


Est-ce que là aussi, je peux m'en rappeler grâce à l'anglais ? Comme avec les conditions vues précédemment ?

Eh bien oui : "While" veut dire "tant que". Ça donne donc : tant que A est différent de 800 (pour notre exemple)... "WhileEnd" voudrait dire (si ça existait) "fin de tant que" donc fin de la boucle. Do veut dire "fais". Ça donne : fais marcher les fonctions qui suivent. Utile l'anglais, n'est ce pas ? Vous n'êtes pas encore convaincu ? Avec tout l'anglais qu'on risque de voir dans ces cours, vous devriez voir cette langue différemment... :o .

For, To, Step, Next

Cette boucle inclut en elle-même un compteur, ce qui est très utile lorsque vous voulez faire marcher les fonctions à l'intérieur de la boucle un certain nombre de fois. Et puis elle est simple à utiliser. Mais bon, si vous m'écoutez, tout est très simple ; c'est vrai qu'une fois compris, c'est toujours simple...

For, To, Next



Cette fonction demande une petite chose : une variable et c'est tout.
Comme d'habitude, la syntaxe :

For <la valeur de départ que vous donnez à la variable> To <la valeur d'arrivée de la variable>
<les actions à exécuter>
Next

Le chemin d'accès des fonctions "For", "To" et "Next" est : [Shift], [VARS] (Prgm), [F1] (COM), [F6].
Toutes les fonctions sont là : For , To, Step (une fonction que nous verrons à la fin de cette partie) et Next.


Je reconnais que comme ça, ça ne paraît pas évident mais un petit exemple vous aidera à mieux comprendre : imaginez que vous ayez copié sur votre voisin et que vous ayez eu comme punition à copier 10 fois "Je ne dois pas tricher". Eh bien à la calculatrice, ce serait un jeu d'enfant :
Code : Autre
1
2
3
4
5
For 1->A To 10

"Je ne dois pas tricher"

Next

Alors, les explications :

La boucle s'exécutera alors jusqu'à ce que la variable A ait atteint la valeur 10 ; c'est-à-dire lorsqu'elle aura écrit 10 fois la phrase.
Voilà déjà un premier avantage à être programmeur... Non ? Les punitions faites en 3 minutes, c'est pas beau ça ? :D
Est-on obligé d'augmenter (avec la fonction Next) la valeur de 1 ? Est-ce qu'on pourrait l'augmenter de 2 par exemple ?

Ben on ne peut pas dire que vous n'êtes pas curieux. Mais de toute manière, cette question tombe à pic : c'est exactement ce que je veux vous montrer après. Il est donc possible de choisir le pas (et oui, c'est comme ça que ça s'appelle) pour augmenter la valeur différemment.

For, To, Step, Next



C'est exactement la même syntaxe, sauf que sur la ligne où l'on déclare la valeur de départ et celle d'arrivée, on rajoute le pas :
For<valeur de départ> To <valeur d'arrivée> Step <pas>
Je n'ai pas vraiment d'idée pour trouver un bon exemple; on va donc en faire un débile. Créons un programme qui compte de 2 en 2 en partant de 10 et en allant à 30 :
Pour ce faire, je vais utiliser une nouvelle fonction stoppant le programme à chaque fois que l'opération aura été faite. Ceci car sinon, la calculatrice affichera les fonctions quasiment instantanément et vous n'aurez pas le temps de les voir; ce sera même tellement rapide qu'elle-même n'aura pas le temps de les afficher. Cette fonction est un petit triangle noir et est appelée Display; son chemin d'accès est : [Shift], [VARS] (Prgm), [F5]. Comme ce petit triangle noir n'existe pas sur mon clavier, j'utiliserai ce symbole pour le signaler : "¤". Cette fonction mettra en pause le programme et tant que vous n'appuierez pas sur [EXE], il restera en pause. Retenez cette fonction, car c'est aussi une des plus utilisées.
Note : une fois cette fonction mise, votre curseur ira directement à la ligne : c'est normal. Je vous avais parlé d'instructions qui permettaient de séparer les différentes instructions (le retour à la ligne et les deux points). Voici donc la dernière...

Code : Autre
1
2
3
4
5
For 10->A To 30 Step 2

A¤

Next

Pas besoin de vous expliquer ce programme, vous l'avez compris ?
Vous devez vous dire (vu les exemples que j'ai choisis) que cette fonction ne sert jamais, or, vous vous trompez; lorsque vous ferez des jeux, elle vous sera plus qu'utile.

Nous allions oublier notre petit cours d'anglais ? >_<

Eh bien "For 10->A" (pour notre premier exemple) "pour un donne A", "To 30" "à 30", "Step 2" "avec un pas de 2" et "Next" "continue". C'est sûr, c'est moins évident (un peu plus tiré par les cheveux), mais ça se tient quand même.

Q.C.M.

Pourquoi la fonction IfEnd est-elle indispensable à la fin de la condition If et du groupement d'actions à exécuter ?
Laquelle de ces fonctions demande une condition et doit être placée à la fin de la boucle ?
A quoi sert la fonction "Step" ?
De quel groupement de fonctions la double flèche (=>) est-elle un raccourci ?
Laquelle de ces lignes est juste ?
A quoi sert le petit triangle noir que j'ai noté "¤" ?


Eh bien voilà, avec tout ça, vous êtes déjà capables de faire des petits jeux et même des petits programmes mathématiques. C'est d'ailleurs ce que nous allons faire dans le chapitre suivant : un petit jeu très simple. Je vous donnerai aussi des idées de petits programmes pour que vous puissiez vous entraîner.
Chapitre précédent Sommaire Chapitre suivant
Auteur : Ilae
Noter et commenter ce tutoriel
Imprimer ce tutoriel

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | Fil RSS | XHTML 1.0 | CSS 2.0
Édité par Simple IT SARL : Nous contacter | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 334 Zéros connectés | Requêtes SQL 10 requêtes | Temps de génération de la page : Total (SQL) 0.4711s (0.457s)