الدرس السادس: مراجعة ختامية متقدمة وتطبيقات برمجية مركبة في خرائط التدفق وحل المشكلات
تُمثّل هذه المراجعة التراكمية الختامية خلاصة المهارات البرمجية والتحليلية للوحدة الأولى في منهج الحاسب الآلي للصف الثاني الثانوي. يدمج الطالب في هذه المحطة كافة الأدوات والخوارزميات التي تم بناؤها: بدءاً من التحليل الدقيق للمشكلات وتحديد المدخلات والمخرجات، مروراً بالهندسة الدقيقة لخرائط التدفق المركبة التي تحتوي على تفرعات متداخلة (Nested Decisions) وحلقات تكرارية محكومة بعدادات، ووصولاً إلى بناء جداول التتبع المعقدة واكتشاف الأخطاء اللغوية والمنطقية والتشغيلية وسد الثغرات. تهدف هذه المراجعة المنهجية إلى تنمية حس المبرمج المحترف، والقدرة على التفكير التجريدي الخلاق، وحل المشكلات التفاعلية الواقعية بأعلى درجات الكفاءة والأمان وفق المعايير الوزارية والوطنية المعتمدة.
1. استراتيجيات دمج التفرع والتكرار
في الأنظمة البرمجية الحقيقية يتكامل التفرع مع التكرار لحل مسائل المعالجة المعقدة:
- التفرع داخل التكرار: فحص شرط معين في كل دورة تكرار (مثل عد الأعداد الزوجية فقط بين 1 و 100).
- التكرار مع التوقف الشرطي: استمرار الحلقة حتى يدخل المستخدم قيمة معينة (مثل كلمة سر صحيحة أو الرقم -1 لإنهاء الإدخال).
- التحقق من صحة المدخلات (Data Validation Loop): عدم السماح للبرنامج بالانتقال للخطوة التالية إلا إذا كان المدخل يقع في نطاق سليم.
2. الفحص الهندسي والمنطقي للخريطة
| عنصر الفحص | المعيار القياسي السليم |
|---|---|
| المعين (Decision) | يدخل سهم واحد، ويخرج سهمان مسميان (Yes / No) |
| المستطيل (Process) | يدخل سهم واحد، ويخرج سهم واحد ولا توجد أسئلة مقارنة |
| متوازي الأضلاع (I/O) | أوامر قراءة أو طباعة فقط دون عمليات حسابية مطولة |
| البيضاوي (Terminal) | بداية واحدة في أعلى الخريطة ونهاية واحدة في أسفلها |
3. قواعد التفكير البرمجي الآمن (Defensive Programming)
تأمين المقامات
فحص أي مقام حسابي قبل القسمة لضمان عدم حدوث Runtime Error.
تأمين العدادات
التأكد دائماً من وجود خطوة زيادة العداد باتجاه شرط الإنهاء لمنع الحلقات اللانهائية.
وضوح التوثيق
كتابة تعليقات توضيحية للمتغيرات والمعادلات لتسهيل الصيانة الجماعية للبرنامج.
تمرين 1: خريطة إيجاد الأكبر بين 3 أعداد
المسألة: صمم منطق خريطة تدفق لإيجاد وطباعة العدد الأكبر بين 3 أعداد A, B, C.
1.
Read A, B, C.2.
Is A > B ?:• Yes: افحص
Is A > C ? ➔ Yes: اطبع A ، No: اطبع C.• No: افحص
Is B > C ? ➔ Yes: اطبع B ، No: اطبع C.3. تلتقي المسارات عند
End.
تمرين 2: عد الأعداد الفردية بين 1 و 50
المسألة: صمم خوارزمية لحساب عدد الأعداد الفردية الواقعة بين 1 و 50.
1.
Count = 0 (العداد) ، N = 1.2.
Is N ≤ 50 ?:• Yes:
Count = Count + 1 ➔ N = N + 2 ➔ ارجع للمعين.• No:
Print Count ➔ End.• الناتج = 25 عدداً.
تمرين 3: تتبع حلقة بمتغيرين
المسألة: ما هي القيمة النهائية لـ X و Y بعد تنفيذ: X = 1, Y = 1, While X ≤ 4: Y = Y * 2, X = X + 1؟
• الدورة 1 (X=1): Y = 1 × 2 = 2 ، X = 2.
• الدورة 2 (X=2): Y = 2 × 2 = 4 ، X = 3.
• الدورة 3 (X=3): Y = 4 × 2 = 8 ، X = 4.
• الدورة 4 (X=4): Y = 8 × 2 = 16 ، X = 5.
• عند X = 5 يقف التكرار. إذن:
X = 5 و Y = 16.
تمرين 4: كشف خطأ منطقي مركب
المسألة: كود لحساب متوسط 3 أرقام: Avg = X + Y + Z / 3، بيّن الخطأ وكيف تصححه.
• خطأ منطقي (Logic Error) بسبب أسبقية القسمة على الجمع فيتم قسمة Z على 3 فقط.
• التصحيح بوضع أقواس الجمع أولاً:
Avg = (X + Y + Z) / 3.
تمرين 5: حساب مضروب العدد (Factorial)
المسألة: تتبع خوارزمية حساب مضروب العدد 4 (4! = 4 × 3 × 2 × 1).
• نبدأ بـ
Fact = 1 (المحايد الضربي)، I = 4.• في كل دورة:
Fact = Fact × I ، ثم I = I - 1 طالما I ≥ 1.• الناتج: 1 × 4 = 4 ➔ 4 × 3 = 12 ➔ 12 × 2 = 24 ➔ 24 × 1 =
24.
تمرين 6: تصحيح خريطة تدفق بها حلقة لانهائية
المسألة: خريطة بها: I = 1 ➔ Is I < 5 ? ➔ Print I ➔ Is I < 5 ?، ما الناقص فيها؟
• ينقصها خطوة زيادة العداد
I = I + 1 داخل المستطيل بعد الطباعة.• بدون هذه الخطوة تظل I = 1 للأبد وتحدث حلقة لانهائية.
تمرين 7: مراجعة دلالات الرموز
المسألة: صنف الأوامر: Start ، Read Age ، Bonus = Salary * 0.1 ، Print Bonus ، Is Age > 18.
•
Start: بيضاوي (Terminal).•
Read Age: متوازي أضلاع (Input).•
Bonus = Salary * 0.1: مستطيل (Process).•
Is Age > 18: معين (Decision).•
Print Bonus: متوازي أضلاع (Output).
تمرين 8: استنتاج عدد الدورات من جدول التتبع
المسألة: جدول تتبع أظهر قيم المتغير: 10 ، 8 ، 6 ، 4 ، 2 ، 0 ثم توقف، كم عدد دورات التكرار وما الشرط؟
• عدد الدورات الناجحة = 5 دورات (من 10 حتى 2).
• شرط الاستمرار كان:
العداد > 0 أو العداد ≥ 2.• مقدار الخطوة كان: النقصان بمقدار 2 في كل دورة (Step -2).
اضغط على أي بطاقة لاكتشاف المعنى الدقيق، واضغط على أيقونة الصوت للاستماع للنطق:
اضغط على الإجابة لتتحقق من فهمك وتكتشف التفسير النموذجي فورياً: