اكساب ةجمربا ةغلب ةجمربا...

22
1 مدخل إلى البرمج ة بلغة البرمجة باسكال1.1 قدم الم ةة متتالية منلسللبرنامج هو س اعليمات التيهها بوصفة يمكننا تشب إ جبة غذائية , نوتة ماد و عد وسيقية أوتميز ع ذج حياكة, وت نموعي دقستدها ت وكتابت ادا أطول امتد بشكل عام بأنهالحاسوب امج ا نها بر ة ب وضوع البرمجة الخوض بم الشروع وتين. وقبل وعناية فائق د التيمصطلحات من تعريف بعض ال. حقا تأتي1.2 بعضلصفات العام ا ةلبرنامج ل عامة نامج بصورةج البر يحتا إ( برمج هو الم لى من يكتبه وProgrammer , و) إ لى(لمعالج اprocessor ) ( فسير وتنفيذ لتExecution OR Running ) عليمات التوامر أو ا( Instructions OR Commands ية تنفيذ كامل, وتسمى عمل) لبرنامج ا( لمعالجة اProcess ) إنلبرنامج تنفيذ ا متتالية يتم بصورة تعليمة( instruction ) بعد ا خر ى حسب تسلسلها, ما لم ي تم ا بأول نبدأي أنلك. هذا يعن عن غير ذ خبار خارجيا تعليمة وتنفذلثاني ثم ا ةلثال وا ث ة وه كذاوصول لحين ال إ لىتعليمة الخير ا ة. بشكل ج دة مسبقار بطريقة محدغي أن يموذج يمكن هذا الن يد منبرمجحديدات المرنامج وحسب ت ار جزء من البم تكر أن يتما يمكنبرمج ك الم قبل( ام تكرثلما يت م ر) نوتة موسيقية مقطع من كون هذا التأثيرة ي القطعة الموسيقي في ير .. مثن يكون له تأث يجب أ أي برنامج عبار ة عنى شكل مخرجاتر يكون علسوب هذا التأثيلحا امج ا صوت , أما في برة أو معروضة , إما مطبوعاشة.ى الش علولفصل ا ال

Upload: others

Post on 13-Jan-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: اكساب ةجمربا ةغلب ةجمربا ىإau.edu.sy/images/courses/hospitalmgm/1-2/9_computer...اكساب ةجمربا ةغلب ةجمربا ىإ لخدم ةمقملا 1.1

1

باسكال البرمجة بلغة ةالبرمج إلى مدخل

ةالمقدم1.1

أو وسيقيةعداد وجبة غذائية , نوتة مإ يمكننا تشبيهها بوصفة التعليمات البرنامج هو سلسلة متتالية منة نها برامج الحاسوب بشكل عام بأنها أطول امتدادًا وكتابتها تستدعي دقنموذج حياكة, وتتميز ع

من تعريف بعض المصطلحات التي دوعناية فائقتين. وقبل الشروع والخوض بموضوع البرمجة ال ب تأتي الحقًا.

للبرنامج ةالعام الصفات بعض 1.2

إ يحتاج البرنامج بصورة عامة( لى من يكتبه وهو المبرمجProgrammer و ,)لى إأو األوامر التعليمات (Execution OR Runningلتفسير وتنفيذ ) (processorالمعالج)

(Instructions OR Commandsوتسمى عملية تنفيذ كامل ,) البرنامج ( المعالجةProcess) تعليمة يتم بصورة متتالية تنفيذ البرنامج إن(instruction )ما , حسب تسلسلها ى خر ألبعد ا

كذا وه ةثوالثال ةثم الثاني وتنفذ تعليمة خبار خارجيًا عن غير ذلك. هذا يعني أن نبدأ بأولإلتم الم ييد من هذا النموذج يمكن أن يغير بطريقة محددة مسبقًا بشكل ج .ة األخير التعليمةلى إلحين الوصول

