سؤال 1: تدريب 1: ارسم المخطط الانسيابي للمقطع البرمجي. print("من فضلك أدخل الدرجة:") g=int(input()) if g<0 or g>10: print("درجة غير صالحة") elif g>=8: print("ممتاز") elif g>=5: print("جيد جدًا") else: print("اجتهد أكثر")
الإجابة: س1: بداية -> طباعة "من فضلك أدخل الدرجة" -> إدخال g قرار: هل g < 0 أو g > 10 ؟ نعم: "درجة غير صالحة" -> نهاية لا: هل g >= 8 ؟ نعم: "ممتاز" -> نهاية لا: هل g >= 5 ؟ نعم: "جيد جدًا" -> نهاية لا: "اجتهد أكثر" -> نهاية
خطوات الحل:
- **الخطوة 1: تحديد المعطيات والمطلوب** | العنصر | الوصف | |--------|--------| | **المعطى** | مقطع برمجي بلغة Python للتحقق من فئة الدرجة | | **المطلوب** | رسم المخطط الانسيابي (Flowchart) الذي يمثل منطق البرنامج | > **ملاحظة:** المخطط الانسيابي هو تمثيل مرئي لتسلسل الخطوات والقرارات في الخوارزمية.
- **الخطوة 2: تحديد العناصر الأساسية للمخطط الانسيابي** يستخدم المخطط الانسيابي رموزاً قياسية: 1. **بداية/نهاية:** (بيضاوي) → يمثل بداية أو نهاية البرنامج. 2. **عملية إدخال/إخراج:** (متوازي أضلاع) → يمثل قراءة مدخلات أو طباعة مخرجات. 3. **عملية معالجة:** (مستطيل) → يمثل تعيين قيمة أو عملية حسابية. 4. **قرار (شرط):** (معين) → يمثل نقطة اتخاذ قرار (نعم/لا). 5. **اتجاه التدفق:** (أسهم) → توضح تسلسل تنفيذ الخطوات.
- **الخطوة 3: تحليل منطق البرنامج خطوة بخطوة** يتكون البرنامج من التسلسل المنطقي التالي: 1. **طباعة رسالة ترحيب:** `print("من فضلك أدخل الدرجة:")` 2. **قراءة المدخل من المستخدم وتخزينه:** `g = int(input())` 3. **سلسلة من الشروط للتحقق من قيمة `g`:** * **الشرط الأول (التحقق من الصحة):** `if g < 0 or g > 10:` * إذا تحقق (`نعم`): تطبع "درجة غير صالحة" وتنتهي. * **الشرط الثاني (التقييم):** `elif g >= 8:` * إذا تحقق (`نعم`): تطبع "ممتاز" وتنتهي. * **الشرط الثالث (التقييم):** `elif g >= 5:` * إذا تحقق (`نعم`): تطبع "جيد جدًا" وتنتهي. * **البديل الافتراضي:** `else:` * إذا لم يتحقق أي شرط سابق (`لا` لجميعها): تطبع "اجتهد أكثر" وتنتهي.
- **الخطوة 4: بناء المخطط الانسيابي بناءً على التحليل** يتبع المخطط التسلسل التالي: 1. **بداية** (رمز بيضاوي). 2. **عملية إخراج:** طباعة "من فضلك أدخل الدرجة:" (رمز متوازي أضلاع). 3. **عملية إدخال/معالجة:** قراءة المدخل وتحويله إلى عدد صحيح `g` (يمكن دمجه في متوازي أضلاع أو مستطيل). 4. **قرار (معين):** السؤال: **هل `g < 0` أو `g > 10`؟** * **فرع "نعم":** → عملية إخراج: طباعة "درجة غير صالحة" → **نهاية**. * **فرع "لا":** → التالي. 5. **قرار (معين):** السؤال: **هل `g >= 8`؟** * **فرع "نعم":** → عملية إخراج: طباعة "ممتاز" → **نهاية**. * **فرع "لا":** → التالي. 6. **قرار (معين):** السؤال: **هل `g >= 5`؟** * **فرع "نعم":** → عملية إخراج: طباعة "جيد جدًا" → **نهاية**. * **فرع "لا":** → التالي. 7. **عملية إخراج (البديل الافتراضي):** طباعة "اجتهد أكثر" (رمز متوازي أضلاع). 8. **نهاية** (رمز بيضاوي). > **تنبيه مهم:** يتفرع من كل قرار **فرعان فقط (نعم/لا)**، ويؤدي كل فرع "نعم" إلى طباعة رسالة ثم إنهاء البرنامج مباشرة. الفرع "لا" يستمر في التسلسل إلى القرار التالي.
- **الخطوة 5: الإجابة النهائية (وصف المخطط)** بناءً على التحليل أعلاه، يمكن وصف **المخطط الانسيابي** بالترتيب التالي: 1. ابدأ. 2. اطبع: "من فضلك أدخل الدرجة:". 3. ادخل قيمة واختزنها في المتغير `g`. 4. **اسأل:** هل `g` أصغر من 0 **أو** أكبر من 10؟ * **إذا كانت الإجابة نعم:** اطبع "درجة غير صالحة" ثم **أنهِ** البرنامج. * **إذا كانت الإجابة لا:** انتقل إلى الخطوة التالية. 5. **اسأل:** هل `g` أكبر من أو يساوي 8؟ * **إذا كانت الإجابة نعم:** اطبع "ممتاز" ثم **أنهِ** البرنامج. * **إذا كانت الإجابة لا:** انتقل إلى الخطوة التالية. 6. **اسأل:** هل `g` أكبر من أو يساوي 5؟ * **إذا كانت الإجابة نعم:** اطبع "جيد جدًا" ثم **أنهِ** البرنامج. * **إذا كانت الإجابة لا:** انتقل إلى الخطوة التالية. 7. (البديل الافتراضي) اطبع: "اجتهد أكثر". 8. **أنهِ** البرنامج. **الخلاصة:** يمثل هذا التسلسل المنطقي، برسم الرموز القياسية وربطها بأسهم التدفق، **المخطط الانسيابي الكامل** للمقطع البرمجي المعطى.