البرمجة: الحلقات التكرارية في بايثون for و while
في هذا الدرس نتعرف على الحلقات التكرارية (for و while) في لغة البرمجة بايثون في مادة الإعلام الآلي لتلاميذ الأولى ثانوي (شعب علمية). الحلقات التكرارية تسمح بتنفيذ مجموعة من التعليمات بشكل متكرر، مما يوفر الوقت والجهد ويجعل البرامج أكثر فعالية عند التعامل مع كميات كبيرة من البيانات.
حلقة for
- تعريف: تستخدم للتكرار على عناصر مجموعة (قائمة، سلسلة نصية، نطاق) لعدد محدد من المرات. صيغتها: for item in sequence: instructions.
- الدالة range(): تنشئ نطاقا من الأعداد. range(n) من 0 إلى n-1. range(start, stop) من start إلى stop-1. range(start, stop, step) بخطوة step.
- التكرار على القوائم: for fruit in [“تفاحة”, “برتقال”, “موز”]: print(fruit). يطبع جميع عناصر القائمة.
- التكرار على السلاسل النصية: for ch in “مرحبا”: print(ch). يطبع كل حرف في السلسلة على حدة.
حلقة while
- تعريف: تستخدم للتكرار طالما أن شرط معين محقق (True). صيغتها: while condition: instructions. يجب تحديث المتغيرات داخل الحلقة لتجنب التكرار اللانهائي.
- التكرار اللانهائي: يحدث عندما لا يتغير الشرط أبدا إلى False. مثال خاطئ: while True: print(“تكرار”) (بدون break).
- جملة break: تستخدم للخروج من الحلقة فورا قبل اكتمالها. تستخدم في الحلقات for و while.
- جملة continue: تستخدم لتخطي بقية التعليمات في الدورة الحالية والانتقال إلى الدورة التالية.
أمثلة تطبيقية
مثال 1: طباعة الأعداد من 1 إلى 10 باستخدام for: for i in range(1, 11): print(i). يطبع 1 2 3 4 5 6 7 8 9 10.
مثال 2: حساب مجموع الأعداد من 1 إلى 100: somme = 0, for i in range(1, 101): somme += i, print(somme). النتيجة: 5050.
مثال 3: طباعة الأعداد الزوجية من 2 إلى 20: for i in range(2, 21, 2): print(i). النتيجة: 2 4 6 8 10 12 14 16 18 20.
مثال 4: استخدام while لقراءة أعداد من المستخدم حتى يدخل صفر: n = int(input()), while n != 0: print(n, “x 2 =”, n*2), n = int(input()).
تمارين وحلول
تمرين 1: اكتب برنامجاً يطبع جدول ضرب العدد 5. الحل: n=5, for i in range(1, 11): print(n, “x”, i, “=”, n*i). النتيجة: 5×1=5, 5×2=10, …, 5×10=50.
تمرين 2: اكتب برنامجاً يحسب مضروب العدد n (n!). الحل: n=int(input()), fact=1, for i in range(1, n+1): fact *= i, print(n, “!=”, fact). مثال: 5! = 120.
تمرين 3 (للمتفوقين): اكتب برنامجاً يتحقق إذا كان العدد أوليا أم لا. الحل: n=int(input()), if n<2: print("ليس أوليا"), else: premier=True, for i in range(2, int(n**0.5)+1): if n%i==0: premier=False, break. if premier: print(n, "أولي") else: print(n, "ليس أوليا").
نصائح للمراجعة
- استخدم for عندما تعرف عدد التكرارات مسبقا، و while عندما يتوقف التكرار على شرط
- تأكد من تحديث المتغيرات داخل while لتجنب التكرار اللانهائي
- الدالة range(n) تبدأ من 0 وتنتهي عند n-1 (لا تشمل n)
- استخدم break للخروج من الحلقة مبكرا و continue لتخطي دورة
- يمكن استخدام else مع for: ينفذ بعد انتهاء الحلقة طبيعيا (بدون break)
- الحلقات المتداخلة (for inside for) تستخدم للمصفوفات والجداول
مدونة التربية و التعليم في الجزائر – دروس، فروض، نتائج امتحانات مدونة التربية والتعليم في الجزائر | تحضير الدروس، فروض واختبارات، نتائج البكالوريا وBEM، مسابقات التوظيف، والتوجيه المدرسي للطلاب وأولياء الأمور.