Procedures · Procédures
A PROCEDURE is a named block
- A procedure is a named set of steps you run with
CALL. - Define it once, then call it as many times as you like.
A PROCEDURE est un bloc nommé
- Une procédure est un ensemble d'étapes nommé que vous exécutez avec
CALL. - Définissez-la une fois, puis appelez-la autant de fois que vous voulez.
PROCEDURE Greet
OUTPUT "Hello!"
ENDPROCEDURE
CALL Greet
CALL Greet // → Hello! (twice)
Parameters pass data in
- Put a parameter in brackets to send a value in.
Les paramètres font passer des données
- Mettez un paramètre entre crochets pour envoyer une valeur.
PROCEDURE Greet(Name : STRING)
OUTPUT "Hi, ", Name
ENDPROCEDURE
CALL Greet("Ada") // → Hi, Ada
CALL runs it, then comes back · CALL exécute, puis revient
CALL jumps into the procedure, runs its steps, then returns to the next line. · CALL saute dans la procédure, exécute ses étapes, puis retourne à la ligne suivante.
A parameter is a copy
- A parameter is a copy of the value you passed in.
- Changing it inside the procedure does not change the caller's variable.
- To get an answer back, use a FUNCTION and
RETURNit (next lesson).
Un paramètre est une copie
- Un paramètre est une copie de la valeur que vous avez passée.
- Le modifier à l'intérieur de la procédure ne modifie pas la variable de l'appelant.
- Pour renvoyer une réponse, utilisez une FONCTION et
RETURNelle (leçon suivante).
FUNCTION Double(N : INTEGER) RETURNS INTEGER
RETURN N * 2
ENDFUNCTION
DECLARE X : INTEGER
X ← 5
OUTPUT Double(X) // → 10
Local and global
- A variable declared in the main program is global. A procedure can read it and change it.
- A variable declared inside the procedure is local. It hides a global of the same name, and it disappears when the call ends.
- A parameter is local too. It is a copy, so changing the parameter does not change the caller's variable.
Locale et globale
- Une variable déclarée dans le programme principal est globale. Une procédure peut la lire et la modifier.
- Une variable déclarée à l'intérieur de la procédure est locale. Elle cache une globale du même nom, et disparaît quand l'appel se termine.
- Un paramètre est aussi local. C'est une copie, donc modifier le paramètre ne change pas la variable de l'appelant.
DECLARE Total : INTEGER
Total ← 10
PROCEDURE ShowLocal
DECLARE Total : INTEGER
Total ← 3
OUTPUT Total // → 3, the local one
ENDPROCEDURE
CALL ShowLocal
OUTPUT Total // → 10, the global one
Watch out
- You must write
CALLbefore a procedure's name — but never before a function's. - A procedure cannot hand a value back; that is what a FUNCTION is for.
- (
BYREFmakes a parameter the real variable rather than a copy. It is in the AS 9618 guide, not in the IGCSE 0478 syllabus for 2026–2028, so do not use it in Paper 2.)
Attention
- Vous devez écrire
CALLavant le nom d'une procédure — mais jamais avant celui d'une fonction. - Une procédure ne peut pas rendre une valeur ; c'est ce qu'une FONCTION fait.
- (
BYREFrend un paramètre la vraie variable plutôt qu'une copie. C'est dans le guide AS 9618 guide, pas dans le programme IGCSE 0478 pour 2026–2028, donc ne l'utilisez pas en Paper 2.)
Common mistakes
PROCEDURE Name(...) ... ENDPROCEDURE; run it withCALL name(...).- A procedure does a job but returns no value.
Erreurs courantes
PROCEDURE Name(...) ... ENDPROCEDURE; exécutez-le avecCALL name(...).- Une procédure effectue une tâche mais ne retourne aucune valeur.
Now you try
- Define a procedure, then
CALLit. - Press Check answer to test it.
À vous maintenant
- Définissez une procédure, puis
CALL-la. - Appuyez sur Vérifier la réponse pour tester.
Define a PROCEDURE Greet that outputs Hello!, then CALL it twice · deux fois (so Hello! prints on two lines). · Définissez un PROCEDURE Greet qui sort Hello!, puis CALL la deux fois (de sorte que Hello! s'imprime sur deux lignes).
Click Run to see the output here. · Cliquez sur Exécuter pour voir le résultat ici.
Define PROCEDURE Greet(Name : STRING) that outputs Hi, then the name, then CALL Greet("Ada"). Output should be Hi, Ada. · Définissez PROCEDURE Greet(Name : STRING) qui sort Hi, puis le nom, puis CALL Greet("Ada"). La sortie devrait être Hi, Ada.
Click Run to see the output here. · Cliquez sur Exécuter pour voir le résultat ici.
Define FUNCTION Double(N : INTEGER) RETURNS INTEGER that returns twice N. Set X to · à 5, then output Double(X) (it should be 10). · Définir FUNCTION Double(N : INTEGER) RETURNS INTEGER qui retourne deux fois N. Affecter X à 5, puis afficher Double(X) (cela devrait être 10).
Click Run to see the output here. · Cliquez sur Exécuter pour voir le résultat ici.
Total is a global INTEGER starting at 10. Inside PROCEDURE AddFive, add 5 to that same Total. After the call, output Total (it is 15). · Total est une variable globale INTEGER commençant à 10. À l'intérieur de PROCEDURE AddFive, ajouter 5 à cette même Total. Après l'appel, afficher Total (c'est 15).
Click Run to see the output here. · Cliquez sur Exécuter pour voir le résultat ici.