01 introduction in c++

40

Upload: bint-el-maghrabi

Post on 23-Jan-2018

111 views

Category:

Education


2 download

TRANSCRIPT

Page 1: 01 Introduction in C++
Page 2: 01 Introduction in C++

ھذا الموضوع ھو نقطة بدايتك فى ھذا القسم الخاص بالبرمجة

.. وفيه ستجد كل االسئلة المتكررة والتى تدور بذھنك وذھن كل مبتدأ بداية من الصفر

.. الى أن تضع قدميك على اول الطريق وتتكون لديك خلفية جيدة ان شاء هللا

.. هللا بإذن لتحدد ھدفك وطريقك الذى تريده

2

Page 3: 01 Introduction in C++

... ھي لغة التخاطب بين اإلنسان و اآللة تتكون ھذه اللغة من العديد من األوامر لتنفيذ مھمه معينه

فما ھى اال عملية بسيطة تقوم فيھا بكتابة بعض الكلمات للكمبيوتر ليقوم بتنفيذھا مثلما تقوم انت

بكتابة رسالة لصديقك وارسالھا له من على الموبايل

: وايضا ھناك ذلك التعريف الطريف

" البرمجه ھى ان تعلم اغبى صديق لديك طريقه كى يحل بھا مسائلة ما"

3

Page 4: 01 Introduction in C++

ولكنھم فى الحقيقة ما ... قد يظن البعض ان المبرجين ما ھم اشخاص ذو عقليات ومھارات خاصة

ھم اال اناس عاديين وقد يكونوا من غير الموفقين فى دارستھم لالسف

فالبرمجة ھى فن قبل ان تكون علم وھى المجال الوحيد الذى قد يتساوى فيه الطالب مع الدكتور

.. بل وقد يزيد عليه حسب خبرته الشخصية

يمكن الى شخص البدء فيھا بكل سالسة حسب مھارته وقدرته على التعلم وحماسه لھا فالبرمجة

4

Page 5: 01 Introduction in C++

حقيقة فى الوضع الحالى

ليست مشكلة فى البداية فاالنسان ال زية ولكنھا يللغةاالنجللمن يريد ان ينال الريادة ان يكون متقنا البد

ليست كلمات واومر بسيطة يمكنك تعلمھا بكل سالسة دون اى وجود عائق والبرمجة . يولد متعلما

تماما لكن لالحتراف والتميز البد ان يكون جيدا فى اللغة حتى يكون ملما بكل جديد ومساير له لغوى

5

Page 6: 01 Introduction in C++

الحقيقة خالف ذلك فأنت التحتاج الرياضيات ولكن قد يعتقد البعض ان المبرمجين مھارين جدا فى

تحتاج فى بعض البرامج المتخصصة فى ذلك المجال فربما قد جدا اال اال قليال وبشكل مبسط للرياضة

بكل سھولة الحصوعليھا ا لتى يمكن المعادالت البسيطة الى بعض

6

Page 7: 01 Introduction in C++

ھناك قاعدة عصرية تقول

«!!!من حيث انتھى االخرون او بمعنى اخر التعيد اختراع العجلهأبدء »

اليه فلغات ا لبرمجة تتطور بسرعة وبطريقة رھيبة وال يمكنك مجاراتھا اال اذا بدأت بما انتھى

نت لغات برمجة عديدة موجدة ولكن التى ظھرت فى الساحة مؤخرا ھى لغات الدوت االخرون فھناك

لغة السى شارب ولغة الفيجوال بيسيك دوت نت او يمكنك البدء بلغة الجافا ان اردت واشھرھا

7

Page 8: 01 Introduction in C++

ولكن عليھا تريد العمل ايسر الطرق لتعلم لغات البرمجة ھى اخذ دورات متخصصة فى اللغة التى

الكتب التى تظھر فى ھذا المجال وايضا قراءة المقاالت جيد فتطالع بشرط أن تكون قارىء

.والدروس الموجودة على النت

8

Page 9: 01 Introduction in C++

