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.
PROCEDURE إجراء (دالة فرعية)
- الـ procedure (الإجراء) هو مجموعة مسماة من الخطوات تشغلها باستخدام
CALL. - عرّفه مرة واحدة، ثم استدعه مرات متعددة إن شئت.
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.
المعاملات تمرر البيانات داخليًا
- ضع parameter بين قوسين لإرسال قيمة إليه.
PROCEDURE Greet(Name : STRING)
OUTPUT "Hi, ", Name
ENDPROCEDURE
CALL Greet("Ada") // → Hi, Ada
CALL runs it, then comes back · CALL تشغله، ثم تعود
CALL jumps into the procedure, runs its steps, then returns to the next line. · CALL يقفز داخل الإجراء، يشغل خطواته، ثم يعود إلى السطر التالي.
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 is a copy (الـ parameter نسخة)
- الـ parameter هو copy (نسخة) للقيمة التي أرسلتها إليه.
- تغييره داخل الإجراء لا يُغيّر المتغير لدى المُنشئ.
- للحصول على إجابة مسترجعة، استخدم FUNCTION (دالة) واستردّها
RETURN(في الدرس القادم).
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 and global (محلي وعالمي)
- المتعرّف في البرنامج الرئيسي هو global (عالمي). يمكن للإجراء قراءته وتغييره.
- المتعرّف inside (داخل) الإجراء هو local (محلي). يخفي عالمياً بنفس الاسم، ويختفي عند انتهاء الاستدعاء.
- الـ parameter محلي أيضاً. هو نسخة، لذا فإن تغييره لا يُغيّر متغير المنشئ.
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.)
انتبه
- يجب أن تكتب
CALLقبل اسم الـ procedure — ولكن ليس قبل اسم الـ function. - الإجراء لا يستطيع إعادة قيمة؛ هذا دور الـ FUNCTION.
- (
BYREFيجعل الـ parameter هو المتغير الحقيقي بدلاً من نسخة. هو موجود في دليل AS 9618 غير موجود في منهج IGCSE 0478 لعامي 2026–2028، لذا لا تستخدمه في Paper 2.)
Common mistakes
PROCEDURE Name(...) ... ENDPROCEDURE; run it withCALL name(...).- A procedure does a job but returns no value.
أخطاء شائعة
PROCEDURE Name(...) ... ENDPROCEDURE؛ شغله باستخدامCALL name(...).- الإجراء يقوم بمهمة لكن لا يُعيد قيمة.
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). · عرّف PROCEDURE Greet الذي يخرج Hello!، ثم CALLه مرتين (حتى يطبع Hello! في سطرين).
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. · عرّف PROCEDURE Greet(Name : STRING) الذي يخرج Hi, ثم الاسم، ثم CALL Greet("Ada"). يجب أن يكون الإخراج 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). · عرّف FUNCTION Double(N : INTEGER) RETURNS INTEGER الذي يعيد ضعف N. اجعل X يساوي 5، ثم أخرج Double(X) (يجب أن يكون 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). · Total هو متغير عالمي INTEGER يبدأ من 10. داخل PROCEDURE AddFive، أضف 5 إلى نفس Total. بعد الاستدعاء، أخرج Total (قيمته هي 15).
Click Run to see the output here. · اضغط تشغيل لرؤية المخرجات هنا.