Procedures · Hàm con (Procedures)
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 là một khối có tên
- Một hàm con là một tập hợp các bước có tên mà bạn thực thi bằng
CALL. - Định nghĩa nó một lần, sau đó gọi nó bất cứ bao nhiêu lần tùy thích.
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.
Tham số truyền dữ liệu vào
- Đặt tham số trong ngoặc đơn để gửi một giá trị vào.
PROCEDURE Greet(Name : STRING)
OUTPUT "Hi, ", Name
ENDPROCEDURE
CALL Greet("Ada") // → Hi, Ada
CALL runs it, then comes back · CALL chạy nó, sau đó quay trở lại
CALL jumps into the procedure, runs its steps, then returns to the next line. · CALL nhảy vào hàm con, chạy các bước của nó, sau đó trả về dòng tiếp theo.
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).
A parameter là bản sao
- Một tham số là một bản sao của giá trị bạn đã truyền vào.
- Thay đổi nó bên trong hàm con không làm thay đổi biến của người gọi.
- Để nhận lại một kết quả, hãy sử dụng FUNCTION và
RETURNnó (bài học sau).
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 và global
- Một biến được khai báo trong chương trình chính là toàn cục. Hàm con có thể đọc và thay đổi nó.
- Một biến được khai báo bên trong hàm con là cục bộ. Nó che khuất một biến toàn cục cùng tên, và nó biến mất khi lời gọi kết thúc.
- Một tham số cũng là cục bộ. Nó là bản sao, nên thay đổi tham số không làm thay đổi biến của người gọi.
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.)
Lưu ý
- Bạn phải viết
CALLtrước tên của một hàm con — nhưng không bao giờ trước một function. - Một hàm con không thể trả về một giá trị; đó là chức năng của FUNCTION.
- (
BYREFbiến tham số thành biến thực tế thay vì bản sao. Nó nằm trong hướng dẫn AS 9618 không nằm trong chương trình IGCSE 0478 cho năm 2026–2028, vì vậy đừng sử dụng nó trong Bài thi 2.)
Common mistakes
PROCEDURE Name(...) ... ENDPROCEDURE; run it withCALL name(...).- A procedure does a job but returns no value.
Lỗi thường gặp
PROCEDURE Name(...) ... ENDPROCEDURE; chạy nó bằngCALL name(...).- Một hàm con thực hiện một nhiệm vụ nhưng không trả về giá trị nào.
Now you try
- Define a procedure, then
CALLit. - Press Check answer to test it.
Bây giờ bạn thử
- Định nghĩa một hàm con, sau đó
CALLnó. - Nhấn Kiểm tra đáp án để thử nghiệm.
Define a PROCEDURE Greet that outputs Hello!, then CALL it twice (so Hello! prints on two lines). · Định nghĩa một PROCEDURE Greet xuất Hello!, sau đó CALL nó hai lần (để Hello! được in trên hai dòng).
Click Run to see the output here. · Nhấn Chạy để xem kết quả ở đây.
Define PROCEDURE Greet(Name : STRING) that outputs Hi, then the name, then CALL Greet("Ada"). Output should be Hi, Ada. · Định nghĩa PROCEDURE Greet(Name : STRING) xuất Hi, sau đó là tên, sau đó CALL Greet("Ada"). Kết quả xuất ra nên là Hi, Ada.
Click Run to see the output here. · Nhấn Chạy để xem kết quả ở đây.
Define FUNCTION Double(N : INTEGER) RETURNS INTEGER that returns twice N. Set X to 5, then output Double(X) (it should be 10). · Định nghĩa FUNCTION Double(N : INTEGER) RETURNS INTEGER trả về hai lần N. Đặt X là 5, sau đó xuất Double(X) (nó nên là 10).
Click Run to see the output here. · Nhấn Chạy để xem kết quả ở đây.
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 là một INTEGER toàn cục bắt đầu từ 10. Trong PROCEDURE AddFive, thêm 5 vào cùng một Total đó. Sau khi gọi, xuất Total (nó là 15).
Click Run to see the output here. · Nhấn Chạy để xem kết quả ở đây.