فالدروس فى المواقع العربية ھذا فقط تكون غير مجدية فالعملية قد فى الفترة الحالية ولكن . نعم غالبا

مرحلة الى تصل بك عموما ولكن لن الموجودة على شبكة النت تكون مختصرة وبسيطة وللمبتدأين

تختر اللغة ا لتى ثم مطالعة الموجود على الويب حتى تأخذ فكرة جيدة على اللغات االحتراف فيمكنك

تريد ان تتخصص فيھا بعد ذلك

ا ذا كنت تجيد االنجليزيه فمع بعض الدورات المتقدمه يمكنك الوصول الى االحتراف عن طريق اما

الن كل جديد فى مجال البرمجة ال يظھر اال بلغته االنجليزية ايضا بكل سھولة لكثرة مصادر اللغة النت

االم االنجليزية

9

Page 10: 01 Introduction in C++

لغة والتعلم فيمكنك اتقان على المثابرة شخصيتك وقدرتك اليوجد مدة محددة ولكنھا تعتمد عليك وعلى

البرمجة كحد أدنى فى ستة أشھر وعلى االكثر عامان بأذن هللا

10

Page 11: 01 Introduction in C++

فى ظرف ذلك بعدا النتقال الى لغة للغتك االصلية فيمكنك ھذا يعتمد على مھاراتك ومدى اتقانك

ان شاء هللا اسبوعان

11

Page 12: 01 Introduction in C++

ال يوجد تعريف محدد النواع لغات البرمجة النھا كلھا غالبا مرتبطة ببعضھا وباتقانك اى لغة برمجة

التعامل بسالسة بأى نوع من االنواع االخرى بعد اخذك خلفية بسيطة عن اساسيتھا يمكنك

ان انواع لغات البرمجة نسبيا ھى القول ويمكنا

العادية البرمجة 1.

قواعد البيانات برمجة 2.

مواقع الويب برمجة 3.

12

Page 13: 01 Introduction in C++

.. أبشرك بوصولك لھذا السوال فأنت قد وضعت قدمك على أول خطوات االحتراف

حتى ال تضيع .. تريده قبل ان تعمل فيه ھو شئ ممتازالذى فمعرفة اغلب التفاصيل عن الشئ

.. جھودك ووقتك ھباء

ولكن بكل بساطة يمكن اختزاله فى تلك ... فاالحتراف فى عالم البرمجة ليس له مقياس محدد

: المقولة

. قدرتك على األنجاز وعمل كل ما فكرت به وتريده فى اقصر مدة ممكنة وفى دقة متناھية

!! ولكن ھل توجد اى مصطلحات معقدة

.. لغات البرمجة من العلوم الممتعة جدا واللذيذة فى نفس الوقت

االنجليزية فھى بعض الكلمات ... لذلك فى البداية لن تجد اى صعوبة فى اى مصطلحات تذكر

.. السھلة التى يتم كتابتھا بترتيب معين ومنطقى ليفھمھا الكمبيوتر ويقوم بتنفيذھا

..! مثل قطع المعكبات التى يلعب بھا ابن اخيك الصغير ليكون بھا بيتا او اى شئ يحبه

13

Page 14: 01 Introduction in C++

.. كما اتفقنا سابقا واكرر الكالم مرة اخرى ألھمية الكالم

ال يشترط لتعلم لغة برمجة حديثة البدء بلغة برمجة قديمة اوحتى معرفة اللغة التى نشأت عنھا

ببساطة ما وجدت لغة برمجة جديدة اال لتعالج قصور وأوجه العجز فى اللغة القديمة النه .وتتطورت منھا

.. التطورات لتساير التطور المذھل والسريع فى المجاالت االخرى بعض او اضافة

قد تجد ان ھناك من يصر على بدء التعلم بلغة برمجة قديمة خصوصا فى مجال الدارسة بالجامعات

او ، لعدة اسباب من وجھة نظره تتضمن ازالة حاجز الخوف الوھمى لدى الطالب من البرمجةوذلك