ر مثلما يتم تكرا) قبل المبرمج كما يمكن أن يتم تكرار جزء من البرنامج وحسب تحديدات المبرمج مقطع من نوتة موسيقية(

ة عن عبار أي برنامج يجب أن يكون له تأثير .. مثاًل في القطعة الموسيقية يكون هذا التأثير, إما مطبوعة أو معروضة صوت , أما في برامج الحاسوب هذا التأثير يكون على شكل مخرجات

على الشاشة.

الفصل األول

Page 2: اكساب ةجمربا ةغلب ةجمربا ىإau.edu.sy/images/courses/hospitalmgm/1-2/9_computer...اكساب ةجمربا ةغلب ةجمربا ىإ لخدم ةمقملا 1.1

2

لى التأثير المطلوب) مثاًل في وصفة إعداد إكل برنامج يعمل على أشياء محددة للوصولء ألشيااالطعام فإن هذه األشياء ممكن أن تكون اللحوم, الخضار , وغيرها( , أما في البرامج فإن هذه

.تكون بيانات م في العديد من البرامج يجب أن يتم اإلعالن المسبق عن المتغيرات أو البيانات التي سيت

داًء )هذا مشابه لعملية إعداد وجبة طعام حيث يجب أن تحتوي الوصفة ابتاستخدامها وماهية أنواعها ماهية المواد التي ستستخدم وكمياتها(.

لى المعالج وفقاً إربما تكون هناك حاجة أن يترك اتخاذ قرار تنفيذها التعليماتفي بعض ازجة توفر الطماطم الطعداد وجبة طعام يكتب في الوصفة ما يلي " عند إ لشروط معينة.. فمثاًل )عند

دم معجون الطماطم"(ختستخدم بعد نزع القشر وفي خالف ذلك يست ما ألكثر من مرة . عليه طال التعليماتأو مجموعة من تعليمةربما تكون هناك حاجة لتنفيذ

دد حدد.. ممكن انجاز ذلك إما بتحديد عيفإن عدد مرات التكرار يجب أن ايرد تكراره تعليمة هناكلية دقيقة( أو بفحص حالة تكون من ضمن العم 30لتكرار )مثاًل يوضع الطعام على النار لمدة مرات ا

)مثاًل وضع الطعام على النار لحين أن ينضج(

IDENTIFIERSمعرفات ال 1.3

كل البرامج تحوي على نوعين من الرموز:لرموز سكال تستخدم هذه الى اللغة .. ففي لغة البرمجة باإ وهي الرموز التي تعود.. النوع األول

ل ( أو على شك :, ;, + , =:, )( , -بطريقتين , إما أن تكون على شكل رمز واحد أو اثنين مثل ) :كلمات تسمى الكلمات المحجوزة مثل

begin,if,else,repeat,while,until,then,end) ) ل سية مثما أن تكون معرفات قياإرامج فوهي عبارة عن رموز تستخدم في الب المعرفاتهو :النوع الثاني

(integer, real, write, sqrt, …etcأو أن تكون معرفات يتم اختيارها من قبل المبرمج . هذه ) هو رمز أو أكثر يستخدم في المتغيرو ( variablesالمعرفات األخيرة نسميها أيضًا المتغيرات )

لى محتوى موقع في الذاكرة.إالبرنامج ليشير

Page 3: اكساب ةجمربا ةغلب ةجمربا ىإau.edu.sy/images/courses/hospitalmgm/1-2/9_computer...اكساب ةجمربا ةغلب ةجمربا ىإ لخدم ةمقملا 1.1

3

\\:يرالمتغ في أغلب لغات البرمجة فإن المتغير هو مكان لتخزين المعلومات , المتغير هو مكان أو موقع في

و غير هما بعد . والمتذاكرة الجهاز حيث يمكن تخزين قيمة بداخله ثم إمكانية استعادة هذه القيمة في أو سلسلة حرفية ) وممكن حرف واحد أو تعبير منطقي(. عدداسم يمثل ب

مكن تصور ذاكرة الجهاز على أنها مجموعة من المواقع التي تخزن فيها المعلومات ,هذه من المرة الذاك الصفر وتنتهي بحجم الذاكرة , تعرف هذه األرقام بعناوين المواقع مرقمة بشكل متسلسل تبدأ من

ن ًا دو ليه سريعإة عنونة ملصقة على أحد المواقع بحيث تستطيع الوصول اق, سيمثل اسم المتغير بط وين وعندلى أحد هذه العناإالعناوين الحقيقة في الذاكرة ) لذا فإن المتغير سيشير لى معرفةإالحاجة

ع المتغير ويض إليهلى العنوان الذي يشير إ( سيذهب compilerوضع قيمة في المتغير فإن المترجم ) يهإلشير لى العنوان الذي يإهب فيه القيمة , وكذلك عندما نريد أن نعرف قيمة المتغير فإن المترجم يذ

المتغير ويقرأ القيمة التي فيه ( ا إليه ممكن أن يشيرمن ال هذه الفكرة والتي تبين بعض المواقع في الذاكرة والتي سابقيعرض الشكل ال

المتغير

رف واحد ,مجموعة حروف, أو حروف وأرقام على أن يكون أول رمز حرف حتتكون المتغيرات من

متغيرات مقبولة . ها( هذه جميعx, b, jasim, endofpoint, hind6, x345مثل)

Page 4: اكساب ةجمربا ةغلب ةجمربا ىإau.edu.sy/images/courses/hospitalmgm/1-2/9_computer...اكساب ةجمربا ةغلب ةجمربا ىإ لخدم ةمقملا 1.1

4

( والسبب أن المتغير first name, next.word, 15mayأما المتغيرات التالية فهي غير مقبولة )ي ولة فاألول يحوي على فراغ والثاني يحوي على نقطة أما األخير فهو يبدأ برقم وهذه جميعها غير مقب

البرنامج.ظهور للمتغير يكون في قسم اإلعالن عن المتغيرات حيث يتم اإلعالن عن المتغير ويحدد إن أول

حرف , (string( , نص كتابي )real) حقيقيمثاًل , (integerصحيح ) عددنوعه)أي هل هو (character)..الخ)

الذي إن اختيار المتغير من قبل المبرمج تعتبر مسألة مهمة ويفضل أن يعكس المتغير المعنى ر خآ( مع الجمع وإذا ما استخدم متغير sumيستخدم ألجله المتغير فمثاًل يفضل استخدام المتغير )

