الدرس ألثالث عشر - الإجراءات و الدوال

الإجراءات و الدوال

الإجراءات :

الإجراءات يعتبر برنامج فرعي . يمكن ان يستدعى من الجزء الرئيسي للبرنامج . يتم الإعلان عن الاجراء خارج الجسم الرئيسي للبرنامج بإستخدام الكلمه procedure . يجب ان تعطي الاجراء اسم مميز . الاجراءات لها بدايه و نهايه خاصه بها . في هذا المثال سوف نتعرف على طريقة الاعلان و الاستدعاء لاجراء اسمه Hello يطبع الكلمه "Hello" على الشاشه .

program Procedures;



procedure Hello;

begin

   Writeln('Hello');

end;



begin

end.

لإستخدام الاجراء يجب ان نقوم بإستدعاءه من خلال اسمه المميز في جسم البرنامج (مكان كتابة شيفره البرنامج)

program Procedures;



procedure Hello;

begin

   Writeln('Hello');

end;



begin

   Hello;

end.

الاجراءات يجب ان تكون دائماً فوق المكان الذي يتم استدعاءه اي يجب ان تقوم بالاعلان عن الاجراء ثم استدعاءه ولا يجوز استدعاء الاجراء قبل الاعلان عنه . في المثال التالي سوف يتم استدعاء اجراء داخل اجراء آخر .

program Procedures;



procedure Hello;

begin

   Writeln('Hello');

end;



procedure HelloCall;

begin

   Hello;

end;



begin

   HelloCall;

end.

يمكن ان تكون للاجراءات بارامترات مثل اي امر تستخدمه . يجب ان تعطي اسم البارامتر و نوعه و سوف يتم استخدامه مثل اي متغير . اذا كنت تريد ان تستخدم اكثر من بارامتر في اجراء واحد يجب ان تكون الفاصله المنقوطه ; هي التي تفصل بينهم

program Procedures;



procedure Print(s: String; i: Integer);

begin

   Writeln(s);

   Writeln(i);

end;



begin

   Print('Hello',3);

end.

المتغيرات العامّه و المحليه :

المتغيرات التي نستخدمها حاليّاً تعتبر متغيرات عامه , اي يمكننها استخدامها في اي وقت و في اي مكان في البرنامج . المتغيرات المحليه يمكن استخدامها فقط بداخل الاجراء و المتغيرات المحليه لا تأخذ مكانها من الذاكره إذا لم يبدأ الاجراء . يتم الاعلان عن المتغيرات المحليه تحت إعلان اسم الاجراء .

program Procedures;



procedure Print(s: String);

var

   i: Integer;

begin

   for i := 1 to 3 do

      Writeln(s);

end;



begin

   Print('Hello');

end.

الدوال :

الدوال تشبه الاجراءات بإستثناء انها تعيد قيمه . الكلمه function تستخدم بدل الكلمه procedure عند تعريف الدوال . لتعريف ما هو نوع البيانات للقيمه العائده يجب ان تستخدم النقطتين : و بعدها نوع البيانات و قبل النقطتين اسم الدالّه .

program Functions;



function Add(i, j:Integer): Integer;

begin

end;



begin

end.

عند اسناد قيمة الداله لمتغير سيجعل المتغير يساوي القيمه المعاده من الداله . اذا استخدمت الداله في شئ مع مثل Writeln سوف يتم طباعة قيمة العائد . لاسناد قيمة العائد انشئ اسم الداله تساوي القيمه التي تريدها ان تكون هي العائد.

program Functions;



var

   Answer: Integer;



function Add(i, j:Integer): Integer;

begin

   Add := i + j;

end;



begin

   Answer := Add(1,2);

   Writeln(Add(1,2));

end.

يمكنك الخروج من اجراء او داله في اي وقت بإستخدام الامر Exit .

program Procedures;



procedure GetName;

var

   Name: String;

begin

   Writeln('What is your name?');

   Readln(Name);

   if Name = '' then

      Exit;

   Writeln('Your name is ',Name);

end;



begin

   GetName;

end.