من ناحية تاريخية لمعرفة مدى تطور لغات البرمجة فى سنوات قليلة، او لمقارنة لغات البرمجة

ربما من ناحية اخرى وھى عدم توافر االمكانيات المتاحة من او المختلفة والوقوف على مدى التطور

.اجھزة وبرامج لذلك

اما اذا كان .ولكن بما انك تدرس البرمجة كدارسة حرة وھاوى لھا فابدء من حيث انتھى االخرين

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

بسيطة عن لغات البرمجة الحديثة وتحترف فى لغة واحدة فقط حتى يمكنك نقل برامجك من لغة الى اخرى

. بكل سھولة دون اى عوائق

14

Page 15: 01 Introduction in C++

يمكن ان نقول ان وجه االختالف ھو لذلك .بداية أوضح ان كل لغات البرمجة غالبا تتطورت من اصل واحد

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

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

ھذا ان نقول ان كل لغات البرمجة قبل ظھور الويندوز تعتمد على ونستطيع : طريقة الربحمة اخلطية

لغة - BASICوالسي - Cوالباسكال - Pascalوالكوبول - COBOLالفوتورن : االسلوب مثل

البيسك

وطريقة الربجمة الشيئيةobject Oriented Programming : وھى لغات البرمجة التى ظھرت بعد

..!! البرمجة تأخد مجال اكثر سھولة واتساعا فى نفس الوقت حيث .. نظام التشغيل ويندوز

الفيجوال بيسك - Visual Basicلغات البرمجة التى تتطورت من لغات سابقة مثل على وھى تشتمل

.. تطورت من لغة البيسيك والتى

Visual C سي بلس بلس والفيجوال لغات السي وكذلك ايضا من لغة السى تتطورت

- Delphiوكذلك الدلفي . من لغة الباسكال

15

Page 16: 01 Introduction in C++

األفضل منھا طبعا وايضا لوجود فھناك لغات برمجة لم تعد تستخدم حاليا ..لغات البرمجة عديدة جدا

لغات البرمجة تتطورت من بعضھا والن .اتمام العمل بسھولة تساعد على وجود اللغات االحدث التى

تجدھا لكمبيوتر اللغة والكلمات التى يفھمھا ااوامر البعض فھى على األقل متفقة فى الناحية الھجائية اى ان

من لغة الى لغة امر فى غاية السھولة االنتقال متشابھة فى كل لغات البرمجة مما يجعل

!!! ... برمجة اواكثر لذلك ال تستغرب من يكتب فى سيرته الداتية انه يعرف ما يقرب من عشرة لغات

األقل قرأ المختلفة اوعلى فكل مافى االمرانه اتقن لغة برمجة واحدة جيدا ثم بدأ بالتنقل الى اللغات

ستجد ان كل لغات البرمجة سواء كانت قديمة لذلك كتبا اودروسا عنھا فى االنترنت ليأخد عنھا فكرة جيدة

: التالية المواضيع الى وتتطرق او حديثة البد ان تتحدث

المصفوفات -الدوال -التكرار جمل -والتحكم الشرطجمل - المتغيرات

16

Page 17: 01 Introduction in C++

ولم يعد امامك اال ان تحدد ھدفك وتختار احدى لغات البرمجة .االن قد وصلت لنھاية المطاف ھنا فأنت

احدى لغات برمجة بيئة الدوت نت او لغة .NET: وان كنت انصحك بأن تبدأ ب.التى تريد دارستھا

- Javaالجافا

17

Page 18: 01 Introduction in C++

ھذا عرضا سريعا وخلفية موجزة عن لغات البرمجة وانواعھا واوجه الشبه واالختالف كان .. النھاية وفى

فى وتتطورھا لذلك ... السنوات السابقه، تذكر ان محور حديثنا يتركز تبسيط المعلومات للمبتدأين حديثا

. ان شاء هللا ھذا فى العمل ستكتسب معلومات كثيرة ومھارات افضل عن تبدأ عندما

