Ha! bon! je comprend l'objet de la question sur la signification du Sub...
Sub c'est une procédure qui ne retourne pas de valeur contrairement à une fonction qui, elle, en retourne une.
Je ne sais pas si les mots clés ByVal et ByRef existent en QBasic (faudra que je demande à mon 'chum') mais voici un bref tour de la question:
Exemple de procédure:
1 2 3 4
| Sub Toto(nom$, prenom$)
' Cette procédure affiche le nom de l'utilisateur
Print "Bonjour " & prenom$ & " " & nom$
End Sub |
on appelle une procédure comme suit
1. à l'intérieur du même module de code (.bas), sans le mot Call (en principe!)
Toto "Côté", "Isabelle" ' maintenant, vous connaissez mon vrai nom!
2. dans un autre module :
Call Toto "Côté", "Isabelle"
remarquez que je n'ai pas mis de parenthèses bien qu'il est possible qu'elles soient nécessaire. Encore une fois, je ne sait pas trop pour QBasic. Mais en VB, on ne les met pas. Si on les met, les paramètres deviennent automatiquement ByRef. Ce qui veut dire que la procédure peut modifier les variables passées en paramètres. Pour plus de contrôle, il est recommandé de spécifier s'il s'agit de paramètres ByRef (par référence, i.e. par adresse) ou de paramètre ByVal (par valeur). ByVal signifie que la variable passée en paramètre (dans l'appel de la procédure) ne sera pas modifiée. S'il y a modification de cette valeur dans la procédure, ce sera localement uniquement.
Pour les fonctions:
1 2 3
| Function Addition(param1, param2)
Addition = param1 + param2
End Function |
C'est sensiblement la même chose que pour les procédures, sauf qu'elles retournent une valeur.
Resultat = Addition(5,9) ' Resultat = 14
J'espère que ces explications sont exactes. Je fait confirmer par mon 'chum'.
Partager