تغير فمثاًل يفضل استخدام م لى إشكال , وكذلك يفضل أن ال يكون المتغير طويالً إفإن ذلك لن يؤدي احد متغير من حرف و من حرف واحد عندما نستخدمه في برنامج قصير وال يتكرر كثيرًا , أما استخدام

ويستخدم بشكل متكرر وبأجزاء متكررة في برنامج طويل فإنه يعتبر اختيار سيء بالرغم من أنه ال يعيق عمل المعالج.

CONSTANTSالثوابت 1.4

كن أنفي بعض البرامج نحتاج إلى استخدام قيم ربما تكون معروفة مسبقًا قبل تنفيذ البرنامج وال يملثابتة ا( هذه القيم 3.1415926536( والتي تكون قيمتها )πامج مثل النسبة الثابتة)تتغير داخل البرن

ف تعر لى متغير , جميعها ممكن أنإسواء كانت ذات قيمة معروفة مسبقًا أو أي قيمة ممكن أن تسند عادة بحقل خاص يدعى حقل اإلعالن عن الثوابت وهذا الحقل يسبق حقل اإلعالن عن المتغيرات

:ليوكما يConst Pi = 3.1415926536; Error = 'Run_Time Error' ;

Page 5: اكساب ةجمربا ةغلب ةجمربا ىإau.edu.sy/images/courses/hospitalmgm/1-2/9_computer...اكساب ةجمربا ةغلب ةجمربا ىإ لخدم ةمقملا 1.1

5

أسباب استخدام الثوابت: داخل البرنامج فإن المبرمج يفضل أن يصفه باسم إذا كان هناك عدد يستخدم بشكل متكرر

وبعدها باإلمكان استخدام االسم الموصوف في القسم التنفيذي.، ضمن حقل اإلعالن عن الثوابت تخدام حقل الثوابت لتسمية متغيرات من نوع السالسل الحرفية والتي تستخدممن الممكن اس

بشكل متكرر في مخرجات البرنامج.ما مثال: نفرض أننا نحتاج إلى طباعة اسم جامعة مثاًل بشكل متكرر في البرنامج, ممكن أن نقوم ب

يلي:

Const University = 'Andlus university '; Underline = '-----------------------------------------' ;

:ما يليكو ثوابت في البرنامج ك ةستخدام األسماء المعرفان من الممكن اآلWriteln ( university ) ;

Writeln ( underline );

DATA البيانات1.5

ر ا تتغيالبيانات في البرنامج إما أن تكون قيمته ثابتة أو متغيرة) إن قيمة المتغير ربمكل عنصر من هذا خالل تنفيذ البرنامج( كل متغير ) والذي هو بيانات( في البرنامج يجب أن يكون له نوع وبموجب

ممكن ن الم لتيالنوع سيتم تحديد المساحة الخزنية الالزمة لقيمة هذا المتغير , وكذلك تحدد العمليات ا :تستخدم في لغة البرمجة باسكال هيجراؤها على هذا المتغير واألنواع القاسية التي إ

Page 6: اكساب ةجمربا ةغلب ةجمربا ىإau.edu.sy/images/courses/hospitalmgm/1-2/9_computer...اكساب ةجمربا ةغلب ةجمربا ىإ لخدم ةمقملا 1.1

6

: INTEGERSاألعداد الصحيحة 1.5.1

. فالصفر عدد فاصلةاألعداد الصحيحة هي كل األعداد الموجبة والسالبة التي ال تحتوي على ( فهي 1.45-و 123.345. أما ) عدد صحيح أيضاً 23-هو عدد صحيح و 567صحيح و صحيحة . إن أعلى قيمة وأدنى قيمة لعدد صحيح ممكن تمثيله في الحاسوب تختلف من اً ليست أعداد

:التالية لتعليماتحاسوب آلخر , ويمكن معرفة هذه القيم في أي حاسوب باستخدام ا maxint لمعرفة أعلى قيمة نستخدم

maxint-لمعرفة أدنى قيمة نستخدم م فإن لى حدوث خطأ وبشكل عاإمحاولة الستخدام قيم خارج نطاق الحدود العليا والدنيا سيؤدي ةأي إن

رس.لى العمليات الرياضية في العدادات والفهاإالمتغيرات من نوع األعداد الصحيحة تستخدم إضافة ( Div, Mod ,* ,- ,+الرياضية التي تستخدم مع األعداد الصحيحة هي ) العمليات

على التوالي ) الجمع , الطرح , الضرب , القسمة , وحساب باقي القسمة ( وهيحتوي األعداد الحقيقية أي التي ت الناتج من( تستخدم للقسمة لكن /يجب أن نالحظ هنا أن العالمة )

.فاصلةعلى

//أمثلة:2 Div 3 = 0

2 / 3 = 0.66666667

5 Div 1 = 5

5 / 1 = 5.0

5 Div 2 = 2

Page 7: اكساب ةجمربا ةغلب ةجمربا ىإau.edu.sy/images/courses/hospitalmgm/1-2/9_computer...اكساب ةجمربا ةغلب ةجمربا ىإ لخدم ةمقملا 1.1

7

2+3*4 = 14

(2+3) * 4 = 20

أولا ساقواأل داخل ينفذ هنا

5 mod 2 = 1

7 mod 4 = 3

ويصرح عن األعداد الصحيحة بلغة البرمجة باسكال في حقل اإلعالن عن المتغيرات )سنوضحها ( integerالحقًا( بالدالة )

REAL NUMBERSاألعداد الحقيقية 1.5.2

10.0 , 356.67890- , 12.5 , 0.03مثل فاصلةالتي تحتوي على وهي األعداد رب, ( وهي )الجمع, الطرح , الض/ ,* ,- ,+أما العمليات الرياضية التي ممكن إجراؤها عليها فهي )