فإن لم تكن لديك المعرفه بما سبق ذكره من معلومات وتقنيات برمجيه، فأرجوا ان ال يصيبك ذلك

باالحباط بل على العكس من ذلك يمكنك ان تعتبر نفسك مبرمج محظوظ جدا ، حيث ستبدء حياتك

احدث وأفضل تقنيه تستخدم لتطوير التطبيقات في القرن الحادي ومع الجديده من حيث أنتھى االخرون ،

هللابيسك ان شاء لغة الفجيوال مع او Microsoft.NETوھي والعشرين

18

ان الفرق الرئيسي بين لغات الدوت نت ھو في طريقة كتابة الكود، أما اإلمكانات فھي فيھا متساوية وإن

فقد أمكن دمج اللغتان لكتابة برنامج واحد، ولكن ھناك من .. برزت لغة على لغة أخرى في ھذا الجانب

.. يميل حاليا خصوصا اذا كان مبتدئ الى السى شارب

Page 19: 01 Introduction in C++

: نالحظ أوال أن الحصول على نتائج من أى برنامج يتطلب اآلتى

فى محرر النصوص المكتوب بلغة عالية المستوى، Editingاو كتابه البرنامج مرحلة إعداد1.

sourceويسمى ھذا البرنامج بالمصدر

وفيھا يتم تحويل البرنامج إلى لغة اآللة بعد التأكد من خلوه compilationمرحلة ترجمة البرنامج 2.

وإذا وجدت اى أخطاء يطلب المترجم تصحيحھا، .من األخطاء اللغويه حسب قواعد اللغة المستخدمة

. وال يقوم بعملية الترجمة إال بعد االنتھاء من تصحيح كل األخطاء

Runويتم فيھا إدخال البيانات المطلوبة، ثم يتم تنفيذ تعليمات البرنامج executionمرحلة التنفيذ 3.

Debugمرحلة اكتشاف االخطاء اذا حدث خطاء فى كتابه البرنامج 4.

19

Page 20: 01 Introduction in C++

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

المشكلةوتوصيف تحديد

تصميم الخورزمية المناسبه لحل المشكلة

المشكلةبرنامج بلغة برمجه معينه لحل كتابة

المكتوبكفاءة البرنامج قياس

ھذه الخطوات بإختصار ھي التي يقوم المبرمج بقضاء معظم وقته في التعامل معاھا وإيجاد طرق سھلة

لكل خطوة منھا بحيث يخرج الحل الكلي بأكبر كفاءه ويتم حل المشكله بكفاءة من الكمبيوتر، واذا لم يتم

ھذا الحل بكفاءه كبيرة يعود لتجربة الخطوات السابقة والبحث عن نقاط الضعف وتعديلھا تعرف ھذه

حيث تحتاج كل خطوة إلختبار وسنتعلم طرق اختبار كفاءة البرامج بعد (Testing). الـالعمليه باسم

هللاذلك بإذن

20

Page 21: 01 Introduction in C++

المشكلة جيدا يساعدك على فھمھا جيدا وبالتالي عمل برامج مناسبة وقادرة على حل المشكلة بكفاءهتحديد

ويقصد بتحديد المشكله أي تعيين الھدف من حلھا، نحن نتعلم االن كتابة برامج بسيطة فبالتالي خطوة تحديد

بسيطةالمشكلة ستكون

لكن في حاالت البرمجة المعقدة فإن ھذه الخطوة ال تتم بسرعه وبديھيا كما ھو الحال مع التمرينات البسيطه

التي سنتعرض لھا ھنا

ھنا بما إن معنيين بحل مشكلة بسيطة فإن تحديد المشكلة يتم تلقائيا بتحديد مدخالت ومخرجات المشكله لكن

وكذلك تحديد الھدف منھا ويكون ذلك بسيط وواضح للتمارين البسيطه التي سنتعرض لھا في البداية بإذن هللا

21

Page 22: 01 Introduction in C++

بعد ان تم تحديد المشكلة، يتم تصميم الخورزمية المناسبة لحل المشكلة

