מציאת התלמיד המצטיין
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-PHP של Coddy. שיעור 37 מתוך 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]}})
הפלט הצפוי: שם התלמיד עם ממוצע הציונים הגבוה ביותר (דוגמה: Bob)
נסו בעצמכם
<?php
// קראו את קלט ה-JSON
$input = fgets(STDIN);
// המירו את ה-JSON למערך
$gradebook = (array)json_decode($input, true);
// TODO: כתבו את הקוד שלכם למטה
// חשבו את ממוצע הציונים של כל תלמיד
// מצאו את התלמיד עם הממוצע הגבוה ביותר
// הציגו את שמו של התלמיד המצטיין
echo $topStudent;
?>כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1פונקציות מתקדמות
פונקציות אנונימיותסגירות ו-'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 אונליין