ة الدالالقسمة ( ويصرح عن األعداد الحقيقية في لغة البرمجة باسكال في حقل اإلعالن عن المتغيرات ب (real)

//:مالحظه عندة التالي القواعد . تطبق عداد حقيقيةأ أوفاصلة بدون ة صحيحأعداد فإما بطريقتينعداد األل تمث

:األعداد كتابة . العدد في مكان أي في تظهر أن اليمكناصلة الف .1

لعدد ا )يعتبراً أوسالبًا موجب كونه علىة للدالل ( + , - )اإلشارتين حدىإ العدد تسبق أن ممكن .2 .أمامه(اإلشارتين من أي تظهر لم إذا جباً مو ثاًل م(( . Eبالحرف ) )10)العدد ستبدالاب )وذلك ةالعلميتدوين ال بطريقةعداد ألل اتمثي يمكن 3.

.(2.7E-6العلمي كما يلي ) التدوينكتب حسب ي( ) عددال

Page 8: اكساب ةجمربا ةغلب ةجمربا ىإau.edu.sy/images/courses/hospitalmgm/1-2/9_computer...اكساب ةجمربا ةغلب ةجمربا ىإ لخدم ةمقملا 1.1

8

:مالحظه :ةالرياضي العالقات تابةك عند تراعى أن يجب التي الهامة القواعد بعض أدناه بير التعمثاًل ( 1-بالقيمة ) المتغير لضربة مكافئ هي المتغيرات قبل السالب إشارة وضع نإ .1

–(X+Y) 1-كتب يمن الممكن أن*(X+Y) يجب أن تكتب العالقات الرياضية وفقًا للطريقة التي تحددها لغة البرمجة باسكال بحيث تذكر .2

( هذه (X1+3X2)2العالقة الرياضية اآلتية غير مقبولة ) :مثال الرياضية دون اختصار. العملياتكل X1 + 3) *2):العالقة لكي تكون مقبولة في لغة البرمجة باسكال يجب أن تكتب بالشكل التالي

*X2) ) ا في الرياضيات .هالعالقة األولى هي التي تعودنا على استخدام فوع المر العدد)ألن اً صحيح اً لى أي أس بشرط أن يكون األس عددإرفع السالب ممكن أن ي لعددا .3

كانا إذوال يهم فيما اً صحيح اً لى قيمة معينة سيضرب بنفسه عدد من المرات بقدر األس إذا كان عددإ (اً أو موجب اً األساس سالب

فوع إلى أس ال يجوز رفع القيمة السالبة إلى أس عشري )وذلك ألن حساب ناتج العدد المر .4 عشري يتم بحساب اللوغاريتم لألساس , ويضرب هذا اللوغاريتم باألس , وعندها يحسب معكوس

اللوغاريتم , وحيث أن اللوغاريتم للعدد السالب غير معرف لذا ال يمكن إيجاد النتيجة(.غير هذا (XYZ'+34')ها على السالسل الحرفية . مثال إجراؤ العمليات الرياضية ال يمكن .5

( هو سلسلة حرفية وليس عدد أو متغير رقمي )الحظ أنه محصور بين XYZمقبول وذلك ألن ) ( للداللة على أنه سلسلة حرفية (.QUOTATION MARKعالمتي اقتباس )

مالحظة:كن ال يمو مكن استخدام قيم األعداد الصحيحة في التعابير الرياضية التي تستخدم األعداد الحقيقية ) ي

