الفصل الثاني أوامر اإلدخال واإلخراج Input/Output Instructions 2.1 المقدمة جميع اللغات الطبيعية التي يتعامل بها اإلنسان كوسيلة للتخاطب والتواصل لها قوا

ملفّات مشابهة
المحاضرة الثانية

الأول في السي شارب((c#للمبتدائين

مختبر البرمجة والتحليل العددي قسم علوم الجو جمل التحكم والشرط والتكرار المرحلة الثانية PROGRAM CONTROL, CONDITION AND LOOP STATEMENTS الجمل الشرطية :-

) NSB-AppStudio برمجة تطبيقات األجهزة الذكية باستخدام برنامج ( ) برمجة تطبيقات األجهزة الذكية باستخدام برنامج ( NSB-AppStudio الدرس األول ) 1 ( الدرس

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

التاريخ: االمتحان النهائي لمساق برمجة متقدمة תכנות מתקדם موعد أ الزمن: ساعتان فقط الخميس 2017/7/27 )10 عالمات( السؤال األول for او )while الالزمة لما

Microsoft Word - new.doc

المحاضرة الثانية عشر مقاييس التشتت درسنا في المحاضرة السابقة مقاييس النزعة المركزية أو المتوسطات هي مقاييس رقمية تحدد موقع أو مركز التوزيع أو البيانات

ABU DHABI EDUCATION COUNCIL Abu Dhabi Education Zone AL Mountaha Secondary School g-12 science section Mathematics Student Name:.. Section: How Long i

Microsoft Word - C#2

Microsoft Word - Excel VBA

مدرسة هارون الرشيد الثانوية للبنين المهارات العملية / تكنولوجيا المعلومات ( الثاني عشر) إعداد/ أ. خالد الح

صفوت مصطفي حميد ضهير مدرسة الدوحة الثانوية ب أي خطأ طباعي أو إثناء التحويل من صيغة آلخري يرجي إبالغي به والخطأ مني ومن الشيطان أما توفيقي فمن هللا عرف

دليل المستخدم لبوابة اتحاد المالك التفاعلية

Microsoft Word - Sample Weights.doc

الفصل الثاني

كيفية تفعيل خدمة IIS ونشر موقع ويب على الشبكة احمللي السالم عليكم اصدقائي الكرام في هذا الكتاب سنتناول ما هي خدمة المعلومات وكيفية التفعيل ونشر الموقع

Slide 1

مكونات الحاسب الآلي

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

بسم هللا الرحمن الرحيم المادة: مقدمة في بحوث العمليات )100 بحث ) الفصل الدراسي األول للعام الدراسي 1439/1438 ه االختبار الفصلي الثاني اسم الطالب: الرق

مكثف الثالثة الوحدة البوابات املنطقية 1 هاتف : مدارس األكاد م ة العرب ة الحد ثة إعداد المعلم أحمد الصالح

ورقة عمل الدرس الثاني تطبيقي اخلاص على هاتفي... برنامج App Inventor اعداد املعلمة : اماني ممدوح املصري مدرسة امحد شوقي الثانوية للبنات اختار اإلجابة ا

بسم هللا الرحمن الرحيم االسئلة المتوقعه لمادة الحاسوب م 3 شتوية 2016 االستاذ نور الدين بني عطا االسئلة المتوقعه على مادة الحفظ سؤال 1 : وضح

Microsoft Word - Access VBA

الشريحة 1

Slide 1

اردوينو – الدرس الثامن – تغيير درجة الالوان لـ RGB LED

