7.8 KiB
معالجة القرارات: برنامج معالجة درجات الطلاب
أهداف التعلم
في هذه المهمة، ستقوم بممارسة مفاهيم اتخاذ القرارات من هذا الدرس عن طريق بناء برنامج يعالج درجات الطلاب من أنظمة تقييم مختلفة. ستستخدم عبارات if...else، ومشغلات المقارنة، والمشغلات المنطقية لتحديد الطلاب الذين يجتازون دوراتهم.
التحدي
تعمل في مدرسة اندمجت مؤخرًا مع مؤسسة أخرى. الآن تحتاج إلى معالجة درجات الطلاب من نظامي تقييم مختلفين تمامًا وتحديد الطلاب الذين يجتازون. هذه فرصة مثالية لممارسة المنطق الشرطي!
فهم أنظمة التقييم
النظام الأول للتقييم (رقمي)
- يتم إعطاء الدرجات كأرقام من 1 إلى 5
- الدرجة الناجحة: 3 وما فوق (3، 4، أو 5)
- الدرجة الفاشلة: أقل من 3 (1 أو 2)
النظام الثاني للتقييم (درجات بالحروف)
- يتم استخدام الحروف:
A,A-,B,B-,C,C- - الدرجات الناجحة:
A,A-,B,B-,C,C-(جميع الدرجات المذكورة ناجحة) - ملاحظة: هذا النظام لا يتضمن درجات فاشلة مثل
DأوF
مهمتك
بالنظر إلى المصفوفة التالية allStudents التي تمثل جميع الطلاب ودرجاتهم، قم بإنشاء مصفوفة جديدة studentsWhoPass تحتوي على جميع الطلاب الذين يجتازون وفقًا لأنظمة التقييم الخاصة بهم.
let allStudents = [
'A', // Letter grade - passing
'B-', // Letter grade - passing
1, // Numeric grade - failing
4, // Numeric grade - passing
5, // Numeric grade - passing
2 // Numeric grade - failing
];
let studentsWhoPass = [];
النهج خطوة بخطوة
- قم بإعداد حلقة لتصفح كل درجة في مصفوفة
allStudents - تحقق من نوع الدرجة (هل هي رقم أم سلسلة نصية؟)
- طبق قواعد نظام التقييم المناسبة:
- بالنسبة للأرقام: تحقق إذا كانت الدرجة >= 3
- بالنسبة للسلاسل النصية: تحقق إذا كانت واحدة من درجات الحروف الناجحة
- أضف الدرجات الناجحة إلى مصفوفة
studentsWhoPass
تقنيات البرمجة المفيدة
استخدم هذه المفاهيم من درس JavaScript:
- مشغل typeof:
typeof grade === 'number'للتحقق إذا كانت الدرجة رقمية - مشغلات المقارنة:
>=لمقارنة الدرجات الرقمية - المشغلات المنطقية:
||للتحقق من شروط درجات الحروف المتعددة - عبارات if...else: للتعامل مع أنظمة التقييم المختلفة
- طرق المصفوفة:
.push()لإضافة الدرجات الناجحة إلى المصفوفة الجديدة
النتيجة المتوقعة
عند تشغيل البرنامج، يجب أن تحتوي studentsWhoPass على: ['A', 'B-', 4, 5]
لماذا هذه الدرجات ناجحة:
'A'و'B-'هما درجات حروف صالحة (جميع درجات الحروف في هذا النظام ناجحة)4و5هما درجات رقمية >= 31و2فاشلتان لأنهما درجات رقمية < 3
اختبار الحل الخاص بك
اختبر الكود الخاص بك مع سيناريوهات مختلفة:
// Test with different grade combinations
let testGrades1 = ['A-', 3, 'C', 1, 'B'];
let testGrades2 = [5, 'A', 2, 'C-', 4];
// Your solution should work with any combination of valid grades
تحديات إضافية
بعد إكمال المهمة الأساسية، جرب هذه الإضافات:
- إضافة التحقق: تحقق من الدرجات غير الصالحة (مثل الأرقام السلبية أو الحروف غير الصحيحة)
- إحصائيات العد: احسب عدد الطلاب الناجحين مقابل الفاشلين
- تحويل الدرجات: قم بتحويل جميع الدرجات إلى نظام رقمي واحد (A=5، B=4، C=3، إلخ)
معايير التقييم
| المعايير | ممتاز (4) | جيد (3) | متوسط (2) | مبتدئ (1) |
|---|---|---|---|---|
| الوظائف | البرنامج يحدد جميع الدرجات الناجحة من كلا النظامين بشكل صحيح | البرنامج يعمل مع بعض المشكلات البسيطة أو الحالات الخاصة | البرنامج يعمل جزئيًا ولكن به أخطاء منطقية | البرنامج يحتوي على أخطاء كبيرة أو لا يعمل |
| هيكل الكود | كود نظيف ومنظم جيدًا مع منطق if...else مناسب | هيكل جيد مع عبارات شرطية مناسبة | هيكل مقبول مع بعض المشكلات التنظيمية | هيكل ضعيف، منطق يصعب متابعته |
| استخدام المفاهيم | استخدام فعال لمشغلات المقارنة، المشغلات المنطقية، والعبارات الشرطية | استخدام جيد لمفاهيم الدرس مع بعض الفجوات | استخدام بعض مفاهيم الدرس ولكن يفتقد عناصر رئيسية | استخدام محدود لمفاهيم الدرس |
| حل المشكلات | يظهر فهمًا واضحًا للمشكلة ونهجًا أنيقًا للحل | نهج جيد لحل المشكلة مع منطق قوي | نهج مقبول لحل المشكلة مع بعض الالتباس | نهج غير واضح، لا يظهر فهمًا للمشكلة |
إرشادات التقديم
- اختبر الكود الخاص بك جيدًا باستخدام الأمثلة المقدمة
- أضف تعليقات تشرح منطقك، خاصة للعبارات الشرطية
- تحقق من أن النتيجة تطابق النتائج المتوقعة:
['A', 'B-', 4, 5] - ضع في اعتبارك الحالات الخاصة مثل المصفوفات الفارغة أو أنواع البيانات غير المتوقعة
💡 نصيحة احترافية: ابدأ ببساطة! اجعل الوظيفة الأساسية تعمل أولاً، ثم أضف ميزات أكثر تعقيدًا. تذكر، الهدف هو ممارسة منطق اتخاذ القرارات باستخدام الأدوات التي تعلمتها في هذا الدرس.
إخلاء المسؤولية:
تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي Co-op Translator. بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي. للحصول على معلومات حاسمة، يُوصى بالترجمة البشرية الاحترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة.