Aller au menu - Aller au contenu

Icône Les sauts et autres

Mise à jour : 22/08/2008
336 visites depuis 7 jours, dont 8 sur ce chapitre classé 314/786
Les sauts sont de deux types différents. Les premiers sont à bannir de vos programmes, les seconds sont à utiliser comme bon vous semble.
Bizarre :o ? La suite l'est encore plus :p .
Sommaire du chapitre :
Icône du chapitre
Chapitre précédent Sommaire Chapitre suivant

Les labels

Cette sous-partie ne va pas vous apprendre à vous servir d'une fonction super cool. Non, ce chapitre va vous apprendre à ne pas vous servir des labels ^^ .

Après cette entrée en scène dramatique, je vais vous expliquer ce que sont les labels. Les labels (littéralement "étiquettes") sont des repères, des marque-pages en quelque sorte, permettant des saut inconditionnels. Un saut inconditionnel est quelque chose de tout à fait bizarre. Au lieu de lire ligne par ligne le programme, la calculatrice va se "téléporter" dans le programme, que ce soit vers l'avant ou vers l'arrière. Leur utilisation est d'une simplicité déconcertante, ce qui fait que les débutants les utilisent beaucoup.

Pour créer une étiquette, il vous faudra utiliser la fonction Lbl (=>[SHIFT][VARS][F3][F1]) et la faire suivre d'un chiffre, d'une lettre de l'alphabet latin majuscule (A~Z), ou encore de thêta ou rho.

Pour faire un saut vers une étiquette, il suffit d'utiliser la fonction Goto (=>[SHIFT][VARS][F3][F2]), suivie du chiffre ou de la lettre du Lbl correspondant.

Avant de taper quoi que ce soit, sachez que l'utilisation des labels est très fortement déconseillée :
  • ils sont lents
  • ils créent des bugs. Sur les petits programmes, on ne s'en rend pas compte, mais sur les gros, on s'en aperçoit tout de suite. J'ai eu le malheur d'utiliser des labels il y a encore peu, et je me suis aperçu que mes programmes que j'avais écrit ne fonctionnaient pas du tout comme je le voulais sur Graph 35+/65 alors qu'ils fonctionnaient sans problème sur ma Graph 85 SD
  • ils vont vous faire tourner en bourrique :p , car au lieu de debugger ligne par ligne, de haut en bas, vous allez devoir chercher un peu partout ("téléportation" oblige)

Il n'y a pas de bonne utilisation des labels, car on peut tout faire sans.

Je vais vous écrire un code, qu'il faudra imprimer dans votre esprit comme étant "mauvais" :
Code : Autre - Exemple d'un mauvais code, utilisant les labels
1
2
3
4
5
6
Lbl 1
"MOT DE PASSE"?->A
A=1234=>Goto 2
Goto 1
Lbl 2
"MOT DE PASSE DECOUVERT"


Ce code demande le mot de passe à l'utilisateur, le stocke dans A, si le mot de passe est égal à 1234, on continue, sinon on recommence depuis le début (je pense que vous auriez compris sans mon explication). Ce code peut être écrit sans labels, grâce à une simple boucle qu'on a vu dans le précédent chapitre, par exemple comme ceci :
Code : Autre - Exemple de bon code, sans labels
1
2
3
4
Do
"MOT DE PASSE"?->A
LpWhile A!=1234
"MOT DE PASSE DECOUVERT"


Je ne sais pas ce que vous en pensez, mais moi, je préfère le second code rien que parce qu'il prend moins de place (4 lignes au lieu de 6 ^^ ).
Un code sans labels n'est pas forcément bon (il faut toujours se relire, pour avoir un code clair, fonctionnel et optimisé au maximum), en revanche, un code avec des labels est forcément mauvais ^^ .

Les sous-programmes

Les sous-programmes sont des programmes "secondaires", qui sont appelés depuis le programme principal (ou depuis un autre programme "secondaire"). Dans un gros projet, ils sont importants, surtout avant la finalisation d'un programme, car ils permettent de coder et de debugger plus efficacement.

Pour tout vous dire, l'appel d'un sous-programme ressemble furieusement à un Goto, sauf que là ça ne pose pas de problème :lol: : on utilise la fonction Prog (=>[SHIFT][VARS][F2][F1]) suivi du nom du programme à appeler, entouré de guillemets.

Pour retourner dans le programme appelant, il faut utiliser la fonction Return, qui ne prend aucun paramètre. Quand la calculatrice arrive à la fin de la dernière d'un ligne d'un sous-programme et qu'il n'y a pas de Return, cela ne fait rien, elle retourne au programme appelant. Quand la calculatrice retourne au programme maitre, elle ne revient pas à la première ligne, mais continue sa lecture comme s'il n'y avait pas eu d'appel.

Un programme peut s'appeler lui-même. C'est ce que l'on appelle la récursivité.
Attention, vous ne pouvez pas avoir plus de 11 appels en cours, sinon vous avez une Erreur branch.
Après ce chapitre un peu bizarre, surtout la première partie (rare de voir un prof écrire : "n'apprenez pas ça !" :lol: ), passons à un chapitre qui sera assez concis, dans lequel vous apprendrez pas mal de nouvelles fonctions.
Chapitre précédent Sommaire Chapitre suivant

Partager

Il n'y a pas encore de commentaire pour ce tuto.