تحول ( قيمة حقيقية فإن القيمة األخرى * ,- ,+, فإذا كانت إحدى القيم ألي من العمليات ) العكس ( إلى حقيقية آليًا قبل تطبيق العملية .

( فيجب أن يكون كال القيمتين حقيقيتين./أما عند استخدام عملية القسمة )

Page 9: اكساب ةجمربا ةغلب ةجمربا ىإau.edu.sy/images/courses/hospitalmgm/1-2/9_computer...اكساب ةجمربا ةغلب ةجمربا ىإ لخدم ةمقملا 1.1

9

Charactersالرموز 1.5.3

شمل التي غالبًا ما نجدها على لوحة المفاتيح والتي توهي كافة الرموز التي تستخدم في الحاسوب و ( , الرموز 9..0( واألرقام )a..z( أو حروف صغيرة)A..Zالحروف األبجدية سواء كانت كبيره )

شكل بوتستخدم (etc.. , % , & , ! , # , ? , / , . ,+األخرى التي نراها على لوحة المفاتيح مثل ) وال charبرمجة باسكال في حقل اإلعالن عن المتغيرات بالدالة مفرد . ويصرح عن الرموز بلغة ال

توجد هناك مجموعة خاصة من الرموز للغة البرمجة باسكال ألن لغة البرمجة باسكال تستخدم موعة الحروف للحاسوب الذي تعمل عليه .مج

إن أكثر مجاميع الحروف هما اثنان ASCII (Americam Standard Code For Information Interchange) EBCDIC (Extended Binary Coded Decimal Information Code)

وكل منهم له صفاته الخاصة به. مالحظة:

:( هو واحد من اثنين' 'كل مايكتب بين عالمتي اقتباس ) ذا كان أكثر من رمز فيعتبر سلسلة حرفية .إ.1 ذا كان إ يعتبر سلسلة حرفية أن بعض الحاالت فيعتبر حرف وممكن في اً واحد اً إذا كان رمز .2

معرفًا كذلك .

مجموعة الحروف لها الخواص والصفات التالية:( مختلف, حيث أن هذه الحروف مرتبة وفقًا ألحد Ordinal Valueكل حرف له عدد ترتيبي )1.

النظامين السابقين .ما من ه( ch1, ch2اًل إذا كان كل من )( لتعيد قيمة العدد الترتيبي , فمثOrdوتستخدم الدالة )2.

ord(ch1) ≠ ord(ch2)فإن ch1 ≠ ch2( وكان charنوع حروف )

Page 10: اكساب ةجمربا ةغلب ةجمربا ىإau.edu.sy/images/courses/hospitalmgm/1-2/9_computer...اكساب ةجمربا ةغلب ةجمربا ىإ لخدم ةمقملا 1.1

10

مالحظة: :العوامل الوحيدة التي تستخدم مع المتغيرات الحرفية هي

(<, <= , = , >= , > ) Ord ('1'), Ord('2'), ord('3')…….,ord('9')

مالحظة: .لى القيم المقابلة إ(ال تحول األرقام ord) لذا فإن الدالة ord('0')≠ 0إن

:لتالية( فيجب استخدام الصيغة اnumلى القيمة المقابلة)إ( chلكي نحول الرقم بالمتغير الحرفي ) .3

Num:=ord('ch') – ord ('0') ; ون ( يجب أن تكون مرتبة وليس بالضرورة أن تكA,B,…..Zاألعداد الترتيبية لألحرف الكبيرة ) .4

متعاقبة .ن وجدت( يجب أن تكون مرتبة وليس بالضرورة أن إ( )a,b……zاألعداد الترتيبية الصغيرة) .5

تكون متعاقبة .ها تؤكدان على أن تكون الحروف مرتبة هجائيًا , ولكن ليس بالضرورة أن يكون ل 5و4 إن الفقرتين

( EBCDICأعداد ترتيبية متعاقبة , فمثاًل في نظام )Ord ('I ' ) = 201

Ord ( 'J ' ) = 209

من نوع عدد صحيح وتعطي القيمة ( فهي تأخذ معامالً ORD(تعمل عكس الدالة )CHRالدالة ) .6 (ordالحرفية المقابلة له , ومدى عمل هذه الدالة هو مدى عمل الدالة )

num: = ord ( ch ) ;

ch: = chr ( num );

Page 11: اكساب ةجمربا ةغلب ةجمربا ىإau.edu.sy/images/courses/hospitalmgm/1-2/9_computer...اكساب ةجمربا ةغلب ةجمربا ىإ لخدم ةمقملا 1.1

11

( فإن الحرف المقابل له num<=9=>0ع األعداد الصحيحة )( من نو num) اً ذا أخذنا رقمإعمليًا .7 :هو وفقًا للصيغة التالية

ch: = chr ( num + ord ( ' 0 ' )) ;

مثاًل chr(3+ord('0')='3' 1.5.4 السالسل الحرفية STRINGS

ة لحرفياوالية من الرموز المبينة في الفقرة السابقة , كذلك يمكن أن تحتوي السالسل وهي عبارة عن متمكن أن تحتوي السالسل الحرفية على عالمات االقتباس . إن يولكن ال اً على فراغ ويعتبر رمز

ن عدد الحرفية تستخدم لتعريف المعلومات غير الرقمية مثل األسماء ,العناوين , وغيرها . إالسالسل ( ويصرح عن السلسلة 255..0الحروف التي تستوعبها السلسلة الحرفية في لغة الباسكال هي )

( STRINGالحرفية في لغة البرمجة باسكال في حقل اإلعالن عن المتغيرات بالدالة ) مثال:

'Xyz' 'Ali Abbas' 'Apollo-17' 'Do you wish to try again'

ل كذلك فإن األرقام عندما تعرف مع السالسل الحرفية تعام الجملة األخيرة تعتبر سلسلة حرفية , كرموز وليس أرقام.

:the boolean expressions التعابير المنطقية 1.6

،(true or falseن وهما )صح أو خطأ( )يوهي التعابير التي تمثل نتيجتها بحالة واحدة من اثنت( عندما 1عبير المنطقي يعيد القيمة )( والتAND, OR, NOTعوامل منطقية وهي ) ةوهناك ثالث

(. وهي تستخدم لوصف أي تعبير FALSE( عندما يكون التعبير )0( والقيمة )TRUEيكون التعبير )

Page 12: اكساب ةجمربا ةغلب ةجمربا ىإau.edu.sy/images/courses/hospitalmgm/1-2/9_computer...اكساب ةجمربا ةغلب ةجمربا ىإ لخدم ةمقملا 1.1

12

. إن أنواع المتغيرات التي تستخدم لهذا الغرض يصرح عنها في حقل ئاً طاأو خ يحاً فيما إذا كان صح ( booleanالمتغيرات بالدالة )

LOGIC OPERATORS المنطقيةالعمليات 1.6.1

( كل منها يتعامل مع التعابير AND, OR, NOTأنواع من العمليات المنطقية وهي ) ةهناك ثالث طية .طية )أي التي تحتوي شرط (. كل واحد من هذه التعابير له تأثير مختلف على التعابير الشر ر الش

ابير التع ن تستخدم بين تعبيرين أو أكثر منأمثلة تبين كيفية استخدام هذه التعابير والتي من الممكن أ الشرطية .

AND If (Str1 = 'a') AND (Str2 = 'b') then

Writeln ( 'Yes, you got it right.' ) ;

ANDجدول الحقيقة للعامل AND (result) Expression 2 Expression 1

true true true false true false false false true false false false

OR

If (Str1 = 'a') OR (Str2 = 'b') then

writeln('Yes, you got it right.');

Page 13: اكساب ةجمربا ةغلب ةجمربا ىإau.edu.sy/images/courses/hospitalmgm/1-2/9_computer...اكساب ةجمربا ةغلب ةجمربا ىإ لخدم ةمقملا 1.1

13

(OR) )أو( ملجدول الحقيقة للعاOR (result) Expression 2 Expression 1

true true true true true false true false true false false false

NOT

NOTجدول الحقيقة للعامل ال أو Output Input false true true false

مالحظة: لعبارةودائمًا يعكس حالة ا اً واحد الً ( يختلف عن العاملين السابقين حيث أنه يقبل مدخNOTالعامل )

التي يدخل عليها فإذا كانت صحيحة يجعلها خاطئة وإن كانت خاطئة يجعلها صحيحة . باسكالة البرمج بلغةة ستخدمالم المتغيرات أنواع أهم جدول:

نوعال لمدىا المالحظات )بايت(الحجم Byte 0 – 255 1 موجبة فقط صحيحةأعداد Word 0 – 65535 2 صحيحة موجبة فقطد أعدا

Shortint -128 – 127 1 صحيحةأعداد Longint -2146473648…2146473647 4 صحيحةأعداد Real 2.9x1039 .. 1.7x1038 6 يةحقيقأعداد

Single 1.5x10-45 ..3.4x1038 4 يةحقيقأعداد Double 5.0x10-324 .. 1.7x1038 8 يةحقيقأعداد

Extended 3.4x10-4932 .. 1.1x104932 10 يةحقيقأعداد

Page 14: اكساب ةجمربا ةغلب ةجمربا ىإau.edu.sy/images/courses/hospitalmgm/1-2/9_computer...اكساب ةجمربا ةغلب ةجمربا ىإ لخدم ةمقملا 1.1

14

Char واحدحرف رقميةغير 1 String 255 حرف رقميةغير 255

Boolean True / False 1 رقميةغير مالحظة:

ما لى حدوث خطأ , هذا الخطأ إإسناد قيمة لمتغير من نوع معين خارج المدى المحدد له سيؤدي إإن لى ظهور نتائج غير متوقعة.إدي ؤ أن يوقف التنفيذ أو أن ي

باسكالة البرمج لغة معة المستخدمة المهم الدوال جدول: بعض

Page 15: اكساب ةجمربا ةغلب ةجمربا ىإau.edu.sy/images/courses/hospitalmgm/1-2/9_computer...اكساب ةجمربا ةغلب ةجمربا ىإ لخدم ةمقملا 1.1

15

مالحظة:ي فنوعان من الدوال .. الدوال القياسية وهي الدوال المعرفة ضمن لغة البرمجة مثل الدوال هناك

ها الحقًا.حوالدوال المعرفة من قبل المستخدم والتي سنشر ،الجدول السابق مالحظة:

بالراديانتقاس الزوايا في الدوال التي تستخدم الزوايا )في لغة البرمجة باسكال ( بما يسمى (Radians, وليس بالدرجات كما هو الحال في الرياضيات ) ولتحويل أي زاوية(angle) من القياس

:نتبع العالقة التالية الراديان لى إبالدرجات Angle ( in radians ): = angle ( in degree ) * Pi / 180

ليًا وض عنها آ( هي النسبة الثابتة وهي من القيم المخزونة في لغة البرمجة باسكال وسيعpiحيث أن ) ( 3.1415926535897932385بقيمتها البالغة )

مالحظة:Ord ( true ) = 1

Page 16: اكساب ةجمربا ةغلب ةجمربا ىإau.edu.sy/images/courses/hospitalmgm/1-2/9_computer...اكساب ةجمربا ةغلب ةجمربا ىإ لخدم ةمقملا 1.1

16

Ord ( false ) = 0

Pred( true ) = false

Succ( false ) = true

:Random numbers generation ةالعشوائي ألعدادتوليد ا 1.7

لغة البرمجة باسكال وذلك من عشوائية وهذا ممكن في عدادلى استخدام أ إتحتاج بعض التطبيقات بشكل عشوائي , وهو يعمل وفقًا لما عددالذي يعمل على توليد (randomخالل استخدام األمر )

:يلي تيس(خدم مع األمرRandomize( حيث يجب أن يسبق استخدام األمر )Random كتابة )

تتراوح قيمها بين عشوائية اً عداد( سيولد أ Randomوبذلك فإن األمر ) ،(Randomizeاألمر ) :مثالموجبة قيمتها أقل من واحد حقيقيةأي أرقام الصفر والواحد

Randomize;

X: = random;

( وفي كل مرة يعاد تنفيذ هذا األمر سنحصل على قيمة جديدةx<=1=>0تكون قيمته ) xريهنا المتغ ضمن نفس المدى.

( الطريقة الثانية هي باستخدام األمرRandomizeأيض )( ًا ثم األمرRandom على أن ) اً دالعشوائي ضمنه ) أي أنه سيولد أعدا العدد( على المدى المطلوب إيجاد Randomيحتوي األمر )

لذي ( واRandomصحيحة موجبة عشوائيًا تتراوح قيمها بين الصفر والعدد المحدد بين القوسين بعد ) :مثال يمثل الحد األعلى

Randomize ;

X: = random ( 100 ) ;

( وفي كل مرة يعاد تنفيذ هذا األمر سنحصل على قيمة x( )0<=x<100هنا تكون قيمة المتغير ) ره حسب طبيعة التطبيق المراد تنفيذه.يجديدة إن المدى المحدد يمكن تغي

( الطريقة الثالثة الستخدام األمرRandom(هي بدون استخدام األمر )randomize وبداًل )( على أن يتم إسناد قيمة للمتغير Random( قبل األمر )Randseedر )منه نستخدم المتغي

Page 17: اكساب ةجمربا ةغلب ةجمربا ىإau.edu.sy/images/courses/hospitalmgm/1-2/9_computer...اكساب ةجمربا ةغلب ةجمربا ىإ لخدم ةمقملا 1.1

17

(randseed) هذه الطريقة هي األفضل ألن الطريقتين السابقتين ستولدان نفس مجموعة القيم عند .لى عشوائية حقيقية , بينما هذه الطريقة ستولد مجموعة إإيقاف البرنامج وإعادة تنفيذه مما ال يؤدي

مختلفة في كل مرة يتم فيها إعادة التنفيذ على أن يتم إسناد قيم مختلفة للمتغير أرقام عشوائية(randseedعند كل تنفيذ . مثال ):

Randseed: = 1200 ;

X: = random ;

OR

Randseed: = 3425 ;

X: = random ( 1000 )

اً أعدادفقًا لها سيولد ( وو 1200قيمة وهي )له ( أسند Randseedفي الحالة األولى فإن المتغير ) ددعفإن randseedأقل من واحد ولو أعدنا التنفيذ مع إسناد قيمة مختلفة للمتغير عشريةعشوائية

ولد أما المثال الثاني فإنه سيولد أرقام عشوائية أكبر من الصفر وأصغر من يعشوائي مختلف س1000)

. ر واختبار البرامجهي البيئة التي يتم فيها إنشاء وتطوي :اللغة البرمجيةبل يذ من قيقبل البرنامج خوارزمية الحل مكتوبة بلغة برمجة ما وتكون مفهومة وقابلة للتنف :امجنالبر

ب.و الحاس اآللة هو برنامج معقد يقرأ البرنامج المكتوب بلغة برمجة ويحوله إلى برنامج مكتوب بلغة :المترجم

. بو سحيث يكون قابل للتنفيذ مباشرة من قبل الحا :نكتب برنامج بسيط بلغة الباسكال :مثال

1. program Test1

تحولتلمقسم التصريح عن ا .2

3. begin

4. {my first program}

5. (* in pascal language *);

6. write ('ok');

7. writeIn ('Hello');

8. end.

Page 18: اكساب ةجمربا ةغلب ةجمربا ىإau.edu.sy/images/courses/hospitalmgm/1-2/9_computer...اكساب ةجمربا ةغلب ةجمربا ىإ لخدم ةمقملا 1.1

18

. okب وضمن بيئة الباسكال ستكون النتيجة و عند تنفيذ هذا البرنامج على الحاس :بشكل عام يتألف البرنامج المكتوب بلغة الباسكال من قسمين رئيسين لذي مستخدمة في القسم الثاني اقسم التصريح والتعريف عن أنواع المعطيات ال :القسم األول

. var يسمى جسم البرنامج الرئيسي ويمكن أن يبدأ هذا القسم بالكلمة المختصرة ة جسم البرنامج الرئيسي الذي هو عبارة عن مجموع من التعليمات المكتوب :القسم الثاني

بلغة الباسكال ويحتوي على اإلدخال وآلية العمل واإلخراج.

يجاد ات الموجودة في هذا القسم تمثل أو تعبر عن خطوات الخوارزمية المراد إمجموعة التعليم إن حلها. :نقوم بشرح البرنامج

عبارة تتضمن اسم البرنامج ويعطي صورة عامة عن مهمة البرنامج وهو غير ضروري 1 )اختياري(.

د لمواقسم التصريح عن المتحوالت المستخدمة في القسم الثاني وتعد هذه المتحوالت كا2 . varاألولية األساسية الالزمة لحل المشكلة ويمكن أن يبدأ بالكلمة المختصرة

تدل على بداية القسم الثاني. beginالكلمة 3 والينفذ. مستخدمتعليق يكون لل4 تعليق )* *(.5 تعليمة تؤدي إلى طباعة على الشاشة بحيث تطبع كل ماهو موجود بين فاصلتين 6

ويبقى مؤشر الكتابة على نفس السطر. علويتين .ولكن تؤدي إلى انتقال المؤشر 6تعطي نفس الخرج بالنسبة للسطر writelnالتعليمة 7

Page 19: اكساب ةجمربا ةغلب ةجمربا ىإau.edu.sy/images/courses/hospitalmgm/1-2/9_computer...اكساب ةجمربا ةغلب ةجمربا ىإ لخدم ةمقملا 1.1

19

يدل على أن البرنامج قد انتهى.8

ل كما يدكاملة عن آلية كتابة البرامج بلغة الباسكال و كما نالحظ أن هذا البرنامج البسيط يعطي صورة خوارزمية حيث تعمل هذه اآللية بالشكل التالي:على تعبير آخر لل

يعطةي اإلجابةة عةن السةؤال المهةم هةذا الشةكل . يمثل هذا الشكل آليةة حةل المسةائل باسةتخدام الحاسةوبعلةةةةى حةةةةل المشةةةةاكل اليوميةةةةة واالجتماعيةةةةة اً كيةةةةف يصةةةةبح الحاسةةةةب قةةةةادر . طالةةةةبالفةةةةي حيةةةةاة واألهةةةةم

واالقتصادية.يجةةاد وطباعةةة مجمةةوع عةةددين إبلغةةة الباسةةكال وذلةةك مةةن أجةةل اً ة نصةةية +برنامجةةاكتةةب خوارزميةة :مثةةال

مدخلين.Start

Input a,b

C a+b

Print c

ي .1

start

Input

a,b

C a+b

Print c

end

Page 20: اكساب ةجمربا ةغلب ةجمربا ىإau.edu.sy/images/courses/hospitalmgm/1-2/9_computer...اكساب ةجمربا ةغلب ةجمربا ىإ لخدم ةمقملا 1.1

20

ر تظهةة write('c')بينمةةا ،cةةةة هةةذه التعليمةةة تطبةةع علةةى الشاشةةة القيمةةة العدديةةة ل writre(c) :1 مالحظةةة على الشاشة. cالحرف أن نقةوم يجةب ننفةذه ولكةن قبةل التنفيةذ ذي:عندما نكتب هذا البرنةامج ضةمن بيئةة الباسةكال والة2مالحظة

بالخطوات التالية: .تصحيحه من األخطاء القواعدية لغة اآللةنقوم بترجمة هذا الملف النصي إلى. ةةةيقوم بهذه الخطوة ال compiler . لتنفيذ.إلى لغة اآللة نقوم با اً عندما يصبح الملف مترجم .عند التنفيذ تظهر لدينا نافذة بيضاء وينتظر إدخال القيم ينتظر إدخال كل من قيمة aوb .

.يوجد في السطر الرابع من البرنامج السابق تعليمة تستخدم إلدخال قيم المتحوالت : 3مالحظة

قيةة لكةي يقةوم حقي اً هنةا تعةرف كةل المتحةوالت بأنهةا أعةداد ; var x,y:realعنةدما نكتةب :4 مالحظةة ماكن المترجم بحجز األماكن المناسبة لها في الذاكرة المؤقتة حيث تسمى هذه األ

حذف عند انتهاء التنفيذ.توتبقى هذه األماكن محجوزة قبل تنفيذ البرنامج وتلغى و ة , كةةل التعليمةةات تقةةع قبةةل كمةةا نالحةةظ مةةن البرنةةامج السةةابق كةةل تعليمةةة )أمةةر( ينتهةةي بفاصةةلة منقوطةة

end. :مراحل كتابة البرامج في لغة الباسكال

y x

Page 21: اكساب ةجمربا ةغلب ةجمربا ىإau.edu.sy/images/courses/hospitalmgm/1-2/9_computer...اكساب ةجمربا ةغلب ةجمربا ىإ لخدم ةمقملا 1.1

21

خوارزمية الحل كتابة البرنامج تنفيذ البرنامج نضع التعليمات بين begin وend.

إضافات مدرس المقرر

Page 22: اكساب ةجمربا ةغلب ةجمربا ىإau.edu.sy/images/courses/hospitalmgm/1-2/9_computer...اكساب ةجمربا ةغلب ةجمربا ىإ لخدم ةمقملا 1.1

22