0% found this document useful (0 votes)
14 views20 pages

Pascal Language

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views20 pages

Pascal Language

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 20

‫الوحدة اخلامسة‬

‫لغة ابسكال‬
‫‪Pascal Language‬‬
‫املدقدمة‬
‫متهيد‬
‫مرحبا بك عزيزي ّ‬
‫الدارس إلى الوحدة الخامسة من هذاا القرذررد سراذفا وذد نحذدلفا السذابرة‬
‫أنواع لغات البرمجةد نافسلط الضوء ود هذا الوحذدة علذى إحذد اللغذات نهذد لغذة بااذ ا د التذد‬
‫لعتبر من اللغذات عالةذة القسذتو د نهذد لغذة اذ لة الذتعلأد نألو ذع أن لجذد متعذة وذد لعلق ذاد نهذا‬
‫اآل ذذدد نالن أم ذذب القبرمج ذذون‬ ‫اللغ ذذة عزي ذذزي ال ذ ّذدارس كانذ ذت حت ذذى ن ذذت ريذ ذ‬
‫مس ذذتخدمة ب ذ ذ‬
‫البرمجة‪.‬‬ ‫يتج ون إلى اللغات القوا ة نحو ال دفد ناتتعرف على ها اللغات ود مررر أاالآل‬
‫افسذذتعرأ أنا القحمذ اياااذذةة للبرنذذامي نهذذد لقآلذذز اللغذة عذذن اللغذذات ايخذذري‪ .‬ننانةذذا‬
‫القتبع عذاسة وذد كتابذة البذرامي ةلغذة بااذ ا ‪ .‬ن ّذأ نتحذد‬ ‫العام للبرنامي نهو ال‬ ‫افدرس ال‬
‫عذذن ربذذارلد ا خ ذ ار نذ ّذأ ربذذارلد ا سخذذا د و ذد الجذذزء الخذذامف نتعذذرف علذذى الحلرذذات التك ارريذذة‬
‫بأش ال ا القختلفة‪.‬‬
‫أراو عزيذزي ال ّذدارس أن نسذتقتع اذويا ةد اراذة هذا الوحذدة‪ .‬نأن ذحك بالتذأند وذد أا از ذا‬
‫القختلفةد نلركآلز الرواعد الق قة نالقعلومات الوارسة ود ال فاسيق‪.‬‬

‫أهداف الوحدة‬
‫عزيزي ّ‬
‫الدارس‪،‬‬
‫بعد وراغك من ها الوحدة يفبغد أن لكون اس ار على أن‪:‬‬
‫‪ .1‬تشرح م ونات لغة باا ا ‪.‬‬
‫‪ .2‬تميز عفامر لغة باا ا ‪.‬‬
‫‪ .3‬تكتب ةرنامجا ةلغة باا ا ‪.‬‬

‫‪74‬‬
‫‪ .1‬املالمح األساسية للربامج بلغة ابسكال‬
‫مققت لغة باا ا من ب العالأ نة لوس نير د نهو من أعضاء اللجفذة التذد مذققت‬
‫لغذذة ألغذذو د نلطذذورت هذذا اللغذذة حتذذى أمذذبحت مذذن أكثذذر لغذذات البرمجذذة انت ذذا ار و ذذد لغذذة ا ذ لة‬
‫التعلةأ نالتعلأد نلكف ا الن لأ لعد مستخدمة بعد ظ ور اللغات القوا ة نحو ال دف‪.‬‬

