Procedures · Procedimientos
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.
Un PROCEDIMIENTO es un bloque con nombre
- Una procedimiento es un conjunto de pasos con nombre que ejecutas con
CALL. - Defínelo una sola vez, luego llámalo tantas veces como desees.
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.
Los parámetros pasan datos
- Coloca un parámetro entre corchetes para enviar un valor.
PROCEDURE Greet(Name : STRING)
OUTPUT "Hi, ", Name
ENDPROCEDURE
CALL Greet("Ada") // → Hi, Ada
CALL runs it, then comes back · CALL lo ejecuta, luego regresa
CALL jumps into the procedure, runs its steps, then returns to the next line. · CALL salta al procedimiento, ejecuta sus pasos y luego regresa a la siguiente línea.
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 parámetro es una copia
- Un parámetro es una copia del valor que has pasado.
- Modificarlo dentro del procedimiento no modifica la variable del llamador.
- Para devolver un resultado, usa una FUNCIÓN y
RETURN(en la siguiente lección).
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.
Local y global
- Una variable declarada en el programa principal es global. Un procedimiento puede leerla y modificarla.
- Una variable declarada dentro del procedimiento es local. Oculta a una global del mismo nombre y desaparece cuando termina la llamada.
- Un parámetro también es local. Al ser una copia, modificar el parámetro no cambia la variable del llamador.
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.)
Ten cuidado
- Debes escribir
CALLantes del nombre de un procedimiento, pero nunca antes de una función. - Un procedimiento no puede devolver un valor; eso es lo que hace una FUNCIÓN.
- (
BYREFconvierte un parámetro en la variable real en lugar de una copia. Se encuentra en la guía AS 9618, no en el plan de estudios IGCSE 0478 para 2026–2028, por lo tanto, no lo uses en el Examen 2.)
Common mistakes
PROCEDURE Name(...) ... ENDPROCEDURE; run it withCALL name(...).- A procedure does a job but returns no value.
Errores comunes
PROCEDURE Name(...) ... ENDPROCEDURE; ejecútalo conCALL name(...).- Un procedimiento realiza una tarea pero no devuelve ningún valor.
Now you try
- Define a procedure, then
CALLit. - Press Check answer to test it.
Ahora practica
- Define un procedimiento, luego
CALL. - Pulsa Comprobar respuesta para probarlo.
Define a PROCEDURE Greet that outputs Hello!, then CALL it twice · dos veces (so Hello! prints on two lines). · Define un PROCEDURE Greet que imprima Hello!, luego CALL dos veces (para que Hello! se imprima en dos líneas).
Click Run to see the output here. · Haz clic en Ejecutar para ver la salida aquí.
Define PROCEDURE Greet(Name : STRING) that outputs Hi, then the name, then CALL Greet("Ada"). Output should be Hi, Ada. · Define PROCEDURE Greet(Name : STRING) que muestre Hi, seguido del nombre, luego CALL Greet("Ada"). La salida debe ser Hi, Ada.
Click Run to see the output here. · Haz clic en Ejecutar para ver la salida aquí.
Define FUNCTION Double(N : INTEGER) RETURNS INTEGER that returns twice N. Set X to · hasta 5, then output Double(X) (it should be 10). · Define FUNCTION Double(N : INTEGER) RETURNS INTEGER que devuelva el doble de N. Establece X en 5, luego muestra Double(X) (debería ser 10).
Click Run to see the output here. · Haz clic en Ejecutar para ver la salida aquí.
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 es una variable global INTEGER inicializada en 10. Dentro de PROCEDURE AddFive, suma 5 a ese mismo Total. Después de la llamada, muestra Total (es 15).
Click Run to see the output here. · Haz clic en Ejecutar para ver la salida aquí.