حساب متوسط الطالب
جزء من قسم المنطق وتدفق التنفيذ في رحلة PHP على Coddy. الدرس 36 من 68.
التحدي
سهلستتلقى مدخلين: كائن JSON يمثّل سجل درجات الطلاب الحالي، واسم طالب. يستخدم سجل الدرجات أسماء الطلاب كمفاتيح، ويحتوي كل طالب على "id" ومصفوفة "grades" تتضمن درجات اختباراته.
اقرأ كلا المدخلين، وحوّل سلسلة JSON إلى مصفوفة سجل درجات، وحدد الطالب المطلوب، واحسب متوسط درجاته، ثم اطبع النتيجة بعد تقريبها إلى منزلتين عشريتين.
لحساب المتوسط: اجمع كل الدرجات في مصفوفة درجات الطالب، ثم اقسم المجموع على عدد الدرجات.
تنسيق الإدخال:
- السطر الأول: كائن JSON يمثّل سجل الدرجات الحالي (مثال:
{"Alice":{"id":101,"grades":[85,92,78]},"Bob":{"id":102,"grades":[90,88,95]},"Charlie":{"id":103,"grades":[76,84,89]}}) - السطر الثاني: اسم الطالب (مثال:
Alice)
المخرجات المتوقعة: متوسط درجات الطالب بعد تقريبه باستخدام round($average, 2)، ويُطبع كما هو، لذا تُحذف الأصفار اللاحقة (أمثلة: 85، 88.4، 76.25)
جرّب بنفسك
<?php
// اقرأ سلسلة JSON الخاصة بسجل الدرجات
$gradebookJson = fgets(STDIN);
// اقرأ اسم الطالب
$studentName = trim(fgets(STDIN));
// حوّل JSON إلى مصفوفة
$gradebook = (array)json_decode($gradebookJson, true);
// TODO: اكتب الكود الخاص بك أدناه
// ابحث عن الطالب، واحسب متوسط درجاته، وقرّبه إلى منزلتين عشريتين
// اطبع النتيجة
echo $average;
?>جميع دروس المنطق وتدفق التنفيذ
1الدوال المتقدمة
الدوال المجهولةالـ Closures وكلمة 'use'دوال السهمدوال الـ Callbackاستخدام 'call_user_func'دوال المتغيراتالتمرير بالمرجعالدوال العوديةمراجعة: مزيج الدوال4المصفوفات متعددة الأبعاد
إنشاء مصفوفة ثنائية الأبعادالوصول إلى عناصر المصفوفة ثنائية الأبعادتعديل عناصر المصفوفة ثنائية الأبعادالتكرار باستخدام الحلقات المتداخلةالمصفوفات الترابطية ثنائية الأبعادمراجعة: تمرين الشبكة البسيطة2معالجة المصفوفات المتقدمة
الإضافة باستخدام 'array_push'الحذف باستخدام 'array_pop'الإضافة باستخدام 'array_unshift'الحذف باستخدام 'array_shift'دمج المصفوفات المفهرسةدمج المصفوفات الترابطيةالاستخراج باستخدام 'array_slice'القيم باستخدام 'in_array'المفاتيح باستخدام 'array_search'مراجعة: تمرين قائمة التشغيل5سجل درجات الطلاب
إعداد المشروع: هيكل البياناتإضافة طالب جديدإضافة درجة لطالبحساب متوسط الطالبإيجاد الطالب المتفوقإنشاء تقرير الدرجات3ترتيب المصفوفات
ترتيب المصفوفات المفهرسة تصاعدياًترتيب المصفوفات المفهرسة تنازلياًترتيب المصفوفات الترابطية حسب القيمةترتيب المصفوفات الترابطية حسب المفتاحالترتيب بالترتيب الطبيعيالترتيب المخصص باستخدام 'usort'مراجعة: ترتيب لوحة المتصدرينتدرّب بنفسك: مترجم PHP عبر الإنترنت