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 labels

Avatar
Auteur : Ilae
Créé : le 18/04/2007 21:31:27
Modifié : le 05/05/2007 15:22:30
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)
Si vous avez déjà programmé dans un autre langage, ce mot peut vous être familier. Sinon, il doit vous être totalement étranger... Dans ce cas, ne vous en faites pas car dans tous les programmeurs que je connais, tous les maîtrisent : quelques petites fautes au début car certaines parties ont été mal comprises, mais elles sont vite éclaircies...
Sommaire du chapitre :
Chapitre précédent Sommaire Chapitre suivant

Définition

Pour faire simple, nous allons commencer par la partie Anglais tout de suite, ça éclaircira un peu les choses. En anglais, "label" veut dire "étiquette"... "étiquette", ça n'a rien à voir avec la programmation me direz-vous... Eh bien si mais je l'avoue, c'est un peu tordu. Je vais vous expliquer : dans le code source d'un programme, il est possible de mettre des sortes d'étiquettes et de dire au programme d'aller à l'étiquette tant. C'est surtout très utile lorsque c'est combiné avec les conditions.

Utilisation

Il est fort probable que cette définition ne vous ait pas bien aidé à comprendre. C'est assez normal, pour comprendre, il faut un exemple d'utilisation ainsi que quelques autres indications...

Les fonctions



Il existe deux fonctions relatives aux labels : lbl et goto. Lbl est un raccourci de label (jusque là, ça va ^^ ) et Goto vient (encore) de l'anglais et signifie (j'espère que vous l'avez compris) "aller à" (du verbe "go"). Le chemin d'accès est : [Shift], [VARS] (Prgm), [F3] (JUMP) et [F1] (Lbl) ou [F2] (Goto).

La syntaxe et les paramètres



Pour qu'un label marche, il lui faut un nom. Ceci pour qu'il puisse être déclaré et que l'on puisse dire "aller au label portant ce nom-là" (c'est le rôle de la fonction Goto). Mais vous n'allez pas créer les noms vous-même : ils sont précréés (si on peut appeler ça des noms). Il y en a 38 : les 26 lettres de l'alphabet, le rhô, le thêta et les 10 chiffres (de 0 à 9). Voici donc venir la syntaxe :

Lbl <nom du label>
<toutes les actions que vous voulez>
Goto <nom du label>

Eh oui, c'est une sorte de boucle...

Voici un petit schéma pour mieux comprendre :
labels


Un exemple



Nous allons imaginer que nous entrons dans un restaurant, que nous prenons un choix et que la calculatrice nous affiche le prix :

Code : Autre
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
0->A~Z

Lbl 0

"Bonjour, que voulez-vous ?"

"1) un steak"

"2) un poisson"

"3) une salade"

"4) une boisson"

?->A

A=1=>Goto 1

A=2=>Goto 2

A=3=>Goto 3

A=4=>Goto 4

A>4=>Goto 0

Lbl 1

"Vous avez choisi le steak"

"Ca vous fera 10 ?"¤

Goto 0

Lbl 2

"Vous avez choisi le poisson"

"Ca vous fera 8,5 ?"¤

Goto 0

Lbl 3

"Vous avez choisi la salade"

"Ca vous fera 6 ?"¤

Goto 0

Lbl 4

"Vous avez choisi la boisson"

"Ca vous fera 2 ?"¤

Goto 0


Bon voilà, c'est un code tout simple et sans grand intérêt mais ça devrait vous aider à comprendre. C'est vrai, nous aurions pu faire ça avec les fonctions If, Then, IfEnd mais l'avantage des labels est que si jamais vous devez à la fin de votre programme (par exemple) réexécuter ce que vous avez déjà exécuté dans des labels, il vous suffit de dire Goto <nom du label>. Vous comprendrez par la suite qu'il existe d'autres avantages à cette utilisation mais je vous laisse les découvrir tout seul car sinon, je vais vous embrouiller.

Attention

Les labels ont beau être très pratiques, ils sont très capricieux, il arrive qu'ils plantent alors qu'il n'y a aucune erreur. Ceci arrive si votre code est trop long, s'il y a trop d'espace entre le Goto et le Label auquel le Goto renvoie, si vous utilisez beaucoup de labels... méfiez-vous-en : utilisez-les modérément (et non comme moi au début :'( ) et favorisez plutôt les boucles et les conditions vues dans le chapitre précédent, elles sont plus sûres.

Q.C.M.

Combien existe-t-il de labels ?
Quelles sont les deux fonctions relatives aux labels ?
Laquelle de ces syntaxes est juste ?
Quelle est la bonne syntaxe ?


Voilà un bon point de fait : avec le chapitre suivant, vous devriez bientôt être capable de faire des jeux conséquents. Pour vous entraîner à faire marcher les Labels, je vous propose de refaire le jeu du plus ou du moins (le TP précédent) en remplaçant les Do et LpWhile (ou les While et WhileEnd) par des Labels. Si vous avez bien compris, c'est même plus facile à réaliser qu'avec les boucles que nous avons utilisées précédemment. Je vous mets le code ci-dessous. Bonne chance !

Code : Autre
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Lbl A

0->A~Z

ClrText

Int100Ran#+1->X

Lbl 0

"NOMBRE MYSTERE"?->J

J<X => "+ GRAND"

J>X => "+ PETIT"

J=X => Goto 1

Goto 0

Lbl 1

"BRAVO VOUS AVEZ TROUVE"¤

Goto A


Voilà c'est fait !

Il est possible que par la suite, dans mes exemples, je n'aille pas à la ligne après mes labels mais que je mette les deux points (:) (chemin d'accès : [Shift], [VARS] (Prgm), [F6], [F5] (:).). Je trouve ça plus clair.
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 668 Zéros connectés | Requêtes SQL 10 requêtes | Temps de génération de la page : Total (SQL) 0.0612s (0.0472s)