تمام 👍 نبدأ الآن الكورس المتوسط في C++ خطوة خطوة بشكل أقوى من الأساسي، وفيه تطبيقات حقيقية أكثر + تفكير برمجي أعمق.
كورس C++ المتوسط – الحلقة 1: إعادة ترتيب الأساسيات بشكل احترافي + مدخل للمشاريع
#برمجة
مقدمة
في الكورس الأساسي تعلمنا القواعد، لكن في المستوى المتوسط نحن لا نتعلم “كيف نكتب كود فقط”، بل نتعلم:
كيف نفكر مثل المبرمج الحقيقي
يعني:
- حل مشاكل
- بناء أنظمة صغيرة
- تنظيم الكود
- فهم الأداء
الفرق بين المبتدئ والمتوسط
| المستوى | ماذا يفعل؟ |
|---|---|
| مبتدئ | يكتب أوامر بسيطة |
| متوسط | يبني حلول ومشاريع صغيرة |
| متقدم | يبني أنظمة كبيرة |
أهم شيء في هذا الكورس
لن نركز فقط على القواعد، بل على:
- التفكير المنطقي
- تقسيم المشكلة
- كتابة كود منظم
- إعادة استخدام الكود
مراجعة سريعة لكن بشكل احترافي
مثال: جمع رقمين (نسخة مبتدئة)
#include <iostream>
using namespace std;
int main()
{
int a, b;
cin >> a >> b;
cout << a + b;
return 0;
}
نفس المثال لكن بشكل متوسط (باستخدام دالة)
#include <iostream>
using namespace std;
int add(int a, int b)
{
return a + b;
}
int main()
{
int a, b;
cin >> a >> b;
cout << add(a, b);
return 0;
}
لماذا هذا أفضل؟
لأننا:
- فصلنا المنطق عن main
- جعلنا الكود قابل لإعادة الاستخدام
- بدأنا نفكر مثل المشاريع
أول مفهوم في المتوسط: تنظيم الكود
في البرامج الحقيقية لا نكتب كل شيء داخل main.
بل نقسم البرنامج إلى:
- دوال
- ملفات
- أجزاء منطقية
مثال: برنامج غير منظم
#include <iostream>
using namespace std;
int main()
{
int arr[5];
int sum = 0;
for(int i = 0; i < 5; i++)
{
cin >> arr[i];
sum += arr[i];
}
cout << sum;
return 0;
}
نفس البرنامج لكن بشكل متوسط
#include <iostream>
using namespace std;
int getSum(int arr[], int size)
{
int sum = 0;
for(int i = 0; i < size; i++)
{
sum += arr[i];
}
return sum;
}
void fillArray(int arr[], int size)
{
for(int i = 0; i < size; i++)
{
cin >> arr[i];
}
}
int main()
{
int arr[5];
fillArray(arr, 5);
cout << getSum(arr, 5);
return 0;
}
هنا أنت بدأت تفكر كمبرمج متوسط:
- دالة للإدخال
- دالة للحساب
- main فقط للتشغيل
مفهوم مهم جداً: إعادة الاستخدام (Reusability)
بدلاً من تكرار الكود:
❌ خطأ: نكتب نفس الحلقة كل مرة
✔ صح: نضعها داخل دالة
مثال: طباعة مصفوفة
#include <iostream>
using namespace std;
void printArray(int arr[], int size)
{
for(int i = 0; i < size; i++)
{
cout << arr[i] << " ";
}
}
int main()
{
int arr[5] = {1,2,3,4,5};
printArray(arr, 5);
return 0;
}
مفهوم جديد: التفكير بالمشكلة قبل الكود
مثال مشكلة:
“أريد برنامج يعرف أكبر رقم في مصفوفة”
التفكير:
- أدخل بيانات
- افترض أول رقم هو الأكبر
- قارن مع باقي الأرقام
- حدث القيمة إذا وجدنا أكبر
الحل:
#include <iostream>
using namespace std;
int getMax(int arr[], int size)
{
int max = arr[0];
for(int i = 1; i < size; i++)
{
if(arr[i] > max)
{
max = arr[i];
}
}
return max;
}
int main()
{
int arr[5];
for(int i = 0; i < 5; i++)
{
cin >> arr[i];
}
cout << getMax(arr, 5);
return 0;
}
مفهوم مهم: تقسيم البرامج (Modular Thinking)
بدل برنامج واحد كبير:
نقسمه إلى أجزاء:
- إدخال
- معالجة
- إخراج
مثال نظام درجات (متوسط)
#include <iostream>
using namespace std;
float calcAvg(int arr[], int size)
{
int sum = 0;
for(int i = 0; i < size; i++)
{
sum += arr[i];
}
return sum / size;
}
void inputMarks(int arr[], int size)
{
for(int i = 0; i < size; i++)
{
cin >> arr[i];
}
}
int main()
{
int marks[5];
inputMarks(marks, 5);
cout << "Average = " << calcAvg(marks, 5);
return 0;
}
بداية التفكير الاحترافي
أنت الآن يجب أن تبدأ تفكر هكذا:
❌ ليس: "كيف أكتب كود؟"
✔ بل: "كيف أحل المشكلة؟"
أخطاء المبتدئين في المستوى المتوسط
❌ وضع كل شيء داخل main
❌ عدم استخدام دوال
❌ تكرار الكود
❌ عدم فهم المشكلة قبل الحل
تمارين مهمة جداً
- اكتب برنامج باستخدام دالة لحساب الضرب
- اكتب برنامج يجد أصغر رقم في مصفوفة
- اكتب برنامج يحسب عدد الأرقام الزوجية
- قسم برنامج إدخال وطباعة مصفوفة إلى دوال
ملخص الحلقة 1 (المتوسط)
تعلمنا:
- الفرق بين مبتدئ ومتوسط
- تنظيم الكود
- استخدام الدوال بشكل احترافي
- تقسيم البرامج
- التفكير المنطقي قبل الكود
في الحلقة القادمة (المتوسط 2):
🔥 Arrays + Strings بشكل متقدم
🔥 التعامل مع مشاكل حقيقية
🔥 بداية بناء مشاريع صغيرة (Mini Projects)

تعليقات
إرسال تعليق