بسم الله الرحمن الرحيم
اخواني الاعزاء .. هذه مقدمة في دروس لغة البرمجة C++ و التي تعد من أعظم لغات البرمجة للحواسيب الشخصية و المتوسطة على الاطلاق ان لم تكن اعظمها..
أرجو ملاحظة النقاط التالية:
* ستكون بعض الدروس متأخرة قليلا ( لا اضمن نشر الدروس بسرعة كبيرة ! )
* سأحاول استخدام اللغة الانجليزية في شرح معظم الدروس للتسهيل على من اراد الاستزادة
* سأحاول البداية من الصفر المطلق في الدروس ، فمن عنده خلفية ( يتحملنا شوي ) لحد ما نصل عند مستواه ، و ذلك لتحقيق الفائدة العامة
* سنبدأ بالتطبيق في المراحل الاولى على برنامج Visual C++ version 6 الموجود في حزمة البرامج MS Visual Studio 6 ولا داعي لشرح كيفية تنزيل البرنامج
* تتطلب الدروس معرفة أساسيات نظام التشغيل Windows للمستخدمين العاديين
الدروس تحتوي ( حتى اللحظة ) :
1. البرنامج ( اهميته و ماهيته )
2. مراحل انتاج البرنامج
3. تاريخ لغة البرمجة C++
4. المتغيرات
5. البرنامج الاول
6. الادخال و الاخراج و أولويات العميليات الحسابية
7. الجمل الانتقالية: if , switch
8. جمل الحلقات: goto و while و do-while و for
9. الجمل break و continue
10. المصفوفات ذات البعد الواحد
11. المصفوفات ذات الابعاد المتعددة
12. المؤشرات
و اللائحة ستطول مع الزمن ان شاء الله.
_______________________________________________
نبدأ الدرس الاول..
البرنامج: هو مجموعة أوامر يكتبها المبرمج حسب خطوات منطقية متسلسلة لحل مشكلة معينة.
أذكّر.. البرنامج ما هو الا حل مشكلة معينة مهما عظم أو صغر..
بالنسبة لأهميته ..
ان نظرت الى الشاشة التي امامك و تفحصت جهازك القابع على الطاولة.. فأنت ترى معدات و أسلاك توصيل كبيرة الحجم أحيانا و صغيرة بحيث لا ترى بالعين المجردة أحيانا أخرى.
فكيف يستطيع الحاسوب المكون من هذه العناصر و الدوائر الكهربائية و الالكترونية المعقدة من حل مشاكل الانسان تارة و امتاعه تارة اخرى ؟
كل ذلك يحصل بمساعدة البرامج.فهي عبارة عن اشارات تدل الحاسوب لفعل أوامر معينة.
من أنواع البرامج:
1. نظم التشغيل (Operating Systems): و هي مجموعة هائلة من البرمجيات الصغيرة التي يحل كل منها مشكلة صغيرة جدا كجمع رقمين أو تحديث الالوان على الشاشة. و من أمثلتها المعروفة نظم Windows و نظام Linux و Unix و Apple Mac.
2. البرمجيات المساعدة (Utility Softwares): و هي برمجيات تساعد المستخدم على حل بعض المشاكل التي تواجه الجهاز و منها مضادات الفيروسات و أشباهها. من أمثلتها McAfee .
3. الألعاب الحاسوبية: و هي برمجيات تساعد المستخدم على الخروج من واقعه الحقيقي الى واقع آخر بهدف التسلية و المرح. " بالنسبة للأمثلة فلكل منا أمثلته المفضلة ! "
__________________________________________
الدرس الثالث: مراحل كتابة البرنامج:
ملاحظة: انتم دخلتم هسا في تخصصي! أهلا و سهلا!!!!
يمر البرنامج بخطوات عديدة قبل خروجه الى الحياة العملية.. و أي تقصير في أحدها سيؤدي بكل تأكيد الى فشل جزئي أو كلي أحيانا في أداء البرنامج.. و على الاقل سيكون البرنامج ضعيفا هش البناء.
أولا (تحديد المشكلة و جمع المعلومات): لكل مشكلة حل مهما كانت .. و لكل داء دواء يستطب به الا الحماقة اعيت من يداويها... " بيت شعر قديم ". عليك - عزيزي المبرمج - تحديد المشكلة قبل الدخول في تفاصيلها و إعطائها حجمها الصحيح الأكيد ( لا تزيد ولا تنقص ! ). مثال:
اذا تحتاج برنامج لتمثيل الحركة على اشارة مرور.. ممكن يكون المدى ( Domain ) البرنامج هو واحد فقط من الشوارع التي تصل الى الاشارة و ممكن يكون هو جميع الحي التي تقع الاشارة في منتصفه. احذر ! فعدم تحديد المدى الصحيح للبرنامج قد يقود الى لبس في الفهم للمشكلة أو اعطائها اكبر من حجمها مما يضيع عليك المال و الجهد. اذهب الى الاماكن التي تتوقع أن يباع برنامجك فيها و استفسر من الزبائن عن المتطلبات الرئيسة للبرنامج من وجهة نظرهم ، لا تعطهم أكثر مما يطلبون لأنهم لن يحتاجوه ولا تعطهم أقل لكي لا يتأخروا عليك في الدفع .
ثانيا ( تحليل المشكلة ): حلل المشكلة الى مشاكل أبسط منها و الأبسط الى أبسط حتى تصل الى مشاكل ذرية " Atomic Subprblems " و للتمثيل:
فلكي نمثل حركة السير على الاشارة فنحن نحتاج الى عداد أو ساعة لتقسيم الحركة و معرفة أي جهة ستفتح و أيها ستغلق.. و ما الى ذلك.
ثالثا ( تصميم الحل ): وجدنا المشكلة و حللناها .. فلنبدأ بالحل.. في هذه الخطوة يجب عليك أن تبدأ بايجاد الحل المناسب و تصميمه بأقل ما يمكن من استغلال جهد الحاسب و سعته التخزينية ، مع مراعاة محاولة جعل البرنامج بأسرع ما يمكن (( من أراد الاستزادة فعليه الرجوع الى مراجع هندسة البرمجيات )) .
رابعا ( الاختبار ): في هذه المرحلة نقوم بعمليات اختبار للبرنامج جزئيا حتى نصل لاختبار لكامل محتويات البرنامج.
__________________________
تاريخ لغة البرمجة C++ ..
طبعا هذا الدرس اختياري ، ولا يجب عليك عزيزي القاريء الالمام التام به ، لذلك سأحاول الاختصار قدر الامكان.
بدأت هذه اللغة في معامل Bill Labs و هي المكان نفسه الذي اخترع فيه الترانزستور من قبل و هي - المعامل - ذات سمعة كبيرة في مجالات التكنولوجيا جميعا..
بالنسبة للغة نفسها فهي مشتقة من لغة سابقة لها اسمها BCLP و اسمها المختصر هو B ، و من ثم تطورت الى لغة C التي صممت بسبب الحاجة الى لغة لكتابة نظم التشغيل و خاصة Unix التابع لشركة Sun Microsystems .
و من بعد ظهور البرمجة الموجهة للكائنات تطورت اللغة لتعتمد Object oreiented programming فأصبحت تدعى C++ .
دخلت Microsoft على الخط..! فأنتجت تطويرا جديدا لهذه اللغة يعتمد البرمجة للنظامها المشهور Windows و أسمته Visual C++ . و ظهر منها 6 نسخ كان آخرها VC++ 6 في عام 1998 .
في منتصف التسعينيات أنتجت شركة Sun بعض التعديلات على اللغة الاصلية و أخرجت لغة Java كلغة ببرمجة مخصصة لتطبيقات الويب و داعمة لمباديء البرمجة الكينونية و تعمل على معظم انظمة التشغيل في العالم.
في عام 2000 أنتجت مايكروسوفت .NET framework و الذي كان - ولا يزال - صيحة هائلة في عالم البرمجة.
مع الاصدار الجديد ظهرت آخر النسخ المعدلة عن اللغة C++ و التي سميت بـ Maneged C++ ( MC++ )