خطوتينوذلك من خالل

كتابة الجورزم

مودلالمشكله في توصيف

وذلك بكتابة خطوات متسلسلة لحل المشكلة وتكتب في صورة اوامر متتابعه وال توجد طريقة : كتابة الجورزم

..معينه لكتابتھا النھا مجرد اسلوب للتفكير على الورق

اما التنفيذ من خالل لغة البرمجة يتبع طريقة معينه للكتابة وھي اوامر اللغة والبد من ادخال ھذه االوامر لآلله

..كما سنفھم ذلك فيما بعد .. بالظبط كما ھي

..المھم االن ان تعلم ان االلجورزم ھو سلسلة من خطوات حل المشكلة

يسھل ذلك فھم المشكلة واستيعابھا وتنفيذھا على الكمبيوتر من خالل لغة : توصيف المشكلة في مودل

.. flow chartالتي سنستعملھا في توصيف المشكله تسمي بالـ والطريقه ..المناسبةالبرمجه

22

Page 23: 01 Introduction in C++

اسلوب حل المشكلة، مجرد طريقة التفكير فيھا على الورقھو

ال عالقة له بلغة برمجة معينه وانما ھي المنطق الذي يستعمله االنسان في ادخال االوامر لآلله

وعليه فإن الحكم على كفاءه خورزميه عن األخري يتم من خالل قياس كفاءة ھذه الطريقه في التفكير

مثال سرعتھا في التنفيذ ومدى تعقيدھا، وسنتطرق فيما بعد للعوامل التي من خاللھا يتم الحكم على كفاءة

اآلن ما يھمنا ھو ان نفھم ان الخورزمية معنيه بحل مشكلة معينهنكتبھا لكن البرامج التي

البرنامج ھذا يمكن كتابته .. اريد عمل برنامج يقوم بجمع رقمين ثم اظھار النتيجه في نافذه جديده : مثال

.أو خورزمية ولكل منھا كفاءة مختلفة algorithmبعدة طرق كل منھا يسمى

23

Page 24: 01 Introduction in C++

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

..وسنتعرف على الكثير من اللغات واھمياتھا والفروق فيما بينھا الحقا إذن فھذه الخطوة مؤجلة

24

Page 25: 01 Introduction in C++

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

سنتعرض لھا الحقا بإذن هللا من خالل كثير من التجارب التي تجرى على البرمجيات الكبيرة للتأكد من كفائتھا

فان الطريقه التي سنستعملھا تسمي بالـ .. ھنا بما اننا نتحدث عن برنامج بسيط بھا لكن واالخطاء الموجوده

trace table .. اوDebug

:وفائدته .. trace tableوسنختبر اي برنامج نكتبه بإذن هللا من خالل الـ

trace tableمثال اريد عمل برنامج يجمع رقمين، باستخدام ال : ) اكتشاف أي اخطاء في منطق البرنامج -

