Procedures
This page needs a recent browser (with SharedArrayBuffer support). Please update Chrome, Edge, Firefox or Safari to the latest version. · 이 페이지는 최신 브라우저(SharedArrayBuffer 지원)가 필요합니다. Chrome, Edge, Firefox 또는 Safari를 최신 버전으로 업데이트해 주세요.
English
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.
한국어
절차는 이름이 붙은 블록입니다
- 절차란
CALL로 실행하는 이름이 있는 일련의 단계입니다. - 한 번 정의한 후 원하는 만큼 여러 번 호출할 수 있습니다.
PROCEDURE Greet
OUTPUT "Hello!"
ENDPROCEDURE
CALL Greet
CALL Greet // → Hello! (twice)
English
Parameters pass data in
- Put a parameter in brackets to send a value in.
한국어
매개변수는 데이터를 전달함
- 값을 전달하기 위해 대괄호 안에 매개변수를 넣으십시오.
PROCEDURE Greet(Name : STRING)
OUTPUT "Hi, ", Name
ENDPROCEDURE
CALL Greet("Ada") // → Hi, Ada
Explore · 탐색하기
CALL runs it, then comes back
CALL jumps into the procedure, runs its steps, then returns to the next line.
English
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).
한국어
매개변수는 사본입니다
- 매개변수는 전달한 값의 사본입니다.
- 절차 내부에서 변경해도 호출자의 변수에는 영향을 주지 않습니다.
- 결과를 다시 얻으려면 함수 FUNCTION를 사용하고 이를
RETURN해야 합니다(다음 수업).
FUNCTION Double(N : INTEGER) RETURNS INTEGER
RETURN N * 2
ENDFUNCTION
DECLARE X : INTEGER
X ← 5
OUTPUT Double(X) // → 10
English
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.
한국어
로컬 및 글로벌
- 메인 프로그램에 선언된 변수는 글로벌입니다. 절차는 이를 읽고 변경할 수 있습니다.
- 절차 내부에 선언된 변수는 로컬입니다. 같은 이름의 글로벌 변수를 가려버리며, 호출이 끝나면 사라집니다.
- 매개변수 역시 로컬입니다. 이는 사본이기 때문에 매개변수를 변경해도 호출자의 변수에는 영향을 주지 않습니다.
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
English
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.)
한국어
주의사항
- 절차 이름 앞에
CALL를 입력해야 합니다 — 하지만 함수 앞에서는 절대 입력해서는 안 됩니다. - 절차는 값을 다시 줄 수 없습니다; 이것이 함수의 역할입니다.
- (
BYREF는 매개변수를 복사본이 아닌 실제 변수로 만듭니다. 이는 AS 9618 가이드에 포함되어 있지만, IGCSE 0478 2026–2028 커리큘럼에는 포함되지 않으므로 Paper 2에서는 사용하지 마십시오.)
English
Common mistakes
PROCEDURE Name(...) ... ENDPROCEDURE; run it withCALL name(...).- A procedure does a job but returns no value.
한국어
흔한 실수
PROCEDURE Name(...) ... ENDPROCEDURE; 이를CALL name(...)와 함께 실행하십시오.- 절차(procedure)는 작업을 수행하지만 값을 반환하지 않습니다.
English
Now you try
- Define a procedure, then
CALLit. - Press Check answer to test it.
한국어
이제 직접 해보기
- 절차를 정의한 후, 이를
CALL하십시오. - 답안 확인을 눌러 테스트해 보십시오.
Define a PROCEDURE Greet that outputs Hello!, then CALL it twice (so Hello! prints on two lines).
Click Run to see the output here. · 출력을 보려면 '실행'을 클릭하세요.
Define PROCEDURE Greet(Name : STRING) that outputs Hi, then the name, then CALL Greet("Ada"). Output should be Hi, Ada.
Click Run to see the output here. · 출력을 보려면 '실행'을 클릭하세요.
Define FUNCTION Double(N : INTEGER) RETURNS INTEGER that returns twice N. Set X to 5, then output Double(X) (it should be 10).
Click Run to see the output here. · 출력을 보려면 '실행'을 클릭하세요.
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).
Click Run to see the output here. · 출력을 보려면 '실행'을 클릭하세요.