أساسيات البرمجة بلغة C++
تعلم لغة C++ من الصفر إلى الاحتراف. هذا المسار يغطي جميع المفاهيم الأساسية والمتقدمة خطوة بخطوة، مع مشاريع عملية لتطبيق ما تعلمته.
مقدمة في البرمجة
ما هذا؟
البرمجة هي عملية كتابة تعليمات للحاسوب لتنفيذ مهام محددة. في هذه المرحلة، ستتعلم أساسيات لغة C++، كيفية إعداد بيئة التطوير (IDE)، وكيفية كتابة أول برنامج لك (Hello World).
لماذا هو مهم؟
فهم أساسيات البرمجة هو حجر الزاوية لكل شيء. C++ هي لغة قوية تستخدم في تطوير الألعاب، أنظمة التشغيل، والتطبيقات عالية الأداء.
متى تستخدمه؟
في بداية رحلتك التعليمية، وقبل تعلم أي شيء آخر. هذه المفاهيم تنطبق على جميع لغات البرمجة.
مصادر التعلم
المتغيرات وأنواع البيانات
ما هذا؟
المتغيرات هي حاويات لتخزين البيانات. في C++، هناك أنواع بيانات أساسية مثل: int (أعداد صحيحة)، float (أعداد عشرية)، double (أعداد عشرية دقيقة)، char (حروف)، و bool (صح/خطأ).
لماذا هو مهم؟
المتغيرات هي أساس أي برنامج. بدونها، لا يمكنك تخزين أو معالجة أي بيانات. كل تطبيق يعتمد على المتغيرات.
متى تستخدمه؟
كلما احتجت لتخزين أي نوع من البيانات مثل الأرقام، النصوص، أو القيم المنطقية.
الإدخال والإخراج
ما هذا؟
في C++، نستخدم `cin` لإدخال البيانات من المستخدم، و `cout` لعرض البيانات على الشاشة. ستتعلم كيفية التفاعل مع المستخدم من خلال إدخال وإخراج البيانات.
لماذا هو مهم؟
بدون الإدخال والإخراج، لن يتمكن المستخدم من التفاعل مع برنامجك. هذه هي الطريقة الأساسية للتواصل مع المستخدم.
متى تستخدمه؟
في أي برنامج يحتاج إلى استقبال بيانات من المستخدم أو عرض نتائج.
العمليات
ما هذا؟
العمليات (Operators) هي رموز تستخدم لإجراء عمليات حسابية أو منطقية. في C++، هناك عمليات حسابية (+، -، *، /، %) وعمليات مقارنة (==، !=، <،>، <=،>=) وعمليات منطقية (&&، ||، !).
لماذا هو مهم؟
العمليات تسمح لك بمعالجة البيانات واتخاذ القرارات بناءً على شروط معينة.
متى تستخدمه؟
في أي عملية حسابية، مقارنة قيم، أو إنشاء شروط معقدة.
الجمل الشرطية
ما هذا؟
الجمل الشرطية (Conditional Statements) تسمح للبرنامج باتخاذ قرارات مختلفة بناءً
على شروط معينة. في C++،
نستخدم if، else if، else، و
switch لتنفيذ أكواد
مختلفة حسب حالة معينة.
لماذا هو مهم؟
الجمل الشرطية تمكن البرامج من أن تكون ذكية وقادرة على التكيف مع المدخلات المختلفة. بدونها، ستكون البرامج خطية وتنفذ نفس التعليمات دائماً.
متى تستخدمه؟
عندما تريد التحقق من صحة المدخلات، أو تنفيذ كود مختلف حسب حالة معينة، أو إنشاء قوائم اختيار متعددة.
الحلقات (Loops)
ما هذا؟
الحلقات (Loops) تسمح بتنفيذ نفس الكود عدة مرات. في C++، هناك ثلاثة أنواع من
الحلقات: for،
while، و do-while. كل نوع له استخداماته الخاصة حسب
الحاجة.
لماذا هو مهم؟
الحلقات توفر الوقت والجهد. بدلاً من كتابة نفس الكود 100 مرة، يمكنك كتابة حلقة واحدة. كما أنها أساسية لمعالجة المصفوفات والمجموعات الكبيرة من البيانات.
متى تستخدمه؟
عندما تريد تكرار مهمة عدة مرات، معالجة قوائم من البيانات، أو إنشاء أنماط متكررة.
الدوال (Functions)
ما هذا؟
الدوال (Functions) هي كتل من الكود قابلة لإعادة الاستخدام. تأخذ مدخلات (parameters)، تنفذ عمليات محددة، وتعيد مخرجات (return value). في C++، يمكنك إنشاء دوال خاصة بك أو استخدام دوال جاهزة من المكتبات.
لماذا هو مهم؟
الدوال هي أساس البرمجة المعيارية. بدلاً من تكرار نفس الكود عدة مرات، يمكنك كتابة دالة واحدة واستدعائها كلما احتجتها. هذا يقلل من الأخطاء ويسهل الصيانة.
متى تستخدمه؟
كلما وجدت نفسك تكرر نفس الكود في عدة أماكن، أو عندما تريد تجميع مجموعة من العمليات تحت اسم واحد.
المصفوفات (Arrays)
ما هذا؟
المصفوفات (Arrays) هي هياكل بيانات تخزن مجموعة من العناصر من نفس النوع في موقع متصل بالذاكرة. يمكنك الوصول إلى أي عنصر باستخدام الفهرس (index) الخاص به.
لماذا هو مهم؟
المصفوفات هي أكثر هياكل البيانات استخداماً في البرمجة. كل تطبيق تقريباً يستخدم المصفوفات لتخزين ومعالجة قوائم من البيانات.
متى تستخدمه؟
لتخزين قوائم من البيانات مثل درجات الطلاب، أرقام الموظفين، أو أي مجموعة من العناصر المتشابهة.
النصوص (Strings)
ما هذا؟
النصوص (Strings) هي سلاسل من الحروف. في C++، يمكنك التعامل مع النصوص باستخدام
مصفوفات من نوع char أو
باستخدام مكتبة string التي توفر دوالاً قوية للتعامل مع النصوص
بسهولة.
لماذا هو مهم؟
النصوص تستخدم في كل تطبيق تقريباً: أسماء المستخدمين، الرسائل، المدخلات النصية، معالجة الملفات النصية، وغيرها الكثير.
متى تستخدمه؟
في أي تطبيق يحتاج إلى معالجة نصوص: تطبيقات المحادثة، محررات النصوص، قواعد البيانات، وغيرها.
المؤشرات (Pointers)
ما هذا؟
المؤشرات (Pointers) هي متغيرات تخزن عنوان ذاكرة متغير آخر. تسمح بالتعامل المباشر مع الذاكرة، وهو ما يميز C++ عن العديد من اللغات الأخرى.
لماذا هو مهم؟
المؤشرات تمكنك من إدارة الذاكرة بكفاءة، إنشاء هياكل بيانات ديناميكية، وتحسين أداء البرامج. هي مفهوم أساسي في C++.
متى تستخدمه؟
في تخصيص الذاكرة الديناميكي، تمرير الدوال بالمرجع، إنشاء قوائم مرتبطة، وأشجار البحث.
Struct (الهياكل)
ما هذا؟
Struct (الهياكل) هي طريقة لتجميع متغيرات من أنواع مختلفة تحت اسم واحد. تسمح لك بإنشاء أنواع بيانات مخصصة لتمثيل كائنات حقيقية.
لماذا هو مهم؟
الـ Struct هي أساس البرمجة الكينونية (OOP) في C++. تساعد في تنظيم البيانات وجعل الكود أكثر قابلية للقراءة والصيانة.
متى تستخدمه؟
عندما تريد تمثيل كائن حقيقي مثل طالب، موظف، سيارة، أو أي كيان يحتوي على عدة خصائص.
تصحيح الأخطاء (Debugging)
ما هذا؟
تصحيح الأخطاء (Debugging) هو عملية إيجاد وإصلاح الأخطاء (Bugs) في البرنامج. ستتعلم استخدام أدوات التصحيح مثل breakpoints، watch variables، وتتبع تدفق البرنامج خطوة بخطوة.
لماذا هو مهم؟
تصحيح الأخطاء هي مهارة أساسية لكل مبرمج. معظم وقت البرمجة يُقضى في تصحيح الأخطاء وليس في كتابة كود جديد.
متى تستخدمه؟
عندما يحدث خطأ في برنامجك، أو عندما لا يعمل البرنامج كما هو متوقع.
مصادر التعلم
التفكير المنطقي وحل المشكلات
ما هذا؟
التفكير المنطقي هو مهارة تحليل المشكلات إلى أجزاء صغيرة وإيجاد حلول خطوة بخطوة. ستتعلم كيفية تقسيم المشكلات الكبيرة، كتابة الخوارزميات، وتقييم الحلول المختلفة.
لماذا هو مهم؟
هذه هي المهارة الأهم في البرمجة. الشركات الكبرى تختبر مهارات حل المشكلات قبل أي شيء آخر. بدونها، لن تستطيع بناء أي تطبيق حقيقي.
متى تستخدمه؟
في كل مشكلة تواجهها أثناء البرمجة. من بناء تطبيق بسيط إلى حل مشكلة معقدة في العمل.
مصادر التعلم
التعامل مع الملفات (File Handling)
ما هذا؟
التعامل مع الملفات يسمح لبرنامجك بقراءة وكتابة البيانات على القرص الصلب. في C++،
نستخدم مكتبة
fstream للتعامل مع الملفات النصية والثنائية.
لماذا هو مهم؟
بدون التعامل مع الملفات، تفقد البيانات بعد إغلاق البرنامج. هذه المهارة ضرورية لتطبيقات قواعد البيانات، إعدادات المستخدم، وتخزين البيانات بشكل دائم.
متى تستخدمه؟
عندما تريد حفظ بيانات المستخدم، قراءة ملفات التكوين، أو إنشاء تقارير.
مصادر التعلم
مشروع 1: تطبيق عملي
فكرة المشروع
مشروع: حاسبة بسيطة (Simple Calculator)
قم ببناء برنامج يقوم بالعمليات الحسابية الأساسية (جمع، طرح، ضرب، قسمة) باستخدام
الدوال والجمل الشرطية.
يجب أن يتعامل البرنامج مع المدخلات من المستخدم ويعرض النتائج بشكل منظم.
المهارات المستخدمة
المتغيرات، الإدخال والإخراج، العمليات، الجمل الشرطية، الدوال.
نصائح
- ابدأ بكتابة الخوارزمية على الورق أولاً
- استخدم دوال منفصلة لكل عملية حسابية
- أضف التحقق من صحة المدخلات (input validation)
مصادر إضافية
مشروع 2: تطبيق عملي متوسط
فكرة المشروع
مشروع: نظام إدارة الطلاب (Student Management System)
قم ببناء برنامج لإدارة بيانات الطلاب (الاسم، العمر، الدرجات). يجب أن يشمل
البرنامج إضافة طالب، عرض
الطلاب، البحث عن طالب، وحساب المتوسط.
المهارات المستخدمة
المصفوفات، Struct، الحلقات، الدوال، التعامل مع الملفات (لحفظ البيانات).
نصائح
- استخدم Struct لتمثيل بيانات الطالب
- أضف قائمة تفاعلية للمستخدم (Menu)
- استخدم الملفات لحفظ البيانات بشكل دائم
مصادر إضافية
مشروع 3: مشروع متكامل
فكرة المشروع
مشروع: نظام بسيط لإدارة المكتبة (Library Management System)
قم ببناء نظام متكامل لإدارة الكتب والمستخدمين. يشمل إضافة كتب، حذف كتب، البحث عن
كتب، إعارة كتاب، إرجاع
كتاب، وعرض قائمة الكتب المتاحة.
المهارات المستخدمة
جميع المفاهيم السابقة: Struct، المصفوفات، الدوال، الحلقات، المؤشرات، التعامل مع الملفات، والجمل الشرطية.
نصائح
- خطط للمشروع قبل البدء (ER Diagram، Use Cases)
- قسم المشروع إلى ملفات متعددة (header files)
- استخدم المؤشرات لإدارة الذاكرة بكفاءة