من خالل تتبع منطق البرنامج( يمكن الوصول للمشكلة واكتشاف ان البرنامج كان يطرح الرقمين ال يجمعھما

لقد ذكرنا ان البرنامج يكتب في النھاية بلغة برمجه وھي مجموعة من االوامر : اكتشاف االخطاء البرمجية -

..الثابته التي يفھمھا الكمبيوتر والتي اذا تم التغيير فيھا يحدث خطأ

تعرف مثل ھذه .. خطأ فسيحدث ()clossالغالق النافذه واستدعيت االمر ()closeفاذا قمت بتعريف االمر

.. tracingويمكن اكتشافھا ايضا عن طريق ال syntax errorsباخطاء كتابة االوامر او ال .. االخطاء

25

Page 26: 01 Introduction in C++

: فى البداية يجب ان نعرف ان اى برنامج داخل اللغة يحتوى على جزئين اساسيين

واحد فقط Headerواى برنامج يحتوى على headerاالول يسمى

على االقل يجب ان يحتوى Blockواى برنامج يمكن ان يحتوى على اكثر من Blockالثانى يسمى

على واحد

؟؟ Blockما هو الـ

Blockو Headerوابسط برنامج يحتوى على Functionھو عبارة عن دالة

26

Page 27: 01 Introduction in C++

: Headerالعناصر التى تكتب فى : اوال

Directives

عبارة عن مجموعة ملفات موجودة داخل مترجم اللغة يتم استدعائھا لتصبح جزء من البرنامج وھى

محورى واساسى داخل ء جزوھذا الجزء ھو Compilerبـ مكتوبة مسبقا داخل مترجم اللغة او ما يسمى

يتم التعامل مع اللغة قه يطراذ انه عن واوامر تصدر للمترجم ليقوم باداء مھمة محددة برمجةاى لغة

بشكل سھل وبمعرفة كل ما يحتويه ھذا الجزء من كلمات محجوزة داخل اللغة وكيفية التعامل معھا وفيما

تستخدم كل كلمة فاننا نسير بذلك نحو فھم متعمق للغة البرمجة بشكل عام وجدير بالذكر ان ھذا الجزء ھو

النواة االساسية الذى بنيت عليه جميع لغات البرمجة كما انه يستخدم وسيط بين اللغة التى يفھمھا الشخص

1و 0 وھىالتى يفھمھا الجھاز هاللغواعنى ھنا الكود الذى يكتبه المبرمج وليست اللغة العادية وبين

27

Page 28: 01 Introduction in C++

#include توجيهى مثال ضم:

#define عرف

ھناك ثالث لغات يتم التمحور عليھم مع اى لغة برمجة وھما اللغة التى يفھمھا الشخص وھى الكود الذى يتم اذا

الـ والتى يلعب.1و وھىالمبرمج وبين اللغة التى يفھمھا الجھاز بواسط كتابته Compiler دور الوسيط فيھا

يتعامل بھا مع والتىاللغة الثالثة ھى التى يفھمھا المستخدم العادى وھى لغة االرقام والحروف والكلمات العادية

اى برنامج من خالل نوافذ التحكم لديه والتى ينسق المبرمج الكود الذى يكتبه لخدمة ھذه البيانات ولخدمة

فيهالمستخدم العادى ويلعب ھنا المبرمج دور الوسيط

Cخاص بھا وھو مكان كتابه الكود داخل اللغه اذ ال يصح استعمال كود الـ Compiler ولذلك نجد انه لكل لغة

كما يوجد الى لغة الكلمات الخاصة بھا وطرق لكتابة الجمل Basicمخصص للـ Compilerمثال داخل

البرمجية وطرسقة ترتيبھا دخل الكود

28

Page 29: 01 Introduction in C++

# include < I / o stream.h >

Include ھى داله موجودة داخل اللغة وعناھا استدعاء االمر ليصبح داخلBlock

Stream اسم الملف الذى تخزن به حيث يتم تخزين الملفات باسماء مختلفة وھذا احد اسمائھا

.h ھذا ھو امتداد الملف وسمى ذلك الن ھذا الملفHeadmen

I / O تستخدم فى توصيفIN C و OP C لكى يعملو فى البرنامج بشكل صحيح واذا لم تكتب داخل

Header فلن يمكن استخدام الخرج والدخل بشكل صحيح داخلBlock حيث ال يخلو اى برنامج منھم

فالملف الرئيسى البد من ذكره حيث ان جميع الدوال التى سوف يتم استخدامھا فى برنامجك البد من ذكر الملفات

الرئيسية التى تنتمى اليھا ھذه الدالة ، حيث انه اذا لم تستدعى الملفات الرئيسية واستخدمت دوال لتقوم بأعمال

معينة فإن البرنامج ال يمكن أن يعمل وذلك ألن الدالة التى استدعيتھا ال وجود لھا اال فى الملف الرئيسى الخاص

:ويوجد ھناك العديد من الملفات الرئيسيه منھا . بھا وانت لم تقم بإستدعائه

29

Page 30: 01 Introduction in C++

•(math.h) : وھذا الملف يحتوى على جميع الدوال الرياضية التى من خاللھا يمكن القيام بالعمليات الحسابية

•(time.h) : وھذا الملف يحتوى على دوال التعامل مع الوقت

•(string.h) : وھذا الملف للتعامل مع السالسل الحرفية

•(stdio.h) : وھذا الملف يعتبر األكثر استعماال نظرا لكونه ال يخلو برنامج من طباعه شئ ما الى الشاشة أو

أخذ معطيات من المستخدم

توصيف على ھذه الدالة عبارة عن ملف داخل اللغة ويحتوى < <math تسمىسبيل المثال ھناك دالة على

مع اى دالة رياضية داخل التعامل عند Headerالـ الدوال الرياضية بجميع انواعھا ولذلك يجب استدعائھا فى

Block والعملية الحسابية ونشرح ذلك بالمثال التالى الرياضية ولكن يجب ان نعرف ان ھناك فرق بين الدالة- :

A + B; X

وذلك النھا دالة رياضية Headerداخل mathفانھا تلزم تعريف داله Blockعندما تكتب ھذه الداله فى

30

Page 31: 01 Introduction in C++

للحيرة كما راينا فى المثالين السابقين اذا فال داعى Block فىتحدد على اساس الخطوات التى تكتب

Variableتسمى وذلك النھا معروفة مسبقا وھذه العملية Headerفى اختيار الكلمات التى ستكتب فى

Deceleration Global داخل وھى تعريف المتغيرات العامة المستخدمةBlock او داخل اكثر من

Block وھذا ھو الجزء الثانى من عملHeader اللغة وھذه المتغيرات التى تستخدم على مستوى

اى جزء من اجزاء البرنامج داخل البرنامج ككل بمعنى ان لھا صالحية االستخدام

31

Page 32: 01 Introduction in C++

Blockعلىاخل البرنامج ھو دالة والبد ان يكون مميز باسم واذا كان البرنامج يحتوى Blockاى

اجبارى Blockولو كان ھناك اكثر من {}Mainاو اسم الدالة {} Mainواحد البد ان يكون اسمه

الن مرحلة التنفيذ ستبدأ من خالله {}mainان يكون اسم واحد منھم

32

Page 33: 01 Introduction in C++

Main { }

{

Deceleration Local Variable

Statements ;

Return ( )

}

Blockوسنشرح االن كل جزئية من ھذا الـ

33

Page 34: 01 Introduction in C++

•Main { } : ھو اسم الدالة اوBlock

ستبداء Blockبان عملية كتابة الـ Compilerويعلم ھنا الـ beginھذا القوس يعبر عن البدايه او : }•

