01 introduction in c++
TRANSCRIPT
ھذا الموضوع ھو نقطة بدايتك فى ھذا القسم الخاص بالبرمجة
.. وفيه ستجد كل االسئلة المتكررة والتى تدور بذھنك وذھن كل مبتدأ بداية من الصفر
.. الى أن تضع قدميك على اول الطريق وتتكون لديك خلفية جيدة ان شاء هللا
.. هللا بإذن لتحدد ھدفك وطريقك الذى تريده
2
... ھي لغة التخاطب بين اإلنسان و اآللة تتكون ھذه اللغة من العديد من األوامر لتنفيذ مھمه معينه
فما ھى اال عملية بسيطة تقوم فيھا بكتابة بعض الكلمات للكمبيوتر ليقوم بتنفيذھا مثلما تقوم انت
بكتابة رسالة لصديقك وارسالھا له من على الموبايل
: وايضا ھناك ذلك التعريف الطريف
" البرمجه ھى ان تعلم اغبى صديق لديك طريقه كى يحل بھا مسائلة ما"
3
ولكنھم فى الحقيقة ما ... قد يظن البعض ان المبرجين ما ھم اشخاص ذو عقليات ومھارات خاصة
ھم اال اناس عاديين وقد يكونوا من غير الموفقين فى دارستھم لالسف
فالبرمجة ھى فن قبل ان تكون علم وھى المجال الوحيد الذى قد يتساوى فيه الطالب مع الدكتور
.. بل وقد يزيد عليه حسب خبرته الشخصية
يمكن الى شخص البدء فيھا بكل سالسة حسب مھارته وقدرته على التعلم وحماسه لھا فالبرمجة
4
حقيقة فى الوضع الحالى
ليست مشكلة فى البداية فاالنسان ال زية ولكنھا يللغةاالنجللمن يريد ان ينال الريادة ان يكون متقنا البد
ليست كلمات واومر بسيطة يمكنك تعلمھا بكل سالسة دون اى وجود عائق والبرمجة . يولد متعلما
تماما لكن لالحتراف والتميز البد ان يكون جيدا فى اللغة حتى يكون ملما بكل جديد ومساير له لغوى
5
الحقيقة خالف ذلك فأنت التحتاج الرياضيات ولكن قد يعتقد البعض ان المبرمجين مھارين جدا فى
تحتاج فى بعض البرامج المتخصصة فى ذلك المجال فربما قد جدا اال اال قليال وبشكل مبسط للرياضة
بكل سھولة الحصوعليھا ا لتى يمكن المعادالت البسيطة الى بعض
6
ھناك قاعدة عصرية تقول
«!!!من حيث انتھى االخرون او بمعنى اخر التعيد اختراع العجلهأبدء »
اليه فلغات ا لبرمجة تتطور بسرعة وبطريقة رھيبة وال يمكنك مجاراتھا اال اذا بدأت بما انتھى
نت لغات برمجة عديدة موجدة ولكن التى ظھرت فى الساحة مؤخرا ھى لغات الدوت االخرون فھناك
لغة السى شارب ولغة الفيجوال بيسيك دوت نت او يمكنك البدء بلغة الجافا ان اردت واشھرھا
7
ولكن عليھا تريد العمل ايسر الطرق لتعلم لغات البرمجة ھى اخذ دورات متخصصة فى اللغة التى
الكتب التى تظھر فى ھذا المجال وايضا قراءة المقاالت جيد فتطالع بشرط أن تكون قارىء
.والدروس الموجودة على النت
8
فالدروس فى المواقع العربية ھذا فقط تكون غير مجدية فالعملية قد فى الفترة الحالية ولكن . نعم غالبا
مرحلة الى تصل بك عموما ولكن لن الموجودة على شبكة النت تكون مختصرة وبسيطة وللمبتدأين
تختر اللغة ا لتى ثم مطالعة الموجود على الويب حتى تأخذ فكرة جيدة على اللغات االحتراف فيمكنك
تريد ان تتخصص فيھا بعد ذلك
ا ذا كنت تجيد االنجليزيه فمع بعض الدورات المتقدمه يمكنك الوصول الى االحتراف عن طريق اما
الن كل جديد فى مجال البرمجة ال يظھر اال بلغته االنجليزية ايضا بكل سھولة لكثرة مصادر اللغة النت
االم االنجليزية
9
لغة والتعلم فيمكنك اتقان على المثابرة شخصيتك وقدرتك اليوجد مدة محددة ولكنھا تعتمد عليك وعلى
البرمجة كحد أدنى فى ستة أشھر وعلى االكثر عامان بأذن هللا
10
فى ظرف ذلك بعدا النتقال الى لغة للغتك االصلية فيمكنك ھذا يعتمد على مھاراتك ومدى اتقانك
ان شاء هللا اسبوعان
11
ال يوجد تعريف محدد النواع لغات البرمجة النھا كلھا غالبا مرتبطة ببعضھا وباتقانك اى لغة برمجة
التعامل بسالسة بأى نوع من االنواع االخرى بعد اخذك خلفية بسيطة عن اساسيتھا يمكنك
ان انواع لغات البرمجة نسبيا ھى القول ويمكنا
العادية البرمجة 1.
قواعد البيانات برمجة 2.
مواقع الويب برمجة 3.
12
.. أبشرك بوصولك لھذا السوال فأنت قد وضعت قدمك على أول خطوات االحتراف
حتى ال تضيع .. تريده قبل ان تعمل فيه ھو شئ ممتازالذى فمعرفة اغلب التفاصيل عن الشئ
.. جھودك ووقتك ھباء
ولكن بكل بساطة يمكن اختزاله فى تلك ... فاالحتراف فى عالم البرمجة ليس له مقياس محدد
: المقولة
. قدرتك على األنجاز وعمل كل ما فكرت به وتريده فى اقصر مدة ممكنة وفى دقة متناھية
!! ولكن ھل توجد اى مصطلحات معقدة
.. لغات البرمجة من العلوم الممتعة جدا واللذيذة فى نفس الوقت
االنجليزية فھى بعض الكلمات ... لذلك فى البداية لن تجد اى صعوبة فى اى مصطلحات تذكر
.. السھلة التى يتم كتابتھا بترتيب معين ومنطقى ليفھمھا الكمبيوتر ويقوم بتنفيذھا
..! مثل قطع المعكبات التى يلعب بھا ابن اخيك الصغير ليكون بھا بيتا او اى شئ يحبه
13
.. كما اتفقنا سابقا واكرر الكالم مرة اخرى ألھمية الكالم
ال يشترط لتعلم لغة برمجة حديثة البدء بلغة برمجة قديمة اوحتى معرفة اللغة التى نشأت عنھا
ببساطة ما وجدت لغة برمجة جديدة اال لتعالج قصور وأوجه العجز فى اللغة القديمة النه .وتتطورت منھا
.. التطورات لتساير التطور المذھل والسريع فى المجاالت االخرى بعض او اضافة
قد تجد ان ھناك من يصر على بدء التعلم بلغة برمجة قديمة خصوصا فى مجال الدارسة بالجامعات
او ، لعدة اسباب من وجھة نظره تتضمن ازالة حاجز الخوف الوھمى لدى الطالب من البرمجةوذلك
من ناحية تاريخية لمعرفة مدى تطور لغات البرمجة فى سنوات قليلة، او لمقارنة لغات البرمجة
ربما من ناحية اخرى وھى عدم توافر االمكانيات المتاحة من او المختلفة والوقوف على مدى التطور
.اجھزة وبرامج لذلك
اما اذا كان .ولكن بما انك تدرس البرمجة كدارسة حرة وھاوى لھا فابدء من حيث انتھى االخرين
تخصصك الحاسب االلى فالبد ان اھمس فى اذنك انه يجب عليك ان تعرف وتتوسع افقيا وتأخذ فكرة لو
بسيطة عن لغات البرمجة الحديثة وتحترف فى لغة واحدة فقط حتى يمكنك نقل برامجك من لغة الى اخرى
. بكل سھولة دون اى عوائق
14
يمكن ان نقول ان وجه االختالف ھو لذلك .بداية أوضح ان كل لغات البرمجة غالبا تتطورت من اصل واحد
ذلك التصنيف غير دقيق علميا ولكن انت بخبرتك ودارستك بعد ھذا كان وان .اسلوب البرمجة نفسه
:حيث طريقة كتابة البرنامج واسلوبه الى البرمجة من تقسيم لغات فيمكن .شاء هللا ان ستتعرف على الفروق
ھذا ان نقول ان كل لغات البرمجة قبل ظھور الويندوز تعتمد على ونستطيع : طريقة الربحمة اخلطية
لغة - BASICوالسي - Cوالباسكال - Pascalوالكوبول - COBOLالفوتورن : االسلوب مثل
البيسك
وطريقة الربجمة الشيئيةobject Oriented Programming : وھى لغات البرمجة التى ظھرت بعد
..!! البرمجة تأخد مجال اكثر سھولة واتساعا فى نفس الوقت حيث .. نظام التشغيل ويندوز
الفيجوال بيسك - Visual Basicلغات البرمجة التى تتطورت من لغات سابقة مثل على وھى تشتمل
.. تطورت من لغة البيسيك والتى
Visual C سي بلس بلس والفيجوال لغات السي وكذلك ايضا من لغة السى تتطورت
- Delphiوكذلك الدلفي . من لغة الباسكال
15
األفضل منھا طبعا وايضا لوجود فھناك لغات برمجة لم تعد تستخدم حاليا ..لغات البرمجة عديدة جدا
لغات البرمجة تتطورت من بعضھا والن .اتمام العمل بسھولة تساعد على وجود اللغات االحدث التى
تجدھا لكمبيوتر اللغة والكلمات التى يفھمھا ااوامر البعض فھى على األقل متفقة فى الناحية الھجائية اى ان
من لغة الى لغة امر فى غاية السھولة االنتقال متشابھة فى كل لغات البرمجة مما يجعل
!!! ... برمجة اواكثر لذلك ال تستغرب من يكتب فى سيرته الداتية انه يعرف ما يقرب من عشرة لغات
األقل قرأ المختلفة اوعلى فكل مافى االمرانه اتقن لغة برمجة واحدة جيدا ثم بدأ بالتنقل الى اللغات
ستجد ان كل لغات البرمجة سواء كانت قديمة لذلك كتبا اودروسا عنھا فى االنترنت ليأخد عنھا فكرة جيدة
: التالية المواضيع الى وتتطرق او حديثة البد ان تتحدث
المصفوفات -الدوال -التكرار جمل -والتحكم الشرطجمل - المتغيرات
16
ولم يعد امامك اال ان تحدد ھدفك وتختار احدى لغات البرمجة .االن قد وصلت لنھاية المطاف ھنا فأنت
احدى لغات برمجة بيئة الدوت نت او لغة .NET: وان كنت انصحك بأن تبدأ ب.التى تريد دارستھا
- Javaالجافا
17
ھذا عرضا سريعا وخلفية موجزة عن لغات البرمجة وانواعھا واوجه الشبه واالختالف كان .. النھاية وفى
فى وتتطورھا لذلك ... السنوات السابقه، تذكر ان محور حديثنا يتركز تبسيط المعلومات للمبتدأين حديثا
. ان شاء هللا ھذا فى العمل ستكتسب معلومات كثيرة ومھارات افضل عن تبدأ عندما
فإن لم تكن لديك المعرفه بما سبق ذكره من معلومات وتقنيات برمجيه، فأرجوا ان ال يصيبك ذلك
باالحباط بل على العكس من ذلك يمكنك ان تعتبر نفسك مبرمج محظوظ جدا ، حيث ستبدء حياتك
احدث وأفضل تقنيه تستخدم لتطوير التطبيقات في القرن الحادي ومع الجديده من حيث أنتھى االخرون ،
هللابيسك ان شاء لغة الفجيوال مع او Microsoft.NETوھي والعشرين
18
ان الفرق الرئيسي بين لغات الدوت نت ھو في طريقة كتابة الكود، أما اإلمكانات فھي فيھا متساوية وإن
فقد أمكن دمج اللغتان لكتابة برنامج واحد، ولكن ھناك من .. برزت لغة على لغة أخرى في ھذا الجانب
.. يميل حاليا خصوصا اذا كان مبتدئ الى السى شارب
: نالحظ أوال أن الحصول على نتائج من أى برنامج يتطلب اآلتى
فى محرر النصوص المكتوب بلغة عالية المستوى، Editingاو كتابه البرنامج مرحلة إعداد1.
sourceويسمى ھذا البرنامج بالمصدر
وفيھا يتم تحويل البرنامج إلى لغة اآللة بعد التأكد من خلوه compilationمرحلة ترجمة البرنامج 2.
وإذا وجدت اى أخطاء يطلب المترجم تصحيحھا، .من األخطاء اللغويه حسب قواعد اللغة المستخدمة
. وال يقوم بعملية الترجمة إال بعد االنتھاء من تصحيح كل األخطاء
Runويتم فيھا إدخال البيانات المطلوبة، ثم يتم تنفيذ تعليمات البرنامج executionمرحلة التنفيذ 3.
Debugمرحلة اكتشاف االخطاء اذا حدث خطاء فى كتابه البرنامج 4.
19
:يتبع حل اي مشكلة باستخدام الكمبيوتر تنفيذ خطوات حل أي مشكلة عاديه في الحياة وھي
المشكلةوتوصيف تحديد
تصميم الخورزمية المناسبه لحل المشكلة
المشكلةبرنامج بلغة برمجه معينه لحل كتابة
المكتوبكفاءة البرنامج قياس
ھذه الخطوات بإختصار ھي التي يقوم المبرمج بقضاء معظم وقته في التعامل معاھا وإيجاد طرق سھلة
لكل خطوة منھا بحيث يخرج الحل الكلي بأكبر كفاءه ويتم حل المشكله بكفاءة من الكمبيوتر، واذا لم يتم
ھذا الحل بكفاءه كبيرة يعود لتجربة الخطوات السابقة والبحث عن نقاط الضعف وتعديلھا تعرف ھذه
حيث تحتاج كل خطوة إلختبار وسنتعلم طرق اختبار كفاءة البرامج بعد (Testing). الـالعمليه باسم
هللاذلك بإذن
20
المشكلة جيدا يساعدك على فھمھا جيدا وبالتالي عمل برامج مناسبة وقادرة على حل المشكلة بكفاءهتحديد
ويقصد بتحديد المشكله أي تعيين الھدف من حلھا، نحن نتعلم االن كتابة برامج بسيطة فبالتالي خطوة تحديد
بسيطةالمشكلة ستكون
لكن في حاالت البرمجة المعقدة فإن ھذه الخطوة ال تتم بسرعه وبديھيا كما ھو الحال مع التمرينات البسيطه
التي سنتعرض لھا ھنا
ھنا بما إن معنيين بحل مشكلة بسيطة فإن تحديد المشكلة يتم تلقائيا بتحديد مدخالت ومخرجات المشكله لكن
وكذلك تحديد الھدف منھا ويكون ذلك بسيط وواضح للتمارين البسيطه التي سنتعرض لھا في البداية بإذن هللا
21
بعد ان تم تحديد المشكلة، يتم تصميم الخورزمية المناسبة لحل المشكلة
خطوتينوذلك من خالل
كتابة الجورزم
مودلالمشكله في توصيف
وذلك بكتابة خطوات متسلسلة لحل المشكلة وتكتب في صورة اوامر متتابعه وال توجد طريقة : كتابة الجورزم
..معينه لكتابتھا النھا مجرد اسلوب للتفكير على الورق
اما التنفيذ من خالل لغة البرمجة يتبع طريقة معينه للكتابة وھي اوامر اللغة والبد من ادخال ھذه االوامر لآلله
..كما سنفھم ذلك فيما بعد .. بالظبط كما ھي
..المھم االن ان تعلم ان االلجورزم ھو سلسلة من خطوات حل المشكلة
يسھل ذلك فھم المشكلة واستيعابھا وتنفيذھا على الكمبيوتر من خالل لغة : توصيف المشكلة في مودل
.. flow chartالتي سنستعملھا في توصيف المشكله تسمي بالـ والطريقه ..المناسبةالبرمجه
22
اسلوب حل المشكلة، مجرد طريقة التفكير فيھا على الورقھو
ال عالقة له بلغة برمجة معينه وانما ھي المنطق الذي يستعمله االنسان في ادخال االوامر لآلله
وعليه فإن الحكم على كفاءه خورزميه عن األخري يتم من خالل قياس كفاءة ھذه الطريقه في التفكير
مثال سرعتھا في التنفيذ ومدى تعقيدھا، وسنتطرق فيما بعد للعوامل التي من خاللھا يتم الحكم على كفاءة
اآلن ما يھمنا ھو ان نفھم ان الخورزمية معنيه بحل مشكلة معينهنكتبھا لكن البرامج التي
البرنامج ھذا يمكن كتابته .. اريد عمل برنامج يقوم بجمع رقمين ثم اظھار النتيجه في نافذه جديده : مثال
.أو خورزمية ولكل منھا كفاءة مختلفة algorithmبعدة طرق كل منھا يسمى
23
..يتم أخذ المودل وااللجورزم وتنفيذھم على الكمبيوتر بلغة البرمجة المناسبه
..وسنتعرف على الكثير من اللغات واھمياتھا والفروق فيما بينھا الحقا إذن فھذه الخطوة مؤجلة
24
ھناك طرق وادوات كثيره كما سبق ووضحت من شأنھا قياس كفاءة البرامج
سنتعرض لھا الحقا بإذن هللا من خالل كثير من التجارب التي تجرى على البرمجيات الكبيرة للتأكد من كفائتھا
فان الطريقه التي سنستعملھا تسمي بالـ .. ھنا بما اننا نتحدث عن برنامج بسيط بھا لكن واالخطاء الموجوده
trace table .. اوDebug
:وفائدته .. trace tableوسنختبر اي برنامج نكتبه بإذن هللا من خالل الـ
trace tableمثال اريد عمل برنامج يجمع رقمين، باستخدام ال : ) اكتشاف أي اخطاء في منطق البرنامج -
من خالل تتبع منطق البرنامج( يمكن الوصول للمشكلة واكتشاف ان البرنامج كان يطرح الرقمين ال يجمعھما
لقد ذكرنا ان البرنامج يكتب في النھاية بلغة برمجه وھي مجموعة من االوامر : اكتشاف االخطاء البرمجية -
..الثابته التي يفھمھا الكمبيوتر والتي اذا تم التغيير فيھا يحدث خطأ
تعرف مثل ھذه .. خطأ فسيحدث ()clossالغالق النافذه واستدعيت االمر ()closeفاذا قمت بتعريف االمر
.. tracingويمكن اكتشافھا ايضا عن طريق ال syntax errorsباخطاء كتابة االوامر او ال .. االخطاء
25
: فى البداية يجب ان نعرف ان اى برنامج داخل اللغة يحتوى على جزئين اساسيين
واحد فقط Headerواى برنامج يحتوى على headerاالول يسمى
على االقل يجب ان يحتوى Blockواى برنامج يمكن ان يحتوى على اكثر من Blockالثانى يسمى
على واحد
؟؟ Blockما هو الـ
Blockو Headerوابسط برنامج يحتوى على Functionھو عبارة عن دالة
26
: Headerالعناصر التى تكتب فى : اوال
Directives
عبارة عن مجموعة ملفات موجودة داخل مترجم اللغة يتم استدعائھا لتصبح جزء من البرنامج وھى
محورى واساسى داخل ء جزوھذا الجزء ھو Compilerبـ مكتوبة مسبقا داخل مترجم اللغة او ما يسمى
يتم التعامل مع اللغة قه يطراذ انه عن واوامر تصدر للمترجم ليقوم باداء مھمة محددة برمجةاى لغة
بشكل سھل وبمعرفة كل ما يحتويه ھذا الجزء من كلمات محجوزة داخل اللغة وكيفية التعامل معھا وفيما
تستخدم كل كلمة فاننا نسير بذلك نحو فھم متعمق للغة البرمجة بشكل عام وجدير بالذكر ان ھذا الجزء ھو
النواة االساسية الذى بنيت عليه جميع لغات البرمجة كما انه يستخدم وسيط بين اللغة التى يفھمھا الشخص
1و 0 وھىالتى يفھمھا الجھاز هاللغواعنى ھنا الكود الذى يكتبه المبرمج وليست اللغة العادية وبين
27
#include توجيهى مثال ضم:
#define عرف
ھناك ثالث لغات يتم التمحور عليھم مع اى لغة برمجة وھما اللغة التى يفھمھا الشخص وھى الكود الذى يتم اذا
الـ والتى يلعب.1و وھىالمبرمج وبين اللغة التى يفھمھا الجھاز بواسط كتابته Compiler دور الوسيط فيھا
يتعامل بھا مع والتىاللغة الثالثة ھى التى يفھمھا المستخدم العادى وھى لغة االرقام والحروف والكلمات العادية
اى برنامج من خالل نوافذ التحكم لديه والتى ينسق المبرمج الكود الذى يكتبه لخدمة ھذه البيانات ولخدمة
فيهالمستخدم العادى ويلعب ھنا المبرمج دور الوسيط
Cخاص بھا وھو مكان كتابه الكود داخل اللغه اذ ال يصح استعمال كود الـ Compiler ولذلك نجد انه لكل لغة
كما يوجد الى لغة الكلمات الخاصة بھا وطرق لكتابة الجمل Basicمخصص للـ Compilerمثال داخل
البرمجية وطرسقة ترتيبھا دخل الكود
28
# include < I / o stream.h >
Include ھى داله موجودة داخل اللغة وعناھا استدعاء االمر ليصبح داخلBlock
Stream اسم الملف الذى تخزن به حيث يتم تخزين الملفات باسماء مختلفة وھذا احد اسمائھا
.h ھذا ھو امتداد الملف وسمى ذلك الن ھذا الملفHeadmen
I / O تستخدم فى توصيفIN C و OP C لكى يعملو فى البرنامج بشكل صحيح واذا لم تكتب داخل
Header فلن يمكن استخدام الخرج والدخل بشكل صحيح داخلBlock حيث ال يخلو اى برنامج منھم
فالملف الرئيسى البد من ذكره حيث ان جميع الدوال التى سوف يتم استخدامھا فى برنامجك البد من ذكر الملفات
الرئيسية التى تنتمى اليھا ھذه الدالة ، حيث انه اذا لم تستدعى الملفات الرئيسية واستخدمت دوال لتقوم بأعمال
معينة فإن البرنامج ال يمكن أن يعمل وذلك ألن الدالة التى استدعيتھا ال وجود لھا اال فى الملف الرئيسى الخاص
:ويوجد ھناك العديد من الملفات الرئيسيه منھا . بھا وانت لم تقم بإستدعائه
29
•(math.h) : وھذا الملف يحتوى على جميع الدوال الرياضية التى من خاللھا يمكن القيام بالعمليات الحسابية
•(time.h) : وھذا الملف يحتوى على دوال التعامل مع الوقت
•(string.h) : وھذا الملف للتعامل مع السالسل الحرفية
•(stdio.h) : وھذا الملف يعتبر األكثر استعماال نظرا لكونه ال يخلو برنامج من طباعه شئ ما الى الشاشة أو
أخذ معطيات من المستخدم
توصيف على ھذه الدالة عبارة عن ملف داخل اللغة ويحتوى < <math تسمىسبيل المثال ھناك دالة على
مع اى دالة رياضية داخل التعامل عند Headerالـ الدوال الرياضية بجميع انواعھا ولذلك يجب استدعائھا فى
Block والعملية الحسابية ونشرح ذلك بالمثال التالى الرياضية ولكن يجب ان نعرف ان ھناك فرق بين الدالة- :
A + B; X
وذلك النھا دالة رياضية Headerداخل mathفانھا تلزم تعريف داله Blockعندما تكتب ھذه الداله فى
30
للحيرة كما راينا فى المثالين السابقين اذا فال داعى Block فىتحدد على اساس الخطوات التى تكتب
Variableتسمى وذلك النھا معروفة مسبقا وھذه العملية Headerفى اختيار الكلمات التى ستكتب فى
Deceleration Global داخل وھى تعريف المتغيرات العامة المستخدمةBlock او داخل اكثر من
Block وھذا ھو الجزء الثانى من عملHeader اللغة وھذه المتغيرات التى تستخدم على مستوى
اى جزء من اجزاء البرنامج داخل البرنامج ككل بمعنى ان لھا صالحية االستخدام
31
Blockعلىاخل البرنامج ھو دالة والبد ان يكون مميز باسم واذا كان البرنامج يحتوى Blockاى
اجبارى Blockولو كان ھناك اكثر من {}Mainاو اسم الدالة {} Mainواحد البد ان يكون اسمه
الن مرحلة التنفيذ ستبدأ من خالله {}mainان يكون اسم واحد منھم
32
Main { }
{
Deceleration Local Variable
Statements ;
Return ( )
}
Blockوسنشرح االن كل جزئية من ھذا الـ
33
•Main { } : ھو اسم الدالة اوBlock
ستبداء Blockبان عملية كتابة الـ Compilerويعلم ھنا الـ beginھذا القوس يعبر عن البدايه او : }•
•Variable Deceleration Local : وھى تعريف التغيرات المحلية التى ستستخدم
ويجب بعد االنتھاء من كتابة جملة داخل Statementsوھى عبارة عن مجموعة جمل او Blockداخل •
Block وضع;
•Return( ) : تستخدم كأشارة الى مترجم اللغة ان كل الخطوات السابقة قد تم كتابتھا بشكل صحيح
بأن ھذا الـ قد تم االنتھاء منه Compilerويعلم الـ Endھذا ھو قوس النھاية او {•
mainاذا كان القوس الخاص بھا ال يوجد به شئ اذا البد ان نكتب قبل اسم الداله ( ) returnبالنسبة الى جملة •
{ } Void mainلتصبح Voidكلمة { }
{ } int mainلكى تصبح intيجب ان نكتب (0)ولو كان يوجد به •
والحظ الكتابة داخل القوس ھى شىء اختيارى وال يمت باى صلة الى صحة الكود او خطائه •
34
•Global : ھى تعريف للمتغيرات العامة على البرنامج وممكن ان تستخدم فى جميعBlocks
•Local : ھى متغيرات محلية اى يمكن استخدمھا داخلBlocks التى تعرف فيه وال تخرج عن
ھذا الحد
35
كما نھتم بتوضيح المخرجات وجعلھا مفھومة قدر اإلمكان لمشغل البرنامج ، يجب أن نھتم بوضوح
: البرنامج فى حد ذاته ايضا وذلك بمعنى انه
كرمز مثال للعمر ، من االفضل Xفبدال من المتغير .يجب ان تدل اسماء المتغيرات على مسمياتھا1.
. الذى يعنى العمر ageاستخدام
، وھذه الجمل ليست موجھه ( أى توضيحية ) يجب توضيح خطوات البرنامج بجملة تعليقية 2.
فمثال نجد مثال لبرنامج . للحاسب بل لالنسان الذى يقرأ البرنامج ، وھى تساعده على فھمه وتتبعه
ما كبير وغير واضح ، وھنا يلجئ المبرمج إلى استعمال التعليقات لجعلھا أكثر وضوح
جمل : /* ........... بين الرمزين comment statementsتوضع الجمل التوضيحية Cفى لغة
........*/ توضيحية
وھى قد تكون باللغة االنجليزية أو العربية أو بأى لغة أخرى
36
ما ھو الغرض من البرنامج التالى ؟ : مثال
/*********برنامج لحساب مساحة الدائرة *******/
Main()
{
float radius = 5.67;
/* radius : نصف القطر * /
pi = 22./7. , /* pi : مقدار ثابت*/
area; /* area : المساحة */
area = pi * radius * radius;
printf)“\n %f = المساحة “ , area (;
}
الحظ ان البرنامج بھذا الشكل واضح
فى متغيراته ، والغرض منه ھو
حساب مساحة دائرة نصف قطرھا
الحظ ايضا أنه بإمكانك وضع . 5.67
الجمل التوضيحية فى اى مكان
. مناسب من البرنامج
37
يتم : compiler errorالخطأ اللغوى 1.
تصحيحه بالرجوع إلى نقطة الخطأ فى
البرنامج ، فإذا كان الخطأ واضحا كما ھو
فيتم تصحيحه الحال فى أغلب البرامج
أما إذا عجز . واعادة الترجمة من جديد
المبرمج عن اكتشاف ھذا الخطأ فعليه
بالرجوع إلى دليل اللغة أو االستعانه بمفتاح
F1المساعدة
Source Program
C compiler
Object Program
Linker
Executable Program
Library
38
: linker errorخطأ الرابط 2.
يتم تصحيحه بالتأكيد من كتابة اسم الدالة بصورة صحيحة او التأكد من استخدام متغيراتھا كما ھو محدد
فى تعريفھا
الحظ أن تصحيح األخطاء اللغوية فى البرنامج ال يعنى أن البرنامج سوف يتم تنفيذه بصورة
مثل خطأ execution errorsسليمه فقد تظھر فيه أخطاء أثناء التنفيذ تسمى بأخطاء التنفيذ
الذى ينتج عند محاولة القسمة على الصفر فى البرنامج overflowالفيض
واخيرا يجب التنويه الى ما يعرف باألخطاء المنطقية التى ال عالقة لھا بلغة البرنامج أو اآللة التى
ولتصحيحھا البد من . بل ھى أخطاء ناتجة عن بناء البرنامج على خوارزمية غير سليمة. تنفذه
. مراجعة ھذه الخوارزمية خطوة خطوة بطريقة التتبع
39
X = 5: الجملة فى لغات البرمجة ھى عبارة عن أمر من المبرمج للحاسوب بأن ينفذ عمال ما فمثال الجملة
: والجملة Assignment statement، لذلك فھى تسمى جملة تعيين Xھى طلب تعيين القيمة للمتغير
sum = 27.8 + 33.5; أى ) وتعيين الناتج 33.5+ 27.8تطلب من الحاسوب أن يقوم بعملية الجمع
: ورغم أن ھذه الجملة تطلب أمرين ھما الجمع تأخذ الشكل العام . sumللمتغير ( 61.3
Var = expression ;
رمز ألى عبارة حسابية expressionيرمز ألى متغير ، و varحيث
40