‫‪ 1.1‬التعليدقات‬
‫لتة لغذة بااذ ا إم انةذة كتابذة التعلةرذات أن القححظذات التذد لسذاعد علذى و ذأ البرنذامي‬
‫من خح طريرتآلن‪:‬‬
‫ن *)‬ ‫‪ -1‬أن ي ون التعلآلق مح و ار ةآلن (*‬
‫ن {‬ ‫‪ -2‬أن ي ون التعلآلق مح و ار ةآلن }‬
‫إلى اي واس القراةلة ل ا‪.‬‬ ‫يتجاه القتراأ أي نص م توب بعد *) أن {حتى ي‬

‫‪ 1.1‬الثوابت‬
‫ذذد نحتذذا أن نسذذتخدم قةقذذا ناةتذذة اذذقن البرنذذاميد وقذذثح عفذذد حسذذاب معاسلذذة الذذدا رة و نفذذا‬
‫نهد قةقة ناةتة‪.‬‬ ‫نحتا إلى قةقة ‪  3.14‬‬
‫لتعريف الثواةت ود لغة بس ا نستخدم ال ةغة التّالةة‪:‬‬

‫< قيمة > "=" < اسم الثابت > ‪Const‬‬

‫مثـال (‪)1‬‬
‫; ‪Const N = 200‬‬
‫;’‪St_Name = 'Ahmed Talab‬‬

‫‪75‬‬
‫معلومــة‬

‫‪ .1‬لتكون ةرامي باا ا من ربارات لفت د ك ربارة بالفاملة‬


‫القفروطة ";"‪.‬‬
‫‪ .2‬يق ن أن لتج أز العبارات إلى عدة أاطر (نستفآلد من ها‬
‫القآلزة ااتخدام الفراغات عفد لفظةأ ةرنامجفا)‪.‬‬
‫من الرموز‬ ‫‪ .3‬لتكون اياقاء ود لغة بس ا بأي طو نريد‬
‫شريطة أن يبدأ اااأ بحرف من ‪ A-Z‬أن ‪ a-z‬أن "_"د لكن‬
‫القتراأ ي تفد ورط بأن ‪ 63‬رم اّز‬

‫‪ 1.1‬املتغريات ‪Variables‬‬
‫القتغآلرات هد‪ :‬ربارة عن أاقاء مساحات من الااكرة لستخدم لتخزين عفامر‬
‫متفوعة نمتعدسة من القعلوماتد نلفرسأ القتغآل ار ت ود لغة بس ا إلى اينواع التّالةة‪:‬‬
‫حقيقية (‪)Real‬‬
‫ّ‬ ‫أ‪.‬‬
‫لخزن ايعداس الحقةقةة ود ازأين من الكلقةد الجزء اين يخزن فةه الكسر نيسقى‬
‫القانتةسا )‪ (mantissa‬أن الخانات الكسرية القؤنرةد أما الجزء الثاند فةخزن فةه الروة‪.‬‬
‫ب‪ .‬صحيحة (‪)Shortint, Byte , Integer, Word Longint‬‬
‫وذد حجذأ موااذع‬ ‫يق فك ااتخدام أنواع مختلفذة لإلعذحن عذن ايعذداس ال ذحةحةد لختلذ‬
‫ذذة لك ذ ّ نذذوع نوذذد إم انةذذة لقثآلذ ايعذذداس السذذالبةد نالجذذدن التّذذالد يواذ أن ذواع‬ ‫التخذزين القخ‬
‫القتغآلرات ال حةحة‪.‬‬

‫‪76‬‬
‫نوع المتغير‬ ‫حجمه‬ ‫القيمة الدنيا‬ ‫القيمة العظمي‬
‫‪Shortint‬‬ ‫‪1 Byte‬‬
‫‪28  1‬‬ ‫‪27  1‬‬
‫‪Byte‬‬ ‫‪1 Byte‬‬ ‫‪0‬‬
‫‪28  1‬‬
‫‪Integer‬‬ ‫‪2 Bytes‬‬
‫‪ 215‬‬ ‫‪28  1‬‬
‫‪Word‬‬ ‫‪2 Bytes‬‬ ‫‪0‬‬
‫‪28  1‬‬
‫‪Longint‬‬ ‫‪4 Bytes‬‬
‫‪ 2 31‬‬ ‫‪28  1‬‬

‫ج‪ .‬رمزية (‪)Char , String‬‬


‫نظذذأ الترمآلذذز القعرنوذذة مث ذ نظذذام ا ذ د )‪(ASCII‬د ننظذذام‬ ‫يذذتأ لقثآل ذ الحذذرنف حس ذ‬
‫ابسذذد )‪(EBCDIC‬د نالفظذذام اين هذذو نظذذام الت ذذفآلر القةااذذد ايمري ذذد للقعلومذذاتد نالفظذذام‬
‫عذن‬ ‫وذد العذالأد نيختلذ‬ ‫الثاند هو نظذام ي ةذد أم )‪(IBM‬د نهذد مذن أكبذر شذركات الحوااذآل‬
‫الفظذذام اين وذذد أنذذه يبذذدأ ةترمآلذذز الحذذرنف ال ذذغآلرةد نذ ّذأ الحذذرنف الكبآلذرةد نذ ّذأ اير ذذامد أمذذا الفظذذام‬
‫نأ الحرنف ال غآلرة‪.‬‬ ‫نأ الحرنف الكبآلرةد ّ‬ ‫اين فةروم ةترمآلز اير امد ّ‬
‫د‪ .‬منطقية (‪)Boolean‬‬
‫يتأ لقثآل البةانات القفطقةذة ةثفا ةذة ناحذدة ورذط عفذدما لكذون قةقت ذا ناحذدد لعفذى مذحة د‬
‫أن حقةقةذذة نعفذذدما لكذذون قةقت ذذا مذذفر لعفذذد خطذذأ‪ .‬نهفالذذك بعذذم القعذذامحت التذذد لطبذذق علذذى‬
‫الحذدنس البولةانةذةد مثذ ‪ )AND , OR , NOT , XOR( :‬نلسذقى بالقعذامحت القفطقةذةد أي‬
‫لعآلد قةقة ةولةانةة كقا ود الجدن التّالد‪:‬‬

‫‪A‬‬ ‫‪B‬‬ ‫‪A AND B‬‬ ‫‪A OR B‬‬ ‫‪A XOR B‬‬ ‫‪NOT A‬‬
‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬
‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬
‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬
‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬

‫‪77‬‬
‫لإلعحن عن القتغآلرات ود لغة بس ا نستخدم ال ةغة التّالةة‪:‬‬

‫( نوع القتغآلرات )‪ (,.. :‬ااأ القتغآلر ‪( ,) 2‬ااأ القتغآلر ‪Var ) 1‬‬

‫مثـال (‪)1‬‬
‫‪Var‬‬
‫;‪I, j , k:integer‬‬
‫;‪Vat, sum:real‬‬
‫;‪St_Name: string‬‬
‫;‪Bool:Boolean‬‬
‫أسئلة تقويم ذاتي‬

‫عزيزي ّ‬
‫الدارسد‬
‫‪ .1‬نا باخت ار ما القر وس بالثواةت؟‬
‫‪ .2‬انرس مثالآلن لك ‪:‬‬
‫‪ -2‬القتغآلرات ال حةحة‪.‬‬ ‫‪ -1‬القتغآلرات الحقةرة‪.‬‬
‫‪ -4‬القتغآلرات القفطقةة‪.‬‬ ‫‪ -3‬القتغآلرات الرمزية‪.‬‬

‫‪78‬‬
‫‪ .1‬الشكل العام للربانمج‬
‫أازاء هد‪:‬‬ ‫ةرنامي بس ا من نح‬ ‫يتأل‬

‫‪ 1.1‬رأس الربانمج ‪Head of Program‬‬


‫هو ازء اختةذاري ا يذؤنر علذى البرنذاميد نيبذدأ ب لقذة ‪ Program‬يعرب ذا ااذأ يذد علذى‬
‫طبةعة البرامي‪.‬‬

‫‪ 1.1‬التعريفات أو اإلعالانت‬
‫‪Definitions & Declarations‬‬
‫هو الجزء الاي يتأ فةه ا عحن عن الجق القستخدمة ود البرناميد نيتأ ا عحن عن‪:‬‬
‫‪ -1‬أاذذقاء الوحذذدات التذذد مذذن خذذح ا عذذحن عف ذذا نذذتق ن مذذن ااذذتخدام بعذذم‬
‫الذذدنا القتاحذذة وذذد لغذذة بس ذ ا ‪ .‬نيذذتأ ا عذذحن عذذن هذذا الوحذذدات ةوااذذطة ربذذارة ‪Uses‬‬
‫;‪Uses Dos‬‬ ‫نيعرب ا ااأ الوحدة القراس ا عحن عف ا وقثح‪:‬‬
‫وآلتأ من خح هاا ا عحن التعام مع كاوة الدنا نالعبارات التد لحتوي علآل ا الوحدة‪.Dos‬‬
‫‪ -2‬الثواةت‪.‬‬
‫‪ -3‬التعريفات الجديدة القستخدمة ةوااطة كلقة ‪Type‬‬
‫‪ -4‬الحوتات ‪Label‬‬
‫‪ -5‬القتغآلرات‪.‬‬
‫‪ -6‬ا اراءات القستخدمة ةوااطة كلقة ‪.Procedure‬‬
‫‪ -7‬الدنا القستخدمة ةوااطة كلقة ‪.Function‬‬
‫احتةااذات‬ ‫لةف من الضرنري ااتخدام ازء ا عحنات ود البرامي كله أن اذزء مفذهد نلكذن حسذ‬
‫البرنامي‪.‬‬

‫‪ 1.1‬جسم الربانمج‬
‫ه ذذو الج ذذزء ايااا ذذد نه ذذو ا ذذرنري لكتاب ذذة أي ةرن ذذامي نيب ذذدأ ب لق ذذة ‪Begin‬‬
‫البرنامي‪.‬‬ ‫نيفت د ب لقة ‪ ،End‬نبآلف قا مجقوعة من العبارات التد ل‬

‫‪79‬‬
)1(‫مثال‬
Program Example (input, output);
Uses
Graph, Dos, Crt;
Const
No_stud = 50;
low_marks = 5;
high_marks = 100;
subj = 9;
qu = 5;
Type
Student_record = record
Total: integer;
Order: integer;
End
Var
root1, root2: real;
Count, I: integer;
Found: Boolean;
Filler: char ;
S_names:array [1..No_stud] of char ;
S_marks:array[1..No_stud,1..subj] of Byte ;
S_d:array [1..No_stud,1..subj,1..qu] of Word;
Stud_pass: array [1..no_student] of Boolean;
students: array [1..50] of student_record ;
Rec: student_record;
Label
Stop, L1 ;
Procedure proc_name;
Begin
.
.
End;
Function f_name(p_var: var_type): return_type ;
Begin
.
.
func_name:=value ;
End;
Begin
.
.
End.

80
‫أسئلة تقويم ذاتي‬

‫‪ .1‬ما الفرق ةآلن رأس البرنامي ناسأ البرنامي؟‬


‫‪ .2‬اذكر ما يعلن عفه ود رأس البرنامي‪.‬‬

‫‪ .1‬عبارات اإلخراج‬
‫لسذذتخدم لغذذة بس ذ ا العبذذارلآلن ‪ Write‬ن ‪ WriteLn‬لكتابذذة القعلومذذات علذذى ال اشذذة أن‬
‫محدسد نالفرق الوحآلد ةآلف قذا أن ربذارة ‪ WriteLn‬لفرذ القؤشذر إلذى اذطر اديذد بعذد‬ ‫على مل‬
‫إظ ار أن كتابة القعلومات‪.‬‬

‫مثـال(‪)4‬‬
‫;‪Year:=2002‬‬
‫;)’‪WriteLn ('Sudan‬‬
‫;)’‪Write (‘Tabat‬‬
‫;)‪WriteLn (2000‬‬
‫;‪WriteLn‬‬
‫;)‪Writeln (‘Exam’,year‬‬

‫عفد لففآلا ال فرة (ازء من البرنامي) ي ون ا خ ار على الفحو التّالد‪:‬‬

‫‪Sudan‬‬
‫‪Tabat 2000‬‬
‫‪Exam 2002‬‬

‫‪81‬‬
‫معلومــة‬

‫‪ .1‬يق ن أن ي ون مع ربارلد ا خ ار (‪ Write‬ن‪:)WriteLn‬‬


‫‪ ‬ناةت عدسي أن السلد (مح و ار ةآلن واملتآلن علويتآلن)د فة ون‬
‫ا خ ار نفف الثاةت‪.‬‬
‫‪ ‬متغآلر فة ون ا خ ار قةقة القتغآلر‪.‬‬
‫‪ ‬لعبآلر ابري فة ون ا خ ار قةقة التعبآلر الجبري‪.‬‬
‫‪ ‬اشدء فة ون ا خ ار اطر وارغ إذا ااتخدمفا ربارة ‪WriteLn‬‬
‫‪ .2‬إذا كان أن متغآلر بعد ربارلد ا خ ار د (‪ Write‬ن‪)WriteLn‬‬
‫نإا اوف لتأ الكتابة على ا از‬ ‫وتتأ الكتابة على القل‬ ‫ااقا لقل‬
‫الخر اياااد‪.‬‬

‫‪ .4‬عبارات اإلدخال‬
‫لسذتخدم لغذة بسذ ا العبذارلآلن ‪ Read‬ن ‪ ReadLn‬لرذرءة القعلومذات مذن لوحذة القفذالة د‬
‫القتغآلر اين كقا ذكرنا ود ربارلد ا خ ار ‪.‬‬ ‫حس‬ ‫أن من مل‬
‫مثـال (‪)5‬‬
‫القثذا التّذالد يواذ الفذرق ةذآلن ربذارلد ‪ Read‬ن ‪ ReadLn‬د اوتذرأ أن هفذا ملذ‬
‫ي ار إلةة بالقتغآلر ‪ Filename‬يحتوي على القعلومات التّالةة‪:‬‬
‫‪10 20 30 40‬‬
‫‪50‬‬
‫القطلوب ما هد قةقة القتغآلر ‪ D‬عفد لففآلا العبارلآلن التّالآلتآلن‪:‬‬

‫;)‪ReadLn (Filename,A,B,C‬‬
‫;)‪ReadLn (Filename,D‬‬

‫‪82‬‬
‫ةوااذذطة اااذذتدعاء‬ ‫يذتأ إاذذفاس القذةأ ‪ 10,20,30‬للقتغآلذرات ‪ A, B, C‬علذذى الترلآلذ‬
‫اين للعبارة ‪ .ReadLn‬نيفتر بعدها القؤشذر إلذى اذطر اديذد بذالقل د نعلةذه وذ ّن القةقذة ‪50‬‬
‫لر أر ةوااطة اااتدعاء الثاند للعبارة ‪ ReadLn‬نلسفد للقتغآلر ‪ D‬نيتأ لجاه القةقة ‪.40‬‬
‫نعفد ااتبدا ربارة ‪ ReadLn‬ةذ ‪Read‬‬

‫;)‪Read (Filename,A,B,C‬‬
‫;)‪Read (Filename,D‬‬

‫وآلذذتأ إاذذفاس القذذةأ ‪ 10,20,30‬للقتغآلذرات ‪ A,B,C‬علذذى الترلآلذ ‪ ،‬ةوااذذطة اااذذتدعاء‬


‫اين للعب ذذارة ‪ ،Read‬نيبر ذذى القؤش ذذر و ذذد نف ذذف الس ذذطر ب ذذالقل د نعلة ذذه و ذذان القةق ذذة ‪ 40‬لرذ ذ أر‬
‫ةوااطة اااتدعاء الثاند للعبارة ‪ Read‬نلسفد للقتغآلر ‪.D‬‬

‫مثـال (‪)6‬‬
‫طرهذذا ‪ r‬علقذذا بذذان‬ ‫ةرنامجذذا ةلغذذة بسذ ا يرذذوم بحسذذاب مسذذاحة الذذدا رة التذذد ن ذ‬ ‫أكتذ‬

‫‪. area  r‬‬


‫‪2‬‬
‫نورا للقعاسلة‬ ‫مساحت ا لحس‬
‫الحل‪:‬‬
‫;‪Const pi=3.14‬‬
‫‪Var‬‬
‫; ‪Area , r: real‬‬
‫‪Begin‬‬
‫;)’ أدخل قيمة نصف القطر‘( ‪Write‬‬
‫;)‪ReadLn (r‬‬
‫;‪Area:= pi*r*r‬‬
‫;)‪’,area‬مساحة الدائرة =‘(‪WriteLn‬‬
‫‪End.‬‬

‫‪83‬‬
‫مثال(‪)7‬‬
‫‪a‬‬ ‫أكتذ ةرنامجذا ةلغذة بسذ ا يرذوم بحسذاب مسذاحة أي مثلذذز ذا أ الزانيذة ارلفاعذه‬
‫‪1‬‬
‫‪. area ‬‬ ‫ن اعدله ‪ b‬علقا بأ ّن مساحة القثلز لحس نورا للقعاسلة التّالةة‪ab :‬‬
‫‪2‬‬
‫الحل‪:‬‬
‫‪....Var‬‬
‫; ‪Area , a,b: real‬‬
‫‪Begin‬‬
‫;)’ أدخل قيمة طول االرتفاع‘( ‪Write‬‬
‫;)‪ReadLn (a‬‬
‫;)’ أدخل قيمة طول القاعدة‘( ‪Write‬‬
‫;)‪ReadLn (b‬‬
‫;‪Area:= a*b/2‬‬
‫;)‪’,area‬مساحة المثلث =‘(‪WriteLn‬‬
‫‪End.‬‬

‫مثال (‪)8‬‬
‫أكت ةرنامجا ةلغة بس ا يروم بحساب مساحة أي مثلز أاحعه‪ a,b,c‬علقا بأ ّن‬
‫مساحة القثلز لحس نورا للقعاسلة التّالةة‪:‬‬
‫‪abc‬‬
‫‪s ‬‬ ‫‪ . area‬حآلز‬ ‫‪‬‬ ‫)‪s ( s  a )( s  b)( s  c‬‬
‫‪2‬‬
‫الحل‪:‬‬
‫‪Var‬‬
‫; ‪Area , s: real‬‬
‫;‪A,b,c:integer‬‬
‫‪Begin‬‬
‫;)’ أدخل قيم أضالع المثلث ‘( ‪Write‬‬
‫;)‪ReadLn (a, b, c‬‬
‫;‪S:= (a + b + c)/2‬‬
‫;))‪Area:= sqrt(s*(s-a)*(s-b)*(s-c‬‬
‫;)‪’,area‬مساحة المثلث =‘(‪WriteLn‬‬
‫‪End.‬‬ ‫‪End.‬‬

‫‪84‬‬
‫معلومــة‬

‫‪ .1‬الدالة )‪ sqrt(A‬لروم بحساب الجزر التربةعد لعدس ‪ A‬حآلز ‪A‬‬


‫ني ون نالي الدالة )‪ sqrt(A‬عدس حقةرد‪.‬‬ ‫عدس غآلر اال‬

‫تدريب(‪)1‬‬

‫‪ .1‬ما هو إخ ار البرنامي التّالد؟‬


‫;‪Const N=4‬‬
‫‪Var‬‬
‫; ‪A, B, C: shortint‬‬
‫;‪X: real‬‬
‫‪Begin‬‬
‫;‪A:=45‬‬
‫;‪B:=10‬‬
‫;‪C:=A-2*B‬‬
‫;)‪X:=sqrt(C‬‬
‫;)‪WriteLn(X‬‬
‫‪End.‬‬

‫ةرنامج ذ ذذا ةلغ ذ ذذة بسذ ذ ذ ا ير ذ ذذوم بحس ذ ذذاب ا ذ ذذزري القعاسل ذ ذذة‬ ‫‪ .2‬اكتذ ذ ذ‬

‫التربةعةة ‪ ax  bx  c  0‬د علقا ّ‬


‫بأن الرانون العام لحساب ازري‬
‫‪2‬‬

‫‪ b  b 2  4ac‬‬
‫‪x‬‬ ‫القعاسلة يعطد نورا للقعاسلة التّالةة‬
‫‪2a‬‬

‫‪85‬‬
‫أسئلة تقويم ذاتي‬

‫‪ .1‬نا ايخطاء القواوسة على هاا البرنامي‪:‬‬


‫;‪Const NNNM: = 9.81‬‬
‫‪Var‬‬
‫‪A; B: shortint‬‬
‫;‪X: LongReal‬‬
‫‪Start‬‬
‫;’‪A: = ’100‬‬
‫;‪B: = 10‬‬
‫;‪C: = A+B‬‬
‫;)‪Writeline (10‬‬
‫;)‪Readln (10‬‬
‫;)‪A: = sqrt (B‬‬
‫;)‪WriteLn (10,B,X‬‬
‫;‪End‬‬

‫‪ .5‬احللدقات التكرارية‬
‫لدعأ لغة بس ا الحلرات التك اررية من خح ‪:‬‬

‫‪ 1.5‬حلدقة ‪For…Do‬‬
‫نستخدم هاا الفقط من الحلرات التك اررية إذا كان معلوما لديفا مسبرا عدس القرات التد‬
‫نريد وآل ا لكرار العق ‪.‬‬

‫الصيغة العامة‪:‬‬

‫]‪) to [Downto‬القيمة االبتدائية للمتغير(=‪):‬متغير( ‪For‬‬


‫)عبارات بسيطة أو مركبة( ‪) do‬القيمة النهائية للمتغير(‬

‫مذن عذدس مذن العبذارات البسذةطةد نيفبغذد أن لفح ذر ةذآلن‬ ‫العبارة القركبة هد التد لتذأل‬
‫; ‪.Begin... End‬‬
‫‪86‬‬
‫مثـال (‪)9‬‬
‫الحلرة التك اررية التّالةة لروم بحساب مربع ايعداس من ‪10‬إلى‪:30‬‬

‫‪For I:=10 to 30 do‬‬


‫;)‪Writeln(I*I‬‬

‫مثـال (‪)10‬‬
‫الحلرة التك اررية التّالةة لروم بحساب مربع ايعداس من ‪ 30‬إلى ‪:10‬‬

‫‪For I:=30 downto 10 do‬‬


‫;)‪Writeln(I*I‬‬

‫يق ن أن نستخدم العبارة القركبة ود القثا الساةق لتواةح ا ورط‪:‬‬


‫‪For I:=30 downto 10 do‬‬
‫‪Begin‬‬
‫;‪X:=I*I‬‬
‫;)‪Writeln(X‬‬
‫;‪End‬‬
‫مثـال (‪)11‬‬
‫نأ‬
‫اكت ةرنامجا ةلغة بس ا يروم بحساب مجقوع مربعات ايعداس من ‪ 10‬إلى ‪ّ 30‬‬
‫الواط الحساةد ل ا‪:‬‬

‫‪Var‬‬
‫; ‪I, S: integer‬‬
‫‪Begin‬‬
‫;‪S: = 0‬‬
‫‪For I:=10 to 30 do‬‬
‫;‪S: = S +I*I‬‬
‫;)‪Writeln (S,s/21‬‬
‫‪End.‬‬

‫‪87‬‬
‫مثـال (‪)11‬‬
‫ةرنامجا ةلغة بس ا يروم بحساب مجقوع مربعات ايعداس من ‪ a‬إلى ‪ b‬حآلز‬ ‫اكت‬
‫نأ الواط الحساةد ل ا‪:‬‬
‫‪ّ a>b‬‬
‫الحل‬
‫‪Var‬‬
‫; ‪I, S,a,b: integer‬‬
‫;‪Avg: real‬‬
‫‪Begin‬‬
‫;)‪ReadLn (a, b‬‬
‫;‪S:=0‬‬
‫‪For I:=a to b do‬‬
‫;‪S:=S +I*I‬‬
‫;)‪Avg:=S/(b-a+1‬‬
‫;)‪’,S‬مجموع مربعات األعداد = ‘(‪Writeln‬‬
‫;)‪’,Avg‬المتوسط = ‘(‪Writeln‬‬

‫مثـال ( ‪)11‬‬
‫ةرنامجا ةلغة بس ا يروم بحساب مضرنب أي عدس ‪N‬‬ ‫اكت‬
‫الحل‬
‫‪Var‬‬
‫; ‪I,N: shortint‬‬
‫;‪Fact: Longint‬‬
‫‪Begin‬‬
‫;)’ادخل العدد‘( ‪Write‬‬
‫;)‪ReadLn (N‬‬
‫;‪Fact:=1‬‬
‫‪For I:=N downto 1 do‬‬
‫;‪Fact:=Fact*I‬‬
‫;)‪’,Fact‬مضروب العدد = ‘( ‪Writeln‬‬
‫‪End.‬‬

‫‪88‬‬
‫‪Repeat... Until‬‬ ‫‪ 1.5‬حلدقة‬
‫على شرط معآلن‪.‬‬ ‫نستخدم هاا الفقط من الحلرات التك اررية إذا كان لكرار العق يتو‬
‫الصيغة العامة‪:‬‬
‫‪Repeat‬‬
‫)تعبير بولياني( ‪) Until‬أي تتابع من العبارات البسيطة أو المركبة(‬

‫تدريب (‪)1‬‬

‫‪ .1‬اعذذد كتابذذة الب ذرامي ال ذوارسة بايمثلذذة مذذن (مثذذا ‪ )9‬إلذذى (مثذذا ‪ )12‬مسذذتخدما‬
‫ربارة ‪ Repeat... Until‬ةدا عن ربارة ‪For... Do‬‬

‫‪While... Do‬‬ ‫‪ 1.5‬حلدقة‬


‫على شرط معآلن‬ ‫نستخدم هاا الفقط من الحلرات التك اررية إذا كان لكرار العق يتو‬
‫الصيغة العامة‬

‫)ربارات بسةطة أن مركبة( ‪) do‬لعبآلر ةولةاند( ‪While‬‬

‫تدريب (‪)1‬‬

‫‪ )9‬إلذذى (مثذذا ‪)12‬‬ ‫‪ .1‬اعذذد كتابذذة الب ذرامي ال ذوارسة بايمثلذذة مذذن (مثذذا‬
‫مستخدما ربارة ‪ While... Do‬ةدا عن ربارة ‪For... Do‬‬

‫‪89‬‬
‫‪ 5.4‬احللدقات التكرارية املتداخلة ‪Nested Loops‬‬
‫ير ذذد بالحلر ذذات التك ارري ذذة القتداخل ذذة ه ذذد نا ذذوس حلر ذذة ساخذ ذ حلر ذذة بأكقل ذذا نه ذذا بع ذذم‬
‫الحاات القق فة ود ةفاء الحلرات التك اررية القتداخلة‪.‬‬

‫‪For i‬‬ ‫‪For i‬‬ ‫‪For i‬‬


‫‪Begin‬‬ ‫‪Begin‬‬ ‫‪Begin‬‬
‫‪For j‬‬ ‫‪For j‬‬ ‫‪For j‬‬
‫‪Begin‬‬ ‫‪Begin‬‬ ‫‪Begin‬‬
‫‪For k‬‬
‫‪Begin‬‬
‫;‪End‬‬
‫‪For k‬‬
‫‪Begin‬‬
‫;‪End‬‬
‫;‪End‬‬ ‫‪End‬‬ ‫;‪End‬‬
‫;‪End‬‬ ‫;‪End‬‬ ‫;‪End‬‬

‫مثـال (‪)14‬‬
‫ةرنامجا ةلغة بس ا يروم بطباعة ادن الضرب لألعداس القح ورة ةآلن ‪1‬ن‪N‬‬ ‫اكت‬
‫‪Var‬‬
‫; ‪I,J,N: shortint‬‬
‫‪Begin‬‬
‫;)’ادخل العدد‘(‪Write‬‬
‫;)‪ReadLn (N‬‬
‫‪For I:=1 to N do‬‬
‫‪Begin‬‬
‫‪For J:=1 to N do‬‬
‫;)‪Write(I*J:6‬‬
‫;‪WriteLn‬‬
‫;‪End‬‬
‫‪End.‬‬

‫‪90‬‬
‫مثـال (‪)15‬‬
‫ةرنامجا ةلغة بس ا يروم بطباعة م عبات ايعداس القح ورة ةآلن ‪ 0‬ن‪999‬د‬ ‫اكت‬
‫مستخدما مف وم الحلرات التك اررية القتداخلة نل ا معفى‪.‬‬

‫‪Var‬‬
‫; ‪I,J,K: shortint‬‬
‫‪Begin‬‬
‫‪For I:=0 to 9 do‬‬
‫‪For J:=0 to 9 do‬‬
‫‪For K:=0 to 9 do‬‬
‫‪Begin‬‬

‫;‪X:=K+10*J+100*I‬‬

‫;)‪WriteLn(x*x*x‬‬
‫;‪End‬‬
‫‪End.‬‬

‫‪91‬‬
92

You might also like