Pascal Language
Pascal Language
لغة ابسكال
Pascal Language
املدقدمة
متهيد
مرحبا بك عزيزي ّ
الدارس إلى الوحدة الخامسة من هذاا القرذررد سراذفا وذد نحذدلفا السذابرة
أنواع لغات البرمجةد نافسلط الضوء ود هذا الوحذدة علذى إحذد اللغذات نهذد لغذة بااذ ا د التذد
لعتبر من اللغذات عالةذة القسذتو د نهذد لغذة اذ لة الذتعلأد نألو ذع أن لجذد متعذة وذد لعلق ذاد نهذا
اآل ذذدد نالن أم ذذب القبرمج ذذون اللغ ذذة عزي ذذزي ال ذ ّذدارس كانذ ذت حت ذذى ن ذذت ريذ ذ
مس ذذتخدمة ب ذ ذ
البرمجة. يتج ون إلى اللغات القوا ة نحو ال دفد ناتتعرف على ها اللغات ود مررر أاالآل
افسذذتعرأ أنا القحمذ اياااذذةة للبرنذذامي نهذذد لقآلذذز اللغذة عذذن اللغذذات ايخذذري .ننانةذذا
القتبع عذاسة وذد كتابذة البذرامي ةلغذة بااذ ا .ن ّذأ نتحذد العام للبرنامي نهو ال افدرس ال
عذذن ربذذارلد ا خ ذ ار نذ ّذأ ربذذارلد ا سخذذا د و ذد الجذذزء الخذذامف نتعذذرف علذذى الحلرذذات التك ارريذذة
بأش ال ا القختلفة.
أراو عزيذزي ال ّذدارس أن نسذتقتع اذويا ةد اراذة هذا الوحذدة .نأن ذحك بالتذأند وذد أا از ذا
القختلفةد نلركآلز الرواعد الق قة نالقعلومات الوارسة ود ال فاسيق.
أهداف الوحدة
عزيزي ّ
الدارس،
بعد وراغك من ها الوحدة يفبغد أن لكون اس ار على أن:
.1تشرح م ونات لغة باا ا .
.2تميز عفامر لغة باا ا .
.3تكتب ةرنامجا ةلغة باا ا .
74
.1املالمح األساسية للربامج بلغة ابسكال
مققت لغة باا ا من ب العالأ نة لوس نير د نهو من أعضاء اللجفذة التذد مذققت
لغذذة ألغذذو د نلطذذورت هذذا اللغذذة حتذذى أمذذبحت مذذن أكثذذر لغذذات البرمجذذة انت ذذا ار و ذذد لغذذة ا ذ لة
التعلةأ نالتعلأد نلكف ا الن لأ لعد مستخدمة بعد ظ ور اللغات القوا ة نحو ال دف.
1.1التعليدقات
لتة لغذة بااذ ا إم انةذة كتابذة التعلةرذات أن القححظذات التذد لسذاعد علذى و ذأ البرنذامي
من خح طريرتآلن:
ن *) -1أن ي ون التعلآلق مح و ار ةآلن (*
ن { -2أن ي ون التعلآلق مح و ار ةآلن }
إلى اي واس القراةلة ل ا. يتجاه القتراأ أي نص م توب بعد *) أن {حتى ي
1.1الثوابت
ذذد نحتذذا أن نسذذتخدم قةقذذا ناةتذذة اذذقن البرنذذاميد وقذذثح عفذذد حسذذاب معاسلذذة الذذدا رة و نفذذا
نهد قةقة ناةتة. نحتا إلى قةقة 3.14
لتعريف الثواةت ود لغة بس ا نستخدم ال ةغة التّالةة:
مثـال ()1
; Const N = 200
;’St_Name = 'Ahmed Talab
75
معلومــة
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
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
لإلعحن عن القتغآلرات ود لغة بس ا نستخدم ال ةغة التّالةة:
مثـال ()1
Var
;I, j , k:integer
;Vat, sum:real
;St_Name: string
;Bool:Boolean
أسئلة تقويم ذاتي
عزيزي ّ
الدارسد
.1نا باخت ار ما القر وس بالثواةت؟
.2انرس مثالآلن لك :
-2القتغآلرات ال حةحة. -1القتغآلرات الحقةرة.
-4القتغآلرات القفطقةة. -3القتغآلرات الرمزية.
78
.1الشكل العام للربانمج
أازاء هد: ةرنامي بس ا من نح يتأل
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عبارات اإلخراج
لسذذتخدم لغذذة بس ذ ا العبذذارلآلن Writeن WriteLnلكتابذذة القعلومذذات علذذى ال اشذذة أن
محدسد نالفرق الوحآلد ةآلف قذا أن ربذارة WriteLnلفرذ القؤشذر إلذى اذطر اديذد بعذد على مل
إظ ار أن كتابة القعلومات.
مثـال()4
;Year:=2002
;)’WriteLn ('Sudan
;)’Write (‘Tabat
;)WriteLn (2000
;WriteLn
;)Writeln (‘Exam’,year
Sudan
Tabat 2000
Exam 2002
81
معلومــة
.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
مثـال ()6
طرهذذا rعلقذذا بذذان ةرنامجذذا ةلغذذة بسذ ا يرذذوم بحسذذاب مسذذاحة الذذدا رة التذذد ن ذ أكتذ
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علقا بأ ّن
مساحة القثلز لحس نورا للقعاسلة التّالةة:
abc
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
ةرنامج ذ ذذا ةلغ ذ ذذة بسذ ذ ذ ا ير ذ ذذوم بحس ذ ذذاب ا ذ ذذزري القعاسل ذ ذذة .2اكتذ ذ ذ
b b 2 4ac
x القعاسلة يعطد نورا للقعاسلة التّالةة
2a
85
أسئلة تقويم ذاتي
.5احللدقات التكرارية
لدعأ لغة بس ا الحلرات التك اررية من خح :
1.5حلدقة For…Do
نستخدم هاا الفقط من الحلرات التك اررية إذا كان معلوما لديفا مسبرا عدس القرات التد
نريد وآل ا لكرار العق .
الصيغة العامة:
مذن عذدس مذن العبذارات البسذةطةد نيفبغذد أن لفح ذر ةذآلن العبارة القركبة هد التد لتذأل
; .Begin... End
86
مثـال ()9
الحلرة التك اررية التّالةة لروم بحساب مربع ايعداس من 10إلى:30
مثـال ()10
الحلرة التك اررية التّالةة لروم بحساب مربع ايعداس من 30إلى :10
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
تدريب ()1
)9إلذذى (مثذذا )12 .1اعذذد كتابذذة الب ذرامي ال ذوارسة بايمثلذذة مذذن (مثذذا
مستخدما ربارة While... Doةدا عن ربارة For... Do
89
5.4احللدقات التكرارية املتداخلة Nested Loops
ير ذذد بالحلر ذذات التك ارري ذذة القتداخل ذذة ه ذذد نا ذذوس حلر ذذة ساخذ ذ حلر ذذة بأكقل ذذا نه ذذا بع ذذم
الحاات القق فة ود ةفاء الحلرات التك اررية القتداخلة.
مثـال ()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