Le langage SMS est exclu sur les forums ProgBoards, tout message ne respectant pas la charte sera déplacé, modifié, ou supprimé par nos modérateurs.

Forum Documentation » QBasic » A quoi servent les SUB?

Citer Linux Firefox 2 - Posté le 19/03/2008 à 16:43
Votre code source, au fur et à mesure du développement, devient de plus en plus lourd. Certains ensembles d'instructions reviennent régulièrement, ce qui rend l'écriture longue , répétitive, et le code moins clair.

Une SUB est un morceau de programme que l'on peut appeler à partir du module principal (appelées fonctions dans d'autres langages plus récents), autant de fois qu'on le souhaite.

Etudions le code suivant:

CLS
INPUT "Votre nom: ", nom$
PRINT réponse est: " + nom$
PRINT "Question suivante:"
PRINT ""
INPUT "Votre age: ", age$
PRINT "La réponse est: " + age$
PRINT "Question suivante:"
PRINT ""
END



Nous pouvons créer une SUB pour éviter de retaper les trois instructions PRINT à chaque question:

CLS
INPUT "Votre nom: ", nom$
CALL afficher nom$
INPUT "Votre age: ", age$
CALL afficher age$
END



La SUB:

SUB afficher (variable$)
PRINT "La réponse est: ", variable$
PRINT "Questions suivante:"
PRINT ""
END SUB



Pour créer une SUB, cliquez sur "Edition", "Nouveau SUB", puis entrez le nom de la sub (sans arguments).

Dans l'appel "CALL afficher nom$", nom$ est la variable qui sera transmise à la SUB, car les variables d'un programme ne sont pas accessibles depuis les SUB.

Dans notre cas, le contenu de la variable nom$ est envoyé dans la variable variable$. On peut lui donner n'importe quel nom, ou transmettre plusieurs variables à une SUB, à conditions qu'elles soient séparées par des virgules.

EXEMPLE: CALL exemple nom$, age$, "texte", numero%

Les SUB rendent les programmes moins lourds, mais surtout plus clair. Abusez-en, car le module principal d'un programme QuickBasic n'a qu'une taille limitée.

Suite à la réaction d'un lecteur par email (Alter Ego), voici les informations qu'il souhaite ajouter:

Les sous-programmes SUB sont récursifs, ce qui signifie qu'ils peuvent s'appeler eux-mêmes. Les variables d'un tel sous-programme sont locales (elles sont indépendantes des variables du même nom éventuellement présentent dans le reste du programme).

NOTE: L'instruction CALL est en réalité optionnelle puisqu'il est possible d'appeler un sous-programme SUB simplement en indiquant son nom; dans ce cas, les parenthèses d'encadrement doivent être omises et l'instruction DECLARE doit apparaître en début de programme.

Il ne faut pas oublier les FUNCTIONs.

Les fonctions définies avec FUNCTION sont récursives, ce qui signifie qu'elles peuvent s'appeler elle-mêmes. Les variables d'une fonction définie sont locales (elles sont indépendantes des variables contenues dans le reste du programme, mêm si leurs noms sont identiques).

À partir du moment où une fonction est définie, elle est tout à fait comparable à une fonction déjà existante de QuickBASIC (CHR$, ABS, VAL, etc.). On peut donc employer les fonctions définies par le programmeur comme n'importe laquelle de ces fonctions.
Change la caféine en lignes de code, et aurait parfois besoin de l'inverse.
L'envoi d'un message sur ce forum est réservé aux membres du groupe ProgBoards Documentation.
v6 © Computaid SPRL 2005-2012 - Tous droits réservés - Hébergé par eTigris - Page générée en 0,023 s - Crédits - Stats
1 connecté