#برمجة
الحلقة الثالثة في تعلم C++: الحلقات التكرارية (Loops)
مقدمة
مرحباً بك في الحلقة الثالثة من سلسلة تعلم C++ للمبتدئين.
في الحلقتين السابقتين تعلمنا:
- أساسيات البرمجة في C++
- المتغيرات وأنواع البيانات
- الإدخال والإخراج
- الشروط (if / else / switch)
لكن حتى الآن برامجنا كانت تنفذ الأوامر مرة واحدة فقط.
تخيل أنك تريد:
- طباعة رقم من 1 إلى 100
- أو تكرار رسالة 1000 مرة
- أو قراءة 50 رقم من المستخدم
هل سنكتب نفس الكود 100 مرة؟ بالطبع لا.
هنا يأتي دور مفهوم مهم جداً في البرمجة:
الحلقات التكرارية (Loops)
ما هي الحلقات التكرارية؟
الحلقة التكرارية هي طريقة تسمح للبرنامج بتكرار تنفيذ كود معين عدة مرات بشكل تلقائي.
بدلاً من كتابة نفس الكود عدة مرات، نكتب حلقة واحدة تقوم بالمهمة.
مثال من الحياة الواقعية
تخيل مدرس يقول للطلاب:
"اكتبوا الجملة 10 مرات"
بدلاً من أن يقولها كل مرة، الطلاب يكررونها بأنفسهم.
البرمجة تعمل بنفس الطريقة.
أنواع الحلقات في C++
في C++ لدينا 3 أنواع رئيسية:
- for loop
- while loop
- do while loop
أولاً: حلقة for
الصيغة العامة
for(initialization; condition; update)
{
// code
}
مثال بسيط
طباعة الأرقام من 1 إلى 5:
#include <iostream>
using namespace std;
int main()
{
for(int i = 1; i <= 5; i++)
{
cout << i << endl;
}
return 0;
}
شرح الكود
int i = 1بداية العدادi <= 5الشرطi++زيادة العداد
النتيجة:
1
2
3
4
5
كيف تعمل for؟
تمر بثلاث مراحل:
- يبدأ i = 1
- يتحقق من الشرط
- ينفذ الكود
- يزيد i
ويكرر حتى ينتهي الشرط
مثال طباعة الأرقام الزوجية
#include <iostream>
using namespace std;
int main()
{
for(int i = 2; i <= 10; i += 2)
{
cout << i << endl;
}
return 0;
}
النتيجة
2
4
6
8
10
مثال طباعة جدول الضرب
#include <iostream>
using namespace std;
int main()
{
int num = 5;
for(int i = 1; i <= 10; i++)
{
cout << num << " x " << i << " = " << num * i << endl;
}
return 0;
}
ثانياً: حلقة while
الصيغة العامة
while(condition)
{
// code
}
مثال
#include <iostream>
using namespace std;
int main()
{
int i = 1;
while(i <= 5)
{
cout << i << endl;
i++;
}
return 0;
}
الفرق بين for و while
| for | while |
|---|---|
| تستخدم عندما نعرف عدد التكرارات | تستخدم عندما لا نعرف العدد |
| أسهل في العد | أكثر مرونة |
مثال إدخال حتى الصفر
#include <iostream>
using namespace std;
int main()
{
int num;
cout << "Enter numbers (0 to stop): ";
cin >> num;
while(num != 0)
{
cout << "You entered: " << num << endl;
cin >> num;
}
return 0;
}
فكرة مهمة
while تعتمد على شرط فقط.
طالما الشرط صحيح → تستمر.
ثالثاً: حلقة do while
الصيغة
do
{
// code
}
while(condition);
مثال
#include <iostream>
using namespace std;
int main()
{
int i = 1;
do
{
cout << i << endl;
i++;
}
while(i <= 5);
return 0;
}
الفرق المهم
- while: تفحص الشرط أولاً
- do while: تنفذ مرة واحدة ثم تفحص
مثال مهم جداً
#include <iostream>
using namespace std;
int main()
{
int password;
do
{
cout << "Enter password: ";
cin >> password;
} while(password != 1234);
cout << "Welcome";
return 0;
}
جملة break و continue
break
توقف الحلقة بالكامل
for(int i = 1; i <= 10; i++)
{
if(i == 5)
break;
cout << i << endl;
}
النتيجة:
1
2
3
4
continue
تتخطى التكرار الحالي فقط
for(int i = 1; i <= 5; i++)
{
if(i == 3)
continue;
cout << i << endl;
}
النتيجة:
1
2
4
5
أمثلة مهمة جداً
مثال 1: جمع الأرقام من 1 إلى 10
#include <iostream>
using namespace std;
int main()
{
int sum = 0;
for(int i = 1; i <= 10; i++)
{
sum += i;
}
cout << sum;
return 0;
}
مثال 2: إيجاد عدد زوجي أو فردي
#include <iostream>
using namespace std;
int main()
{
for(int i = 1; i <= 10; i++)
{
if(i % 2 == 0)
cout << i << " Even" << endl;
else
cout << i << " Odd" << endl;
}
return 0;
}
مثال 3: إدخال 5 أرقام وجمعها
#include <iostream>
using namespace std;
int main()
{
int num, sum = 0;
for(int i = 1; i <= 5; i++)
{
cin >> num;
sum += num;
}
cout << "Sum = " << sum;
return 0;
}
مشروع تطبيقي مهم
حساب متوسط عدد من القيم
#include <iostream>
using namespace std;
int main()
{
int n, num;
float sum = 0;
cout << "How many numbers? ";
cin >> n;
for(int i = 1; i <= n; i++)
{
cin >> num;
sum += num;
}
cout << "Average = " << sum / n;
return 0;
}
مشروع: قائمة أرقام حتى الإدخال 0
#include <iostream>
using namespace std;
int main()
{
int num;
while(true)
{
cin >> num;
if(num == 0)
break;
cout << "Value: " << num << endl;
}
return 0;
}
أخطاء شائعة
1. نسيان زيادة العداد
while(i <= 5)
{
cout << i;
}
➡ خطأ: حلقة لا نهائية
2. وضع فاصلة منقوطة بعد for
for(int i = 0; i < 5; i++); // خطأ
تمارين
تمرين 1
اطبع الأرقام من 1 إلى 100 باستخدام for.
تمرين 2
اطبع الأعداد الفردية فقط من 1 إلى 50.
تمرين 3
اطلب من المستخدم إدخال أرقام حتى يدخل 0 ثم احسب المجموع.
تمرين 4
اطبع جدول ضرب رقم يُدخله المستخدم.
ملخص الحلقة الثالثة
في هذه الحلقة تعلمنا:
✅ مفهوم الحلقات التكرارية
✅ for loop
✅ while loop
✅ do while loop
✅ break و continue
✅ تطبيقات عملية قوية
في الحلقة الرابعة سنتعلم:
🔥 الدوال Functions في C++
وهي من أهم مفاهيم البرمجة لأنها تساعدنا في بناء برامج احترافية قابلة لإعادة الاستخدام ان شاءالله

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