م ارجعة عامة في مادة التكنولوجيا لمصف السادس األساسي الفصل الد ارسي لمعام األول م. السؤال األول :: ضع عالمة ) ( أو عالمة ) ( لما أت : ( ) تس

المحاضرة الرابعة التكامل المحدد Integral( (Definite درسنا في المحاضرة السابقة التكامل غير المحدد التكامل المحدد لها. ألصناف عدة من التوابع وسندرس في ه

Microsoft Word - CO_RT10

The Global Language of Business دليل ارشادي الستخدام صفحة خدمات الشركات األعضاء Members Area 1

Slide 1

السالم عليكم ورحمة هللا وبركاتة كتاب تعلم برمجة االلعاب بأستخدام محرك االلعاب Unity 3D الكتاب مقدم من االستاذ : عماد عارف التوي موقع : Home OF Games ا

Determinants

جامعة حضرموت

اختر عنوان مناسب

برنامج المساعدات المادية الذكي خطوات التقديم للمساعدة المادية...2 خطوات رفع المستندات المرفوضة...10 خطوات التاكد من حالة الطلب

السالم عليكم و رحمة هللا شرح ربط قاعدة بيانات Access بال.. C# مذا ستستفيد من هذا الموضوع!! -معرفة طريقة صنع قاعدة بيانات بالAccess -ربط قاعدة البيانات

How To Make Connection Between Oracle DB Server 9i & Oracle Developer 6i

WHAT’S NEW

1 درس :

الدليل التدريبي لتسجيل منتج البوابة االلكترونية للمطابقة )سابر( الدليل التدريبي لتسجيل منتج 0

الحل المفضل لموضوع الر اض ات شعبة تقن ر اض بكالور ا 2015 الحل المفص ل للموضوع األو ل التمر ن األو ل: 1 كتابة و على الشكل األس. إعداد: مصطفاي عبد العز

Full Mark الفرعين : األدبي والفندقي السياحي الوحدة : األولى النهايات واالتصال إعداد وتصميم األستاذ : خالد الوحش مدرسة أبو علندا الثانوية للبنين

دولة فلسطين و ازرة التربية والتعليم العالي المبحث: تكنولوجيا المعلومات / النظري بسم هللا الرحمن الرحيم مدة االمتحان : ساعتان نموذج تجريبي مجموع العالم

ثنائي القطب ثنائي القطب س 4 مادة العلوم الفيزيائية الكهرباء مميزات بعض ثنائيات القطب غير النشيطة الجذع المشترك الفيزياء جزء الكهرباء مميزات بعض ثنائيا

Microsoft Word - SolutionOOPFinal2011.doc

اجيبي علي الاسئلة التالية بالكامل:

تصحيح مادة الرياضيات شعبة الرياضيات التمرين األول : و أي ان تكون النقط بما أن و و و α β α β α β و منه الشعاعان و غير مرتبطان خطيا إذن النقط من نفس الم

( اختبارات الفروق لعينتين مستقلتين Samples) 2) Independent مان- ويتني( U (Mann-Whitney ب( نحتاج الى ھذا القانون الغراض المقارنة بين مجموعتين او عينتين

الرسالة األسبوعية/ الصف السادس 2018 / 9 - األحد 16 أولياء األمور الكرام : إليكم الرسالة األسبوعية وما سيتم إنجازه هذا األسبوع: األسبوع الماضي : تم اال

الشريحة 1

SP-1101W/SP-2101W eciug niitallatini kciuq 1.0v /

Allomani Warehouse User Guide

ص)أ( المملكة العرب ة السعود ة وزارة التعل م اإلدارة العامة للتعل م بمحافظة جدة الب ان النموذج ة ( تعل م عام ) انفصم اندراسي األول انفترة انثانثت العام

عرض تقديمي في PowerPoint

عرض تقديمي في PowerPoint

I تفريغ مكثف في وشيعة. 1 التركيب التجريبي: L = 40mH وشيعة معامل تحريضها C = 1μF مكثف سعته E = 6V العدة: مولد قوته الكهرمحركة ومقاومتها الداخلية r = 10

Banner – Hold Information SOAHOLD

الموضوع الثالث تحليل التباين ANOVA) (Two Way الثنائي One Depended نلجأ الى ھذا القانون عند توفر متغيرين يتوقع بينھما تداخل او تفاعل (في تحليل التباين

FS Future Series دليل البدء السريع الرجاء قراءة التعليمات التالية من أجل تثبيت وتنشيط 3D. Visualizer برنامج

الدليل التدريبي لطلب شهادة مطابقة إرسالية )للمنتجات المستوردة( البوابة االلكترونية للمطابقة )سابر( الدليل التدريبي لطلب شهادة مطابقة إرسالية )للمنتجات

قسم تكنولوجيا الحاسوب والمهن الصناعية

عربي Sign-Code Website Guide فيما يلي دلي ا ل لطلب اسم مستخدم جديد لConnect Sell من خ لل موقع.Sign-Code يسمح لك الموقع بالدخول اإلداري على اسم المستخد

استمارة تحويل طالب يتعلم في الصف العادي لجنة التنسيب إلى )التقرير التربوي( استمارة لتركيز المعلومات حول العالج المسبق الذي حصل علية الطالب\ة الذي يتعل

كيفية استخدام موقع 4shared لرفع الملفات وتنظيمها على النترنت للمبتدئين. والمتقدمين في الحاسب. كتاب ل ابراهيم شاهين

طبيعة بحته و أرصاد جوية

1

شرح توزيعة Parted Magic السلم عليكم و رحمة ال تعالى و بركاته شرح توزيعة Parted Magic )الصدار الثالث( الفهرس : (1 مقدمة (2 تحميل التوزيعة (

وزارة الرتبية الوطنية امتحان بكالوراي التعليم الثانوي الشعبة: تقين رايضي اختبار يف مادة: الرايضيات اجلمهورية اجلزائرية الدميقراطية الشعبية الديوان الو

المملكة العربية السعودية م ق س ..../1998

1

Microsoft Word - 1-NURSE CALL SYSTEM

2.3 ألعاب احتامل ستلعبون يف هذه الفع الي ة ألعاب احتامل بأزواج وستحل لونها. مالحظة: يجب أن يكون معكم يف هذه الفع الي ة زوج من مكع بات الل عب )حجارة ال

لقانون العام للمساواة في المعاملة - 10 أسئلة وأجوبة

الفرق بين البرمجة الإجرائية و البرمجة المسيرة بالأحداث :

وضح أهمية وصف مظاهر التكوينات الجديدة فى التربة فى مجال مورفولوجيا الأراضى

ص)أ( المملكة العرب ة السعود ة وزارة الترب ة والتعل م اإلدارة العامة للترب ة والتعل م بمحافظة جدة الب ان النموذج ة ( تعل م عام ) انفصم اندراسي األول ان

الواجب المنزلي: اسم الطالب: السؤال األول : أكمل العبارات التالية بما يناسبها: 1- نصف المسافة بين نواتي ذرتين متجاورتين )...( 2- الطاقة الالزمة لنزع اإ

PowerPoint Presentation

المملكة العربية السعودية م ق س ..../1998

5-

riyadh-geeks-mobile-first

التحكم في الجهاز عن بعد باستخدام نظام VNC

المحاضرة العاشرة الجديده لالساليب الكميه في االداره الفصل الثاني لعام 1439 ه للدكتور ملفي الرشيدي يجب الرجوع للمحاضره المسجله لفهم الماده وامثلتها تحل

correction des exercices pendule pesant Ter

Principles of C++ (Precedence)

212 phys.

تحليل الانحــدار الخطي المتعدد

Microsoft Word - QA-Reliability

Microsoft Word - Suites_Numériques_1_sm.doc

درس 02

عرض تقديمي في PowerPoint

أساسيات البرمجة بلغة الجافا

Microsoft Word - intégral 2sc exp.doc

النسخ:

الفصل الثاني أوامر اإلدخال واإلخراج Input/Output Instructions 2.1 المقدمة جميع اللغات الطبيعية التي يتعامل بها اإلنسان كوسيلة للتخاطب والتواصل لها قواعد وضوابط تحدد آلية استخدامها ولما كانت لغات البرمجة تصنف على أنها من اللغات العليا) أي اللغات القريبة من لغات البشر( فكان ال بد وأن تكون لها قواعد تحدد آلية استخدامها لتكون واضحة للمتعامل معها وكذلك للمترجم داخل الحاسوب. عليه فإن هذا الفصل سيوضح هذه القواعد وسنبدأ بمعرفة كيفية تلقيم الحاسوب بالمعلومات وطرق الحصول على النتائج بعد انجاز عمليات الحساب خالل هذا الفصل. 2.2 هيكلية البرنامج PROGRAM CONSTRUCTION يتكون البرنامج بلغة البرمجة باسكال من )ال أرس والجسم ) BLOCK( )HEAD AND وال أرس هو السطر األول في البرنامج ويبدأ بكلمة برنامج باللغة اإلنكليزية ويتبع باسم البرنامج ثم الفاصلة المنقوطة ; وكما يلي: Program programname ; الحظ هنا أنه يجب أن يكون هناك ف ارغ بين كلمة برنامج واسم البرنامج, أما اسم البرنامج فيتم اختياره من قبل المبرمج واستخدام الفاصلة المنقوطة تدل على نهاية العبارة وهي تستخدم مع كل العبار ات في ب ارمج باسكال للداللة على نهاية العبارة وبداية عبارة جديدة عدا بعض الحاالت التي سيتم اإلشارة في حينها 23 لها

يجب أن تظهر الفاصلة المنقوطة في:.1 بعد عبارة أرس البرنامج,اإلج ارء, أو الدالة.2 بعد كل قائمة تعريفات موجودة في حقل اإلعالن عن الثوابت, النوع, والمتغي ارت..3 بين العبا ارت الكاملة في الجزء التنفيذي من البرنامج. من الممكن إهمال الفاصلة المنقوطة بعد العبا ارت التي تسبق األمر )end(. أما جسم البرنامج فيتكون من قسمين األول هو قسم اإلعالن عن الثوابت والمتغي ارت وغيرها والتي سنأتي عليها الحقا وهو يستخدم حسب الحاجة إليه أي ممكن أن نرى ب ارمج ليس فيها هذا القسم بسبب عدم احتياج البرنامج لإلعالن. والقسم الثاني فهو يمثل )اإليعا ازت أو األوامر( ( or instructions )commands التي سينفذها البرنامج وهو يبدأ بكلمة ابدأ باللغة اإلنكليزية )begin( ثم اإليعا ازت الواجب تنفيذها, وينتهي بكلمة نهاية باللغة اإلنكليزية متبوعة بنقطة). end (وعليه فسيكون كل البرنامج كما يلي: Program programname; Declaration section (may or may not contain Type,Const, Var, Uses, Label) Begin Statements ( instructions ) ; End. 24

يفضل عند تسمية البرنامج أن يكون االسم يدل على فعل البرنامج أو وظيفته وال يجوز أن يكون االسم إحدى الكلمات المحجوزة, أو يكون اسم لمتغير مستخدم في البرنامج, وال يجوز أن تستخدم المسافات )الف ارغات( بين أحرف البرنامج, ممكن الستخدام الخط السفلي )_( أو األرقام مع اسم البرنامج. يمكن االستغناء عن أرس البرنامج وسينفذ البرنامج بشكل طبيعي. 2.3 المخرجات والمدخالت input/output في كل برنامج يجب أن تكون هناك مخرجات تبين النتائج التي تم الحصول عليها من البرنامج, وهذه النتائج سيتم عرضها على شاشة الحاسوب باستخدام األمر write()(.)writeln() or إن األمر )write()( يعني اكتب ما موجود بين القوسين على هذا السطر الذي تؤشر عليه. أما األمر )writeln( فهي تعني اكتب على سطر جديد العبارة التي بين القوسين وهذه مفيدة في عملية تنظيم المخرجات. في جميع األحوال سواء استخدمنا writeln()( )write () or فإننا نحتاج إلى وضع ما مطلوب إظهاره على الشاشة بين القوسين. إن ما يوضع بين القوسين سيأخذ حالة من اثنتين: 2.3.1 أن يكون ما بين القوسين محصور بعالمات اقتباس مفردة mark( )single quotion )''( وبهذه الحالة فإن ما موجود بين عالمتي االقتباس سيتم طباعته على الشاشة دون أدنى تغيير وكما هو. مثال: Program Ch2_Program1; Begin Write('Hello World. Prepare to learn PASCAL!!'); End. 25

إن البرنامج بلغة البرمجة باسكال ال يتأثر أو يتحسس لشكل األحرف سواء كانت مكتوبة باألحرف الكبيرة أو األحرف الصغيرة. الحظ ما يلي: أوال : عدم استخدام أو وجود قسم اإلعالن وذلك لعدم وجود ما نعلن عنه. ثانيا : إن مخرجات هذا البرنامج هي العبارة الموجودة بين الشاشة كما يلي: مخرجات البرنامج: ممكن Hello World. Prepare to learn PASCAL!! 26 القوسين بعد كلمة )write( وستظهر على إظهار النتائج بعد أمر الطباعة بطريقة تساعد على تنظيم المخرجات وذلك من خالل تحديد عدد المواقع )كل حرف أو رقم يطبع على موقع واحد ) التي ستطبع عليها النتائج حيث ستطبع القيمة المطلوب طباعتها من اليمين فسيترك ف ارغ من اليسار, والصيغة العامة هي: إلى اليسار, فإذا كان عدد المواقع أكبر من عدد األرقام في العدد Write ( data: fieldwidth); الحظ أن الفاصل بين البيانات والرقم الذي يمثل عرض الحقل هو النقطتان المتعامدتان. مثال: ستكون نتيجة هذين األمرين كما يلي الحظ الفرق,: هنا العالمة )*( تمثل ف ارغ للتوضيح فقط. I: = 2345 ; Writeln( I ) ; Writeln( I: 7 ) ; 2345 ***2345

إضافة إلى إمكانية تحديد عدد المواقع المخصصة للعدد فيمكن تحديد عدد الم ارتب بعد الفاصلة لطباعة العدد الحقيقي وكما يلي: Write ( data: fieldwidth: precision ); حيث أن ) precision (تمثل عدد المواقع المحددة لطباعة العدد الحقيقي. مثال: Writeln( I: 9: 3 ) ; يجب أن تكون )I( عدد حقيقي. في جميع األمثلة أعاله فإن المتغير )I( معرف كعدد صحيح, أما ستختلف وتكون للمثال األول كما يلي: أما بالنسبة للمثال األخير فتكون النتيجة: 2345.000 إذا عر ف كعدد حقيقي فإن النتائج 2.3450000000E+03 2.3E+03 وأخي ار ممكن أن يكون )I( من نوع السالسل الحرفية وبهذه الحالة فإن حقل عدد الم ارتب بعد الفاصلة سوف ال يكون له حاجة. 2.3.2 أما إذا كان ما موجود بين القوسين بعد كلمة ( writeln )write OR ليس ا محصور عالمتي اقتباس فعند ذلك سيعامل ماهو تكون بين موجود بين القوسين على أنه معرف والمعرفات يجب أن لها قيمة لذا فإن الحاسوب سيطبع قيمة المعرف على شاشة التنفيذ. هنا علينا أن نالحظ أن استخدام أي معرف داخل البرنامج يحتاج إلى شرطين: األول: أن يتم اإلعالن عن المعرف في قسم اإلعالن عن المعرفات الذي سبق أن نوهنا عنه فإذا كان ثابتا يعلن عنه في قسم اإلعالن عن الثوابت )CONST( أما إذا كان ا متغير فيعلن عنه في قسم اإلعالن عن المتغي ارت) VAR ( ويحدد نوعه. ولإلعالن عن متغير في قسم المتغي ارت نتبع ما يلي: بدءا نكتب كلمة VAR اآلن نكتب اسم المتغير ويتبع بالنقطتين المتعامدتين ):()COLON( ثم نوع المتغير و تنتهي منقوطة. بفاصلة X: integer ; 27

هذا المتغير هو من نوع األعداد الصحيحة )integer( أي أن القيمة التي يحملها دائما ستكون عدد صحيح. الثاني: أن تكون لهذا المتغير أو الثابت قيمة عند أول استخدام له داخل البرنامج فمثال إذا عرفنا المتغير x لكن كم هي قيمة هذا المتغير, هو عدد صحيح لكن كم!! لذا يجب أن نحدد قيمة الثابت أو المتغير قبل أول استخدام. هذه القيمة التي تحدد للمتغير تأتي من إحدى عمليتين فأما أن تأتي من داخل البرنامج أو تأتي من خارج البرنامج.. لنناقش حالتين: من داخل البرنامج: ويتم ذلك من خالل المعادالت أو التعابير الرياضية أي باستخدام المساواة )assignment(, فمثال نقول: X:=5; هنا استخدمنا المساواة والتي يرمز لها بلغة البرمجة باسكال بالشكل التالي )=:( وبذلك فإن قيمة المتغير )x( ستكون مساوية إلى الة )5(, أو ممكن أن تكون المعادلة على شكل: X:=3*2+5 هنا قيمة )x( تساوي )11( وكذلك ممكن أن تحدد قيمة للمتغير بالمساواة ولكن في حقل اإلعالن عن الثوابت. دائما عند وجود مساواة )=:( فإن الضوابط التالية ستطبق: يجب أن يكون هناك طرفين تفصل بينهما عالمة المساواة, وبذلك ممكن أن نطلق عليها تسمية المعادلة. الطرف األيسر من المعادلة أي الذي يقع على الجانب األيسر من المساواة يكون متغير واحد فقط دائما وال يجوز أن يكون قيمة ثابتة )مثال 6 أو 456 أو 34.2..الخ( وكذلك ال يجوز أن يكزن رمز معرف في حقل اإلعالن عن الثوابت. كذلك ال يجوز أن يحتوي على عالقات رياضية )مثل 6+x (. 28

أما الطرف األيمن فيمكن أن يكون قيمة عددية واحدة أو عالقة رياضية تحتوي على قيم عددية أو عالقة رياضية تحتوي ا متغير واحدا أو متغي ارت أو متغي ارت وقيم عددية.مثال : عند تنفيذ البرنامج فإن X: = 89 ; X: = 34 45 +3; X: = y ; X: = 3 * y +90 ; المترجم سيبدأ بالطرف األيمن من المعادلة دائما ويتم فحص هذا الطرف فإذا كانت فيه متغي ارت فسيبحث المترجم في الخطوات السابقة للتأكد من أن المتغير معرف أوال ثم يجب أن تكون له قيمة قبل هذه الخطوة وتجلب لتعوض عن المتغير في المعادلة )ممكن أن نتخيل الطرف األيمن بعدها تجرى العمليات الحسابية وتكون من اليسار عندها سيصبح عبارة عن مجموعة من الثوابت(, إلى اليمين وحسب أسبقيات العمليات الرياضية المبينة في أدناه, فاألسبقية األعلى تنفذ أوال وإذا تساوت عمليتان باألسبقية فتنفذ العملية التي في اليسار. من ذلك سينتج لنا عددا واحدا بغض النظر عن قيمته, هذه القيمة ستؤول إلى المتغير الذي في الطرف األيسر )دائما القيمة تنتقل من الطرف األيمن للمعادلة إلى المتغير في الطرف األيسر(. يجب أن يكون المتغير الذي على يسار المساواة والمتغير أو المتغي ارت على يمين المساواة من نفس النوع. أسبقيات العمليات الرياضية operator precedence تنفذ العمليات الرياضية وفقا ألسبقياتها المبينة أدناه, دونت العمليات بشكل تنازلي أي العملية ذات األسبقية العليا إلى العملية ذات األسبقية الدنيا: 1. unary, not 2. *, /, mod, div, and, shi, shr 3. +, -, or, xor 4. <, <=, >, >=, <>, =, in من 29

المعامالت )operands( بيت اثنين من العمليات األسبقية تنفذ حسب األسبقية )أي العملية ذات األسبقية العليا أوال ) المعامالت بين اثنين من العمليات المتساوية األسبقية تنفذ من اليسار إلى اليمين ( أي العملية التي في اليسار أوال (. األقواس تنفذ أوال )أي أنها تأخذ أعلى أسبقية (. من خارج البرنامج: وتتم عملية إسناد )إدخال ) قيمة للمتغير أثناء تنفيذ البرنامج وذلك باستخدام أمر الق ارءة )اق أر( read) readln) OR وهي تعني ( اق أر القيمة المطبوعة على شاشة التنفيذ وحملها في الموقع الذي يشار إليه بواسطة المتغير الموجود بين القوسين ), مثال: Program CH2_Program2; Var Num1, Num2, Sum: Integer; Begin {no semicolon} Write ('Input number 1:'); Readln(Num1); Writeln('Input number 2:'); Readln(Num2); Sum: = Num1 + Num2; {addition} Writeln(Sum); Readln; End. 30

