الدرس الأول: مقدمة عن أساسيات البرمجة والتعريف بلغة السي بلس بلس


#1

بسم الله الرحمن الرحيم

الحمد لله رب العالمين والصلاة والسلام على أشرف المرسلين، بفضل الله وتوفيقه نبدأ أول درس فى دورتنا

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

بعنوان

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

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

والأن مع الدرس

ما هي البرمجة؟

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

ومن أمثلة الأجهزة القابلة للبرمجة جهاز الحاسب الآلي ومكوناته ويطلق عليه الألة او العتاد الصلب Hardware يمكن للكمبيوتر تشغيل البرامج ومعالجتها بسرعة عالية جدا أسرع مليون مرة من العقل البشري.

لماذا نتعلم البرمجة؟

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

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

عناصر البرنامج

يجب ان يحتوي أي برنامج على عدد من العناصر المعينة حتى نحصل على النتائج المطلوبة فمثلا إذا أردنا ان يفوز برنامجنا امام اقوى المنافسين في لعبة الشطرنج فيجب علينا ان نقوم بتزويد البرنامج بما يلي

الثوابت
المدخلات
المخرجات
المنطق في اتخاذ القرار
وسائل التحكم في سير البرنامج

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

لغات البرمجة

تنقسم لغات البرمجة الي ثلاث مجموعات وهي.

لغات الالة Machine languages

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

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

+1300042774
+1400593419
+1200274027

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

لغات التجميع Assembly languages

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

load     X
add      Y
store    Z

مثال على لغة التجميع يقوم بجمع X و Y وتخزين الناتج في Z

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

فمثلا لو كان البرنامج كما يلي

Z = X + Y

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

لغات عالية المستوى High-level languages

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

وبالطبع لا يفهما الكمبيوتر ولذلك تحتاج الي مترجم لتحويلها والمترجم الخاص بهذه اللغة يسمي المعالج Compiler وقد تحتاج المعالجات الي الكثير من الوقت لتحويل اللغات عالية المستوى الي لغة الالة ولذلك تم تطوير المترجمات Interpreter وهي تقوم بتشغيل البرامج مباشرة بدون تحويلها الي لغة الالة وهذه البرامج التي تعمل فقط على بصورة افتراضية على جهاز الكمبيوتر، اما البرنامج الذي يتم تحميله على الاله فيجب ان يتم معالجته باستخدام المعالج Compiler.

تاريخ لغات البرمجة

تم اكتشاف لغات البرمجة منذ أكثر من ١٠٠ سنة على يد السيدة Ada Lovelace حيث قامت سنة ١٨٤٣ بعمل خوارزمية تعمل على ماكينة أشبه بالحاسبات الميكانيكية.

من أقدم لغات البرمجة الحديثة التي مازالت مستخدمة حتى الان هي الفورتران FORTRAN والليسب LISP والكوبول COBOL، استخدمت هذه اللغات منذ الخمسينات في الأبحاث العلمية والعمليات الحسابية.

لغة السي

في سنة ١٩٧٢ تم تطوير لغة السي وسميت بهذا الاسم لأنها تعتبر امتداد للغة تسمي بي وهي ثاني أكثر لغات البرمجة شيوعا بعد الجافا وتم منها اشتقاق العديد من اللغات البرمجية الأخرى مثلا الجافا والسي بلس بلس.

تستخدم لغة السي بكثر في أنظمة التشغيل والحاكمات المصغرة فمثلا نظام التشغيل يونكس تم كتابته كاملا بلغة السي.

ولانتشار هذه اللغة أدى الي ظهور بعض الاختلافات والمشاكل التي قد تواجه المبرمجين الذين يريدون كتابة برامج تعمل على مختلف الأجهزة ويطلق عليها المصطلح portable ولذلك كان هناك حاجة الي معيار موحد لهذه اللغة، ولذلك قام المعهد المعايير الوطني الأمريكي بالتعاون مع الايزو في سنة ١٩٩٠ بإصدار معيار موحد لهذه اللغة ويسمى C99.

لغة السي بلس بلس

هي لغة برمجة قوية وامتداد للغة السي مع بعض الإضافات والتحسينات ولهذا سميت بلس بلس، تم اختراعها سنة ١٩٨٣ في معامل بيل بالولايات المتحدة الأمريكية على يد بيارن ستروستروب Bjarne Stroustrup.

ومن أهم الإضافات البرمجية في لغة السي بلس بلس البرمجة الكائنية Object Oriented والدوال الافتراضية وستعرف عليهما خلال الدورة بالتفصيل.