•Variable Deceleration Local : وھى تعريف التغيرات المحلية التى ستستخدم

ويجب بعد االنتھاء من كتابة جملة داخل Statementsوھى عبارة عن مجموعة جمل او Blockداخل •

Block وضع;

•Return( ) : تستخدم كأشارة الى مترجم اللغة ان كل الخطوات السابقة قد تم كتابتھا بشكل صحيح

بأن ھذا الـ قد تم االنتھاء منه Compilerويعلم الـ Endھذا ھو قوس النھاية او {•

mainاذا كان القوس الخاص بھا ال يوجد به شئ اذا البد ان نكتب قبل اسم الداله ( ) returnبالنسبة الى جملة •

{ } Void mainلتصبح Voidكلمة { }

{ } int mainلكى تصبح intيجب ان نكتب (0)ولو كان يوجد به •

والحظ الكتابة داخل القوس ھى شىء اختيارى وال يمت باى صلة الى صحة الكود او خطائه •

34

Page 35: 01 Introduction in C++

•Global : ھى تعريف للمتغيرات العامة على البرنامج وممكن ان تستخدم فى جميعBlocks

•Local : ھى متغيرات محلية اى يمكن استخدمھا داخلBlocks التى تعرف فيه وال تخرج عن

ھذا الحد

35

Page 36: 01 Introduction in C++

كما نھتم بتوضيح المخرجات وجعلھا مفھومة قدر اإلمكان لمشغل البرنامج ، يجب أن نھتم بوضوح

: البرنامج فى حد ذاته ايضا وذلك بمعنى انه

كرمز مثال للعمر ، من االفضل Xفبدال من المتغير .يجب ان تدل اسماء المتغيرات على مسمياتھا1.

. الذى يعنى العمر ageاستخدام

، وھذه الجمل ليست موجھه ( أى توضيحية ) يجب توضيح خطوات البرنامج بجملة تعليقية 2.

فمثال نجد مثال لبرنامج . للحاسب بل لالنسان الذى يقرأ البرنامج ، وھى تساعده على فھمه وتتبعه

ما كبير وغير واضح ، وھنا يلجئ المبرمج إلى استعمال التعليقات لجعلھا أكثر وضوح

جمل : /* ........... بين الرمزين comment statementsتوضع الجمل التوضيحية Cفى لغة

........*/ توضيحية

وھى قد تكون باللغة االنجليزية أو العربية أو بأى لغة أخرى

36

Page 37: 01 Introduction in C++

ما ھو الغرض من البرنامج التالى ؟ : مثال

/*********برنامج لحساب مساحة الدائرة *******/

Main()

{

float radius = 5.67;

/* radius : نصف القطر * /

pi = 22./7. , /* pi : مقدار ثابت*/

area; /* area : المساحة */

area = pi * radius * radius;

printf)“\n %f = المساحة “ , area (;

}

الحظ ان البرنامج بھذا الشكل واضح

فى متغيراته ، والغرض منه ھو

حساب مساحة دائرة نصف قطرھا

الحظ ايضا أنه بإمكانك وضع . 5.67

الجمل التوضيحية فى اى مكان

. مناسب من البرنامج

37

Page 38: 01 Introduction in C++

يتم : compiler errorالخطأ اللغوى 1.

تصحيحه بالرجوع إلى نقطة الخطأ فى

البرنامج ، فإذا كان الخطأ واضحا كما ھو

فيتم تصحيحه الحال فى أغلب البرامج

أما إذا عجز . واعادة الترجمة من جديد

المبرمج عن اكتشاف ھذا الخطأ فعليه

بالرجوع إلى دليل اللغة أو االستعانه بمفتاح

F1المساعدة

Source Program

C compiler

Object Program

Linker

Executable Program

Library

38

Page 39: 01 Introduction in C++

: linker errorخطأ الرابط 2.

يتم تصحيحه بالتأكيد من كتابة اسم الدالة بصورة صحيحة او التأكد من استخدام متغيراتھا كما ھو محدد

فى تعريفھا

الحظ أن تصحيح األخطاء اللغوية فى البرنامج ال يعنى أن البرنامج سوف يتم تنفيذه بصورة

مثل خطأ execution errorsسليمه فقد تظھر فيه أخطاء أثناء التنفيذ تسمى بأخطاء التنفيذ

الذى ينتج عند محاولة القسمة على الصفر فى البرنامج overflowالفيض

واخيرا يجب التنويه الى ما يعرف باألخطاء المنطقية التى ال عالقة لھا بلغة البرنامج أو اآللة التى

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

. مراجعة ھذه الخوارزمية خطوة خطوة بطريقة التتبع

39

Page 40: 01 Introduction in C++

X = 5: الجملة فى لغات البرمجة ھى عبارة عن أمر من المبرمج للحاسوب بأن ينفذ عمال ما فمثال الجملة

: والجملة Assignment statement، لذلك فھى تسمى جملة تعيين Xھى طلب تعيين القيمة للمتغير

sum = 27.8 + 33.5; أى ) وتعيين الناتج 33.5+ 27.8تطلب من الحاسوب أن يقوم بعملية الجمع

: ورغم أن ھذه الجملة تطلب أمرين ھما الجمع تأخذ الشكل العام . sumللمتغير ( 61.3

Var = expression ;

رمز ألى عبارة حسابية expressionيرمز ألى متغير ، و varحيث

40