مخرجات البرنامج: Input number 1: 20 { Press enter } Input number 2: 15 { Press enter } 35 شرح البرنامج:// أوال : تم استخدام حقل اإلعالن عن المتغي ارت لإلعالن عن المتغي ارت التي ستستخدم في البرنامج وهي )num1,num2,sum( وهي جميعا من نوع األعداد الصحيحة ألن هذا البرنامج صمم للتعامل مع األعداد الصحيحة )يقوم بجمع عددين صحيحين وإظهار النتيجة (. ثانيا : يمكن اإلعالن عن كل متغير بسطر منفصل, ويمكن وضعها جميعا بسطر واحد كما في هذا البرنامج على شرط أن تكون جميع المتغي ارت من نفس النوع )هنا جميعها أعداد صحيحة ) وذلك لغرض تقليل المساحة التي يكتب عليها البرنامج, ويتم الفصل بين متغير وآخر بفاصلة. وطبعا العبارة تنتهي بفاصلة منقوطة. ثالثا : بعد كلمة )begin( نالحظ العبارة التالية semicolon( )no وهي تعني ال تستخدم فاصلة منقوطة, وبما أنها وضعت بين قوسين متوسطين فإن ذلك يعني أنها مالحظة أو تعليق )begin( للمستخدم أو القارئ بعدم استخدام الفاصلة المنقوطة بعد كلمة )comment( هذه العبارة التي اعتبرت تعليق كتبت ووضعت بين قوسين متوسطين ){}(, وبما أنها تعليق فيجب أن ال يكون لها تأثير على تنفيذ البرنامج ( أي أنها ال تعمل أثناء تنفيذ البرنامج ), عليه فسيكون لنا قاعدة أن أي عبارة لغرض التوضيح أو التعليق ممكن كتابتها داخل البرنامج على أن تحاط بقوسين متوسطين وسوف ال تكون جزء من البرنامج أثناء التنفيذ )تهمل(. التعليقات أو المالحظات التي تستخدم إليضاح عمل بعض الدوال واإلج ارءات التي تكون معروفة لدى المبرمج وغير معروفة للمستخدمين, أيضا تستخدم لكتابة بعض المعلومات حول البرنامج )كوقت إنشاؤه أو تحديثه( أو معلومات حول المبرمج نفسه )مثال االسم, العنوان االلكتروني (. 31

