برمجة:سي بلس بلس
إن لغة البرمجة سي بلس بلس (++C) هي واحدة من أكثر لغات البرمجة إستخداما و أوسعها إنتشارا بالإضافة إلى جدتها ، لغة سي (C) ، تعتبر لغة سي بلس بلس من لغات البرمجة الكائنية التوجه ، وإن كان من الممكن إستخدامها بشكل Structural او كمزيج من الإثنين.
تعتبر لغة ++C من لغات البرمجة عالية المستوى كما أنّها من أكثر هذه اللغات انتشاراً ولغات البرمجة عالية المستوى هي اللغات التي ظهرت لتسريع عملية البرمجة حيث أن تعليماتها أقرب ماتكون إلى لغة الإنسان وهذا مايجعل عملية البرمجة أكثر سرعةً وسهولة. تسهّل لغة ++C الأسلوب المهيكل والمنهجي لعملية تصميم البرامج،حيث تتألّف برامج هذه اللغة من مكونات تسمّى الأصناف classes والدوال Functions وبالتالي يمكن تقسيم عمليّة تعلّم لغة ++C إلى قسمين:يعتمد الأول منها على تعلّم لغة ++C نفسها في حين يسمح الثاني بتعلّم كيفية استخدام الأصناف الملحقة بهذه اللغة واستخدام التوابع الموجودة ضمن المكتبة المعياريّة ANSI C
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
التسمية[عدل | عدل المصدر]
ماذا تحتاج للبدء[عدل | عدل المصدر]
تحتاج لكمبايلر(مترجم يقوم بتحويل ما تكتبه إلى لغة الآله التي يفهمها المعالج) ... ولنكر(رابط) ... ومحرر نصوص ... بعض بيئات التحرير توفر هذه الثلاث ... مثالها مايكروسوفت فيجوال سي بلس بلس ... ولكنه مغلق المصدر وغير حر أو مجاني، يمكنكم إستخدام أحد التالية:
- إخيار أحد بيئات التطوير المتكاملة، يمكنك رؤية المقارنة بينهما على صفحة Comparison of integrated developmnet environment على ويكيبيديا الإنجليزية
- إستخدام Quincy 2005 الذي يأتي مع كومبايلر gcc وأدوات أخرى حرّة.
- إستخدام برامج حزمة مينجوي، تعمل من سطر أوامر دوس بشكل عام وتستخدم كومبايلر gcc وأدوات أخرى مرافقة.
- أتيتكم اليوم ببرنامج Intel® C++ Compiler 9.1 قوي ومميز ... لم أرى أفضل منه ... حجمه أكثر من 150 ميجا بقليل ... لن تجد أفضل منه ... ربما هو مجلاني وربما لا ... للتحميل : http://www.intel-inside.tm/cd/software/products/asmo-na/eng/compilers/cwin/eval/index.htm
قائمة الموضوعات و الدروس[عدل | عدل المصدر]
ملاحظة: يحتوي كل موضوع على شرح مبسط لفكرة و هدف الدرس, الغرض من هذا الشرح هو تنظيم كتابة الدروس و المحافظة على تسلسلها بشكل منطقي. من الممكن - بعد الانتهاء من الكتاب - اختصار هذه الشروح الصغيرة بشكل أكبر بحيث لا تزيد عن خمس كلمات.
- سي بلص بلص: مقدمة في البرمجة
- التفكير في كيفية عمل الأشياء, ايجاد حلول للمشاكل, الخ
- سي بلص بلص: الدرس الأول
- البرنامج الأول(الفارغ), شرح مفاهيم أساسية: نقطة الدخول الى البرنامج, نقطة الخروج, لماذا الـ main؟ فكرة عامة عن تقسيم البرامج الكبيرة الى أجزاء صغيرة (برامج جزئية).
- سي بلص بلص: الدرس الثاني
- الكتابة على الشاشة, العمليات الأساسية, الجمع و الطرح, المتغيرات, الثوابت literal constants.
- سي بلص بلص: الدرس الثالث
- القراءة من المستخدم, تابع العمليات الرياضية و الاشارات في اللغة
- سي بلص بلص: الدرس الرابع
- السير المنطقي للبرنامج, الأوامر الشرطية, الاشارات الشرطية, و منطقها
- سي بلص بلص: الدرس الخامس
- تمارين, حل مشكلات بسيطة, أمثلة للفتكير البرمجي, التركيز على عقلية التحليل .. الخ.
- سي بلص بلص: الدرس السادس
- الفنكشنز, تقسيم البرنامج الى برامج جزئية (حسب المهام), إرسال البارامترات, الخ.
- سي بلص بلص: الدرس السابع
- تابع الفنكشنز, مفهوم الـ expression و الـ return value, استخدام الفنكشنز كعمليات حسابية, نطاق المتغيرات scope الخ.
- سي بلص بلص: الدرس الثامن
- استخدام الفنكشنز لتحسين بنية و تركيب البرامج, تحسين برامجنا السابقة.
- سي بلص بلص: الدرس التاسع
- تطبيقات و تمارين, مزيد من المشاكل و حلولها
- سي بلص بلص: الدرس العاشر
- المصفوفات ( ارريز ), مفهوم الـ initialization بشكل عام, و تطبيقه على المصفوفات و بيان حالاته الاستثنائية.
- سي بلص بلص: الدرس الحادي عشر
- مفاهيم عامة عن الذاكرة, طبيعة المصفوفات في الذاكرة, مقدمة عن المؤشرات.
- سي بلص بلص: الدرس الثاني عشر
- استخدام المصفوفات في البرامج, التفكير في استخدامها, فوائدها, تطبيقات, الخ.
- سي بلص بلص: الدرس الثالث عشر
- مقدمة عن المؤشرات: مفهوم الـ statically allocated و الـ dynamically allocated بالنسبة للمتغيرات, الكومبايلر و اسماء المتغيرات و عناوينها في الذاكرة, استخدام المؤشرات للوصول الى المتغيرات اللتي تم حجزها ديناميكيا.
- سي بلص بلص: الدرس الرابع عشر
- تطبيق على المؤشرات: إرسال عناوين المتغيرات الى الفنكشنز, مع تركيز على شرح الستاك و توضيح عدم جواز إرجاع مؤشر لمتغير داخلي في فنكشن, مع مقدمة عن الرفرنس في السي بلص بلص.
- سي بلص بلص: الدرس الخامس عشر
- الـ struct, تجميع معلومات متعلقة ببعضها, تمثيل حالة كائنات حقيقية, الخ.
- سي بلص بلص: الدرس السادس عشر
- تطبيقات عملية على الـ struct
- سي بلص بلص: الدرس السابع عشر
- استخدام الـ struct و المؤشرات لعمل linked list. نقاط القوة الضعف في الـ linked list و متى يمكن استخدامها, مع تطبيق بسيط.
- سي بلص بلص: الدرس الثامن عشر
- الـ class, توضيح عام من ناحية لغوية, الـ syntax الخاص بالكلاس و غيره من هذا الكلام.
- سي بلص بلص: الدرس التاسع عشر
- البرمجة الشيئية / الكانئية, الكائنات objects, مفاهيم متعمقة .. تحليل المشكلة الى اشياء و كائنات, الخصائص و التصرفات, attrbutes and behaviour .. الخ.
- سي بلص بلص: الدرس العشرون
- تابع مفاهيم متعمقة عن البرمحة الشيئية.. تصميم الحلول باستخدام الكائنات, ذكر بسيط لقضايا الـ cohesion and coupling, مع تطبيقات عملية, و لو بسيطة.
- سي بلص بلص: الدرس الحادي و العشرون
- مناقشة مواضيع الـ cohesion, coupling, association: التفكير جيدا في تصميم الفئات بشكل جيد و متماسك, فصل المهام الزائدة عن الـ class الى فئات classes أخرى, الربط بين الكائنات, تقليل التداخل coupling.
- سي بلص بلص: الدرس الثاني و العشرون
- الوراثة inheritance, مع تطبيقات.
- سي بلص بلص: الدرس الثالث و العشرون
- الـ polymorphism.
- سي بلص بلص: الدرس الرابع و العشرون
- تطبيقات عملية تستخدم المفاهيم اللتي تمت مناقشتها, مع التقديم لبعض الـ design patterns, كالـ singleton مثلا.
.. و هناك المزيد ان شاء الله.