Procedures · Procedimentos
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 é um bloco nomeado
- Uma procedure é um conjunto nomeado de passos que você executa com
CALL. - Defina-a uma vez, depois chame-a tantas vezes quanto quiser.
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.
Parâmetros transmitem dados
- Coloque um parâmetro entre colchetes para enviar um valor.
PROCEDURE Greet(Name : STRING)
OUTPUT "Hi, ", Name
ENDPROCEDURE
CALL Greet("Ada") // → Hi, Ada
CALL runs it, then comes back · CALL executa, depois volta
CALL jumps into the procedure, runs its steps, then returns to the next line. · CALL salta para dentro do procedimento, executa seus passos, depois retorna à próxima linha.
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).
Um parâmetro é uma cópia
- Um parâmetro é uma cópia do valor que você enviou.
- Alterá-lo dentro da procedure não altera a variável de quem chamou.
- Para obter uma resposta de volta, use uma FUNCTION e
RETURNela (próxima aula).
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 e global
- Uma variável declarada no programa principal é global. Uma procedure pode lê-la e alterá-la.
- Uma variável declarada dentro da procedure é local. Ela esconde uma global do mesmo nome, e desaparece quando a chamada termina.
- Um parâmetro também é local. É uma cópia, então alterar o parâmetro não altera a variável de quem chamou.
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.)
Atenção
- Você deve escrever
CALLantes do nome de uma procedure — mas nunca antes de uma function. - Uma procedure não pode devolver um valor; isso é o que uma FUNCTION serve para fazer.
- (
BYREFfaz um parâmetro ser a variável real em vez de uma cópia. Está no AS 9618 guia, não no currículo IGCSE 0478 para 2026–2028, então não o use na Prova 2.)
Common mistakes
PROCEDURE Name(...) ... ENDPROCEDURE; run it withCALL name(...).- A procedure does a job but returns no value.
Erros comuns
PROCEDURE Name(...) ... ENDPROCEDURE; execute-o comCALL name(...).- Uma procedure realiza uma tarefa mas não retorna valor.
Now you try
- Define a procedure, then
CALLit. - Press Check answer to test it.
Agora você tenta
- Defina uma procedure, depois
CALLela. - Pressione Check answer para testá-lo.
Define a PROCEDURE Greet that outputs Hello!, then CALL it twice · duas vezes (so Hello! prints on two lines). · Defina um PROCEDURE Greet que saia com Hello!, depois CALL-o duas vezes (para que Hello! imprima em duas linhas).
Click Run to see the output here. · Clique em Executar para ver a saída aqui.
Define PROCEDURE Greet(Name : STRING) that outputs Hi, then the name, then CALL Greet("Ada"). Output should be Hi, Ada. · Defina PROCEDURE Greet(Name : STRING) que saia com Hi, depois o nome, então CALL Greet("Ada"). A saída deve ser Hi, Ada.
Click Run to see the output here. · Clique em Executar para ver a saída aqui.
Define FUNCTION Double(N : INTEGER) RETURNS INTEGER that returns twice N. Set X to · até 5, then output Double(X) (it should be 10). · Defina FUNCTION Double(N : INTEGER) RETURNS INTEGER que retorne duas vezes N. Defina X como 5, depois saia com Double(X) (deve ser 10).
Click Run to see the output here. · Clique em Executar para ver a saída aqui.
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 é uma variável global INTEGER começando em 10. Dentro de PROCEDURE AddFive, adicione 5 a essa mesma Total. Após a chamada, saia com Total (é 15).
Click Run to see the output here. · Clique em Executar para ver a saída aqui.