التعليقات ممكن أن توضع في أي مكان في برنامج باسكال, ولكن يفضل 32 أن تكتب في بداية البرنامج )في حالة كون المعلومات عن وظيفة البرنامج أو معلومات عن المبرمج ), أو تكتب بجانب األوامر التي تحتاج إلى توضيح. وممكن أن نضع التعليقات بين قوسين متوسطين ){*comments*}( أو بين قوسين عاديين مع نجمة بجانب كل قوس ))*comments*(( وال فرق بين االثنين. اربعا : كما سبق و ذكرنا أن تنفيذ البرنامج يتم بالتسلسل من األعلى إلى األسفل فيبدأ من كلمة برنامج ثم قسم اإلعالن وق ارءة المتغي ارت بعدها ينفذ األمر ابدأ ثم العبارة التي تليها وفي هذا األمر اكتب )الحظ الموجود بين القوسين في األمر اكتب هو محصور بين عالمتي اقتباس لذا فإنه يطبع كما هو( هذه العبارة ستظهر على شاشة التنفيذ وهي تخبر المستخدم ما يلي )أدخل الرقم األول ) وهي بشكل عام يمكن االستغناء عنها دون أن يتأثر البرنامج, )يمكن مالحظة مثل عليها مثال في برنامج للعبة game( ذلك في الب ارمج التي تلعبون ) معينة فإن هناك مالحظات ستظهر على الشاشة إلرشاد المستخدم على الخطوات الواجب اتباعها لتشغيل اللعبة أو اختيار درجة الصعوبة وغيرها ) خامسا : هنا تبدأ عملية الوصول إدخال قيمة للمتغير )num1( وذلك باستخدام األمر )readln(, وعند إلى هذه الخطوة فإن شاشة التنفيذ )الشاشة السوداء( ستظهر ويكون هناك مؤشر صغير على شكل شارحة )-( يظهر ويختفي في موقع على الجانب األيسر من شاشة التنفيذ, هذا المؤشر يخبر المستخدم بأن عليه إدخال قيمة )طباعة قيمة معينة باستخدام لوحة المفاتيح(, وبعد أن نطبع هذه القيمة يتم إعالم البرنامج )المترجم ) بإنجاز العمل وذلك من خالل الضغط على الزر) enter ( في هذه الحالة سيتم ق ارءة القيمة التي طبعت على الشاشة وخزنها في الموقع الذي يؤشر عليه المتغير بين القوسين بعد األمر )readln( وبذلك نكون قد أدخلنا قيمة للمتغير num1( ) )خزنا قيمة ) الموقع الذي يؤشر عليه المتغير بعد هذه الخطوة, وهذا ما أسميه اإلدخال من خارج البرنامج اإلدخال الذي يتم بواسطة المستخدم أثناء تنفيذ البرنامج (. الفرق بين األمر الموجود ( read يدخلها المستخدم ويتوقف واألمرreadln بعد وكالهما يستخدم للق ارء, أن األمر آخر قيمة يتم ق ارءتها فإذا جاء أمر الموقع الذي يؤشر عليه بواسطة المؤشر بعد الق ارءة األولى. read read يق أر المدخالت في أي التي آخر فيبدأ الق ارءة اعتبا ار من

أما األمر readln في القائمة فإن المؤشر سيهمل كل القيم فإنه يعمل بنفس الطريقة مع استثناء واحد. فبعد أن ينتهي من ق ارءة آخر سادسا : األم ارن الالحقان هما مشابهان للخطوتين ال اربعة والخامسة. سابعا : المعادلة )sum:=num1+num2( عند الوصول المتبقية على ذلك السطر وينتقل إلى بداية سطر جديد. األيمن من المعادلة ويعوض عن المتغي ارت الموجودة بما يساويها من قيم ثم قيمة إلى هذه المعادلة فإن المترجم سيبدأ بالطرف إج ارء عملية الجمع على هذه القيم لينتج عن ذلك قيمة واحدة في الطرف األيمن, هذه القيمة ستوضع )تخزن ) في الموقع الذي يؤشر عليه المتغير الموجود في الطرف األيسر, وبذلك فإن المتغير )sum( ستسند له قيمة )تخزن في الموقع الذي يؤشر عليه( من خالل المعادلة وهذا ما أسميه )أي أن المستخدم ال يتدخل في ذلك أثناء تنفيذ البرنامج(. ثامنا : بعد انجاز العمل المطلوب من البرنامج فال بد من إدخال قيمة من داخل البرنامج إعالم المستخدم بالنتيجة المتحصلة من إنجاز أو تنفيذ هذا البرنامج ويتم ذلك من خالل طباعة القيمة المتحصلة والتي هي اآلن موجودة في المتغير,sum لذا تم استخدام األمر اكتب ليطبع ما موجود بين القوسين اللتين بعده, ولما كان ما موجود ضمن القوسين غير محدد بعالمتي اقتباس لذا فإن القسمة التي يحملها هذا المتغير هي التي ستظهر على شاشة التنفيذ تاسعا : األمر األخير هو األمر end begin )end( تنتهي بفاصلة وواضح أنه يعني النهاية )هنا يجب أن نالحظ أننا يمكن أن نستخدم أكثر من مرة بشرط أن يكون هناك أمر آخر أمر منقوطة عدا لكل أمر end begin end فإنه سينتهي بنقطة(, إن األمر بنقطة يعني نهاية البرنامج ككل وكل ما بعد هذا األمر يهمل وكما هو واضح أعاله. أدناه القواعد التي يجب أن تالحظ عند إدخال البيانات المطلوبة:, جميع هذه األوامر end 1. الذي ينتهي يجب أن يتطابق عدد البيانات التي يتم إدخالها مع عدد المتغي ارت المدونة بين القوسين في إيعاز الق ارءة..2 يجب أن يتطابق نوع القيمة المدخلة لمتغير معين مع النوع المعلن لهذا المتغير 33

.3 المتغي ارت المدونة بين القوسين في إيعاز الق ارءة يجب أن تفصل بينها فاصلة إذا كان عددها أكثر من متغير واحد.4 إذا كان هناك أكثر من متغير واحد في إيعاز ق ارءة واحد فيمكن إدخالها جميعا ثم الضغط على الزر enter على أن يفصل بين قيمة وأخرى ف ارغ, أو ندخل القيم واحدة بعد األخرى على أن نضغط الزر enter بعد إدخال كل قيمة..5 ال يجوز أن تكون القيم المدخلة صيغ رياضية )أي قيم بينها عالمات رياضية( 2.4 متغيرات السالسل الحرفية strings variables اآلن نتعلم كيفية إدخال نص كتابي من قبل المستخدم وذلك باستخدام متغي ارت السالسل الحرفية والبرنامج التالي يبين كيفية إدخال متغي ارت السالسل الحرفية وذلك بتحفيز المستخدم لهذا اإلج ارء, مثال: Program CH2_Program3; Var name, surname: String; Begin Write ('Enter your name:'); readln(name); Write('Enter your surname:'); readln(surname); writeln;{new line} writeln;{new line} Writeln('your full name is: ', name,' ', surname); Readln; End. 34

مخرجات البرنامج: Enter your name: Ahmed { enter } Enter your surname: Abass { enter } Your full name is: Ahmed Abass شرح البرنامج: إذا ما نظرنا إلى هذا البرنامج فمن الممكن أن نسجل عدد من المالحظات ونتعلم أشياء جديدة وهي: أوال : تم استخدام المتغيرين )name,surname( من نوع سالسل حرفية )string( ولذلك فعند تنفيذ هذا البرنامج سيتم الطلب من المستخدم إدخال مجموعة من الحروف لكل من المتغيرين وما يتم طباعته أو إدخاله عن طريق لوحة المفاتيح سيذهب مباشرة إلى الذاكرة ويخزن بالموقع المؤشر عليه بواسطة المتغير أعاله. إن هذين المتغيرين يمكن استبدالهما بأي متغير آخر مثال n بدال من name وطبعا ذلك ال يؤثر في البرنامج كما سبق وأن بينا. ثانيا : الحظ في السطرين التاسع والعاشر استخدام األمر writeln دون وجود أقواس بعدهما وهذه العملية تفيد بطباعة سطر فارغ لكل منهما أي أن المؤشر سيتحرك إلى سطر جديد في كل مرة يرد مثل هذا األمر, وهي ألغ ارض تنظيم وترتيب المخرجات ثالثا : أمر الطباعة األخير هو أيضا يختلف عن ذلك الذي سبق وأن تم استخدامه, حيث أنه يحتوي على عدد من العبا ارت داخل القوسين يفصل بين واحدة وأخرى فاصلة, وهذه طريقة يمكن استخدامها مع أوامر الطباعة وذلك بدال من تك ارر أمر الطباعة لكل حالة فيمكن دمجها جميعا بأمر واحد على أن يفصل بين واحدة وأخرى فاصلة. الحظ الجزء األول وضع عالمتي اقتباس is( ):your full name وهذا الجزء سيتم طباعته كما هو كما تعلمنا, إن الفاصلة تعني البدء بأمر write جديد لما يلي الفارزة أي وكأنما نقول name ولذا فهي ستطبع ما يلي الفاصلة وعلى نفس السطر ولما كان المتغير, )write)name(( ليس محدد بعالمتي اقتباس فسيتم طباعة ما يحمله من قيمة, والقيمة التي يحملها هنا هي عبارة عن سلسلة حرفية. بعدها نالحظ الفاصلة ثم تليها عالمتي اقتباس تحدد بينهما ف ارغ لذا فإن أمر الطباعة 35

يشير إلى طباعة ف ارغ حسب حجم الف ارغ المحدد بين عالمتي االقتباس وأخي ار يأتي أمر الطباعة للمتغير )surname( وسيتم طباعة قيمته والتي هي سلسلة حرفية. ممكن إعادة كتابة البرنامج السابق ولكن باستخدام الثوابت لنالحظ كيفية استخدام الثوابت, جزء من البرنامج ممكن أن يكون حقل الثوابت, وهذا يختلف عن المتغي ارت حيث أن المعرف في هذا الحقل تبقى قيمته ثابتة ولكن تم استخدام المعرف المعرف ألننا في البرنامج وال يمكن تغييرها, هذا البرنامج ال يختلف كثي ار عن البرنامج السابق name حرفية. كقيمة ثابتة ولذلك سوف ال نحتاج أدخلنا له قيمة من داخل البرنامج وممكن أن مخرجات هذا البرنامج هي ذات مخرجات البرنامج السابق. إلى إدخال قيمة لهذا المتغير أو تكون هذه القيمة عدد, حرف, أو سلسلة Program CH2_Program4; Const{the reserved word 'const' is used to initialize constants} Name = 'Ahmed'; Var Surname:String; Begin Write ('Enter your surname:'); Readln(surname); Writeln; Writeln; Writeln('your full name is: ', name,' ', surname); Readln; End. 36

// يستخدم األمر) Halt ( إليقاف تنفيذ البرنامج. ويستخدم األمر )Exit( للخروج من الكتلة الحالية. 2.5 أنواع األخطاء التي تحدث في البرنامج هناك ثالثة 2.5.1 begin أنو اع من أخطاء الب ارمج المهمة وهي: الخطأ الذي يمكن تمييزه أثناء ترجمة البرنامج قبل التنفيذ, مثال: عدم كتابة ألمر األمرend موجود في البرنامج. وهذا نوع من األخطاء التي تسمى أخطاء وقت الترجمة errors( )compile_time, وهو سيؤدي الخطأ 2.5.2 إلى عدم تنفيذ البرنامج مع ظهور رسالة خطأ تحدد نوع الخطأ الذي ال يميز أثناء الترجمة وإنما يميز أثناء التنفيذ, مثال أثناء التنفيذ كان هناك أمر إليجاد الجذر التربيعي لمتغير معين وظهر أن قيمة هذا المتغير سالبة )معروف أنه ال يمكن إيجاد الجذر التربيعي للقيم السالبة ), هذا سيؤدي إلى توقف تنفيذ البرنامج مع ظهور رسالة خطأ. النوع من األخطاء التي تسمى أخطاء وقت التنفيذ errors( )run_time هذا 2.5.3 األخطاء التي ال تميز سواء أثناء الترجمة أو وقت التنفيذ, مثال األخطاء التي يرتكبها المبرمج ربما سهوا ولكنها مقبولة للحاسوب كأن يكون المطلوب إدخال القيمة 30 ويتم إدخال القيمة 40 هذا الخطأ ال يعترض عليه الحاسوب ولكنه سيؤدي سوف تسمح للبرنامج باالستم ارر بالتنفيذ. إلى ظهور نتائج غير صحيحة, مثل هذه األخطاء عند حدوث خطأ من النوعين األول أو الثاني فإن البرنامج سوف ال ينفذ وتظهر رسالة خطأ يمكن f1 تضغط الزر أن للحصول على مساعدة توضح ماهية الخطأ, كذلك فإن مؤشر على شكل شريط أحمر يظهر في األعلى يبين رقم الخطأ, ومؤشر على شكل شارحة يؤشر على موقع الخطأ أو السطر الذي بعده أحيانا. 37

+ - * / = < > ] [. ' : (PLUS) عالمة الجمع (MINUS) عالمة الطرح (ASTERISK) عالمة الضرب (SLASH) عالمة القسمة ( EQUAL )عالمة المساواة THAN) LESS )أقل من THAN) GREATER )أكبر من (LEFT BRACKET) القوس المربع األيسر (LEFT BRACKET) القوس المربع األيمن (PERIOD) النقطة (comma) الفارزة (colon) النقطتان المتعامدتان الرموز الخاصة بلغة البرمجة باسكال تستخدم لجمع قيمتين تستخدم أيضاا إلتحاد سلسلتين حرفيتين وتستخدم لجمع مجموعيتين. تستخدم لطرح قيمتين تسبق القيم للدللة على أن القيم سالبة وتستخدم للفرق بين مجموعتين. تستخدم إلجراء عملية الضرب بين قيمتين وكذبلك لتقاطع مجموعتين. تستخدم إلجراء عملية القسمة بين قيمتين وتكون النتيجة قيمة كسرية تستخدم لفحص المساواة بين قيمتين تستخدم لمقارنة قيمتين وتحديد القيمة األصغر تستخدم لمقارنة قيمتين وتحديد القيمة األكبر يستخد م في المجاميع والمصفوفات )بالشتراك مع القوس األيمن( يستخد م في المجاميع والمصفوفات )بالشتراك مع القوس األيسر( تستخد\م في اختيار حقل لمتغير القيود وتأتي بعد األمر (END) إلنهاء البرنامج تستخد لفصل العوامل (arguments) ولفصل المتغيرات في حقل اإلعالن عن المتغيرات ولفصل مديات المصفوفة الثنائية تستخدمان لفصل أنواع المتغيرات في حقل اإلعالن ولفصل اسم الدالة عن نوعها عند تعريفها 38

; ^ ( ( <> <= >= :=.. (SEMI-COLON) الفارزة المنقوطة (POINTER) المؤشر (LEFT PARENTHESIS) القوس اإلعتيادي األيسر (RIGHT PARENTHESIS) القوس اإلعتيادي األيمن (LESS THAN / GREATER THAN) عدم المساواة (LESS THAN / EQUAL) أصغر من أو يساوي (GREATER THAN / EQUAL) أكبر من أو يساوي (COLON / EQUAL) المساواة (PERIOD / PERIOD) النقطتان المتجاورتان تستخدم لفصل العبارات في لغة البرمجة تستخدم لتعريف األنواع والمتغيرات من نوع مؤشر وتستخدم للوصول إلى محتويات المتغيرات من نوع مؤشر وكذلك محتويات الفايالت يستخدم ليحتوي التعابير الرياضية والمنطقية أو معامالت الدوال واإلجراءات )باإلشتراك مع القوس األيمن( يستخدم ليحتوي التعابير الرياضية والمنطقية أو معامالت الدوال والروتينات الفرعية )باإلشتراك مع القوس األيسر( اختبار عدم المساواة بين قيمتين للمقارنة بين مجموعتين واختبار المجموعة الجزئية للمقارن بين قيمتين واختبار المجموعة الشاملة (SUPERSET) تستخدم لسناد قيم المتغيرات تفصل 39

AND ARRAY BEGIN CASE CONST DIV DO DOWNTO ELSE END FILE FOR FUNCTION GOTO IF IN LABEL MOD NIL NOT OF OR PACKED PROCEDURE PROGRAM الكلمات المحجوزة الخاصة بلغة البرمجة باسكال: معامل الربط المنطقي نوع المصفوفة عبارة البدأ عبارة البدأ )في حالة( (CASE) تعريف الثوابت تقسيم األعداد الصحيحة ونتيجتها أيضا أعداد صحيحة تتبع أوامر التكرار White) (For, وتسبق األفعال التي يجب أن تنفذ تستخدم مع حلقة التكرار (For) وتدل على أن المتغير يقل في كل دورة تستخد مع (if) حيث في حالة كون التعبير المنطقي بعد (if) خطأ (false) تنفذ العبارة التي بعد )else) نهاية العبارات المركبة التي تبدأ باألمر ابدأ (begin) أو نهاية األمر (case) أو نهاية تعريف القيود (record) تعرف متغير من نوع ملف تنفذ سطر أو أكثر من األوامر بشكل متكرر طالما المتغير لم يصل إلى نهايته تعرف دالة باسكال تفيد للتفرع إلى عنوان محدد (label) تفحص شرط منطقي وتنفذ العبارة اذا كان الشرط صح (true) تحدد التعبير المنطقي على أنه صح (true) اذا كانت القيمة المفحوصة ضمن مجموعة خاصة تحدد العنوان الذي سيتم التفرع له عند استخدام األمر (Goto) لحساب باقي قسمة عددين القيمة الخالية للمؤشرات (pointers) لنفي قيم العبارات المنطقية تستخدم في عبارة (case) بعد متغير (case) معامل الختيار المنطقي )أو( يستخدم مع المصفوفات الملفات القيود والمجموعات لضغط البيانات المخزنة تعرف الروتين الفرعي في باسكال يستخدم في بداية البرنامج )رأس البرنامج( 40

RECORD REPEAT SET TO TYPE UNTIL VAR WHILE WITH للتصريح عن متغير من نوع القيود للبدأ بأمر التكرار (repeat) لتعريف المجموعات تلي التعبير المنطقي بعبارة (IF) للدللة على أن المتغير يزداد في كل دورة بمقدار واحد للتصريح عن نوع جديد من المتغيرات يستخدم إلنهاء حلقة التكرار (repeat) للتصريح عن متغيرات البرنامج ينفذ كتلة من األوامر بشكل متكرر لححين أن يصبح الشر (False) لتحديد متغير قيد يستخدم مع كتلة من األوامر 2.6 أمثلة محلولة: لتحويل )42200sec( إلى ما يقابلها بالساعات والدقائق والثواني: Program CH2_Program5; Var Hour, min, sec, temp: integer; Begin Sec:=42200 mod 60; Temp:=42200 div 60; Min:=temp mod 60; Hour: = temp div 60; Writeln('hour=', hour,'min=', min,'sec=', sec); End. 41 اكتب برنامجا اكتب برنامجا 3x y = 4x 2 + y من المعادلة 6 إليجاد قيمة Program CH2_Program6; Var x,y:integer;

Begin X: =6; Y: =4*sqr(x) +3*x-6; Writeln(y); End. لتحويل درجة ح اررة مقاسة بالفهرنهايت إلى درجة مئوية: Program CH2_Program7; Var f:integer; C:real; Begin Writeln('Enter temerature degree in fehrnhite '); Readln(f); C:=( 5/9)*(f+32); Writeln(c); End. إليجاد مساحة ومحيط دائرة: Program CH2_Program8; Var R: integer; Area, perimeter: real; Begin writeln('enter circle radius'); Readln(r); Area: =sqr(r)*pi; 42 اكتب برنامجا اكتب برنامجا

Perimeter: =2*r*pi; writeln('area= ',area,'perimeter= ',perimeter); End. Program CH2_Program9; Var Prod, a, b, c: integer; Average: real; Begin Writeln('Enter three numbers'); Readln(a, b, c); Prod: = a*b*c; Average:=( a + b + c)/3; Writeln('prod= ', prod); Writeln('averge= ', average); End. اكتب برنامجا إليجاد حاصل ضرب ومعدل ثالثة أرقام: إضافات مدرس المقرر 43

44