7.4 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] - שקלו מקרים קיצוניים כמו מערכים ריקים או סוגי נתונים לא צפויים
💡 טיפ מקצועי: התחילו פשוט! קודם כל תגרמו לפונקציונליות הבסיסית לעבוד, ואז הוסיפו תכונות מתוחכמות יותר. זכרו, המטרה היא לתרגל לוגיקת קבלת החלטות עם הכלים שלמדתם בשיעור.
הצהרת אחריות:
מסמך זה תורגם באמצעות שירות תרגום מבוסס AI Co-op Translator. למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. למידע קריטי, מומלץ להשתמש בתרגום מקצועי אנושי. אנו לא נושאים באחריות לאי הבנות או פרשנויות שגויות הנובעות משימוש בתרגום זה.