تمتاز لغة السي بلس بلس بانها تحتوي على مكتبة معيارية C++ Standard Library تشمل العديد من الإضافات البرمجية والدوال الجاهزة ولذلك يكون دائما هناك مسارين لتعلم هذه اللغة الاول عن طريق تعلم اللغة نفسها والثاني عن طريق تعلم كيفية استخدام المكتبة المعيارية.

بيئة البرمجة والتطوير في لغة ++C

يتكون نظام لغة ++C من ثلاث مكونات رئيسية وهي

  • بيئة التطوير
  • واللغة
  • والمكتبة المعيارية.

يمر أي برنامج مكتوب بلغة ++C بمراحل مختلفة وهي بالترتيب كما يلي

  • التحرير edit
  • المعالجة المبدئية preprocess
  • المعالجة compile
  • الربط link
  • التحميل load
  • التشغيل execute

المرحلة الأولي التحرير edit

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

المرحلة الثانية والثالثة المعالجة المبدئية preprocess والمعالجة compile

يتم في هذه المرحلة معالجة البرنامج ولكن قبل المعالجة يكون هناك معالجة مبدئية preprocess تتم بصورة أتوماتيكية وخلال هذه المعالجة المبدئية يتم ترجمة بعض المرادفات التي تم تعريفها على انها أوامر معالجة مبدئية preprocessor directives ومن امثلة هذه الاوامر #include حيث يقوم بإدراج بعض الملفات الخارجية المرتبطة بالبرنامج، الاوامر الخاصة بالمعالجة المبدئية سيتم شرحها لاحقا.

بعد ذلك تتم عملية المعالجة وهي تحويل البرنامج الي لغة الالة.

المرحلة الرابعة الربط link

يتكون برنامج ++C من مجموعة من الدوال والاوامر بعضها موجود في المكتبة المعيارية وبعضها موجود مكتبات خاصة وبعضها قام المستخدم بتعريفها، يقوم الرابط بتجميع هذه الأجزاء معا لعمل نسخة يمكن تشغليها من البرنامج executable image وعادة تنتهي بالامتداد exe في أنظمة الويندوز مثلا.

المرحلة الخامسة التحميل load

في هذه المرحلة يتم وضع البرنامج المراد تشغيله في الذاكرة وتتم هذه العملية بواسطة loader

المرحلة السادسة التشغيل execute

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

الأخطاء البرمجية

طبعا من الشائع جدا ان لا يعمل البرنامج من الوهلة الاولي لتشغيله فعادة يكون هناك الكثير من الأخطاء البرمجية.

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

فمثلا من الأخطاء الشائعة هو القسمة على صفر وهو خطأ يحدث أثناء التشغيل وتسمي هذه النوعية من الأخطاء runtime errors.

البرمجة الكائنية Object oriented Programming

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

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

الكائنات من الممكن ان تكون أي شيء في الطبيعة انسان، حيوان أو جماد، يحتوي كل كائن على مجموعة من الخصائص مثلا الطول او الوزن او الجنس أو الفصيلة وتسمي هذه الخصائص attributes بمفهوم لغات البرمجة.

يكون لكل كائن خصائص كما يكون له أيضا سلوكيات behaviors فمثلا الأنسان يمكن ان يكون رجل ويمكن أيضا ان يكون يأكل ويشرب وينام ويبكي، ويمكن للسيارة التسارع والتباطء والتوقف.

لتسهيل طريقة التفكير هذه تم تطوير لغة تسمي لغة النمذجة الموحدة Unified Modeling Language™ (UML™) وهي تمكننا من التعبير عن البرنامج بصورة رسومية حتى تكون اكثر ملائمة سهولة للعقل البشري.

مثال على لغة النمذجة الموحدة

الي هنا يكون قد أنتهي الدرس الأول، وفى انتظار اسئلتكم ومناقشاتكم وان شاء الله سيتم أضافة التكلمة لتجهيز بيئة العمل فور الانتهاء من تجهيزها.

والسلام عليكم ورحمة الله وبركاته


دورة أساسيات البرمجة بلغة السي بلس بلس
اعلان عن عقد دورة أساسيات البرمجة بلغة السي بلس بلس ++C
#2

تحميل الدرس الأول فى صورة PDF
الدرس الأول مقدمة عن أساسيات البرمجة والتعريف بلغة C.pdf (396.4% u)


(Wael Abed) #3

بشمهندس احمد شكرا على قيامك ببدء هذة الدورة لهذة اللغة
كما اقترح على حضرتك اقتراح بسيط ان شاء الله
ان توضح كيفية تحميل وتسطيب لغة السي بلس بلس حتى نتابع الدورة مع حضرتك
وشكرا مره اخرى على هذة الدورة الرائعه


#4

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


(Sultan Hassan ) #5

بارك الله في جهودك ,


#6

يرجى الاطلاع على الموضوع الاتي