סיכום – מעקב בסיסי אחר ניקוד
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Rust של Coddy. שיעור 14 מתוך 66.
אתגר
קליתקבלו שני קלטים: הראשון הוא רשימת ציוני מבחנים המופרדים בפסיקים, והשני הוא ציון להוספה. צרו וקטור מהציונים ההתחלתיים, הוסיפו את הציון החדש, חשבו את הממוצע של כל הציונים והדפיסו את התוצאות.
דרישות:
- קראו את הקלט הראשון המכיל ציונים המופרדים בפסיקים (לדוגמה,
85,92,78) - פצלו את המחרוזת לפי פסיקים והסירו רווחים מיותרים מכל אסימון בנפרד לפני ההמרה למספר שלם (לדוגמה, השתמשו ב-
.trim()על כל איבר לאחר הפיצול) - צרו וקטור שניתן לשינוי מהציונים האלה
- קראו את הקלט השני והמירו אותו למספר שלם (הסירו ממנו רווחים מיותרים תחילה)
- השתמשו ב-
.push()כדי להוסיף את הציון החדש לווקטור - חשבו את הממוצע של כל הציונים בווקטור
- הדפיסו את המספר הכולל של הציונים
- הדפיסו את הציון הממוצע (כמספר שלם)
קלט:
- שורה ראשונה: מספרים שלמים המייצגים ציונים התחלתיים ומופרדים בפסיקים (לדוגמה,
85,92,78) - שורה שנייה: מספר שלם המייצג את הציון החדש להוספה
פלט:
- שורה ראשונה: המספר הכולל של הציונים
- שורה שנייה: הציון הממוצע (כמספר שלם, לאחר קטימה)
הערה: קראו תמיד ל-.trim() על שורת הקלט כולה וגם על כל אסימון ציון בנפרד לאחר הפיצול לפי פסיק. מחרוזות הקלט עשויות להכיל רווחים לבנים בלתי נראים או תווי שורה חדשה, שיגרמו לבהלה בעת הניתוח אם לא יוסרו.
נסו בעצמכם
use std::io;
fn main() {
// קראו את הציונים המופרדים בפסיקים
let mut scores_input = String::new();
io::stdin().read_line(&mut scores_input).expect("Failed to read line");
// קראו את הציון החדש שיש להוסיף
let mut new_score_input = String::new();
io::stdin().read_line(&mut new_score_input).expect("Failed to read line");
// TODO: כתבו את הקוד שלכם להלן
// 1. פצלו את scores_input לפי פסיקים והמירו את הערכים למספרים שלמים
// 2. צרו וקטור שניתן לשינוי מהציונים האלה
// 3. המירו את new_score_input למספר שלם
// 4. הוסיפו את הציון החדש לסוף הווקטור
// 5. חשבו את הממוצע של כל הציונים
// הדפיסו את מספר הציונים הכולל
// println!("{}", total_scores);
// הדפיסו את ממוצע הציונים
// println!("{}", average);
}כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1זרימת בקרה מתקדמת
ביטוי 'match'התאמה למספר ערכיםהתאמה לטווחיםביטוי 'if let'לולאות כביטוייםסיכום – מנתח פקודות פשוט4קיבוץ נתונים באמצעות מבנים
מהו מבנה?סקירה כללית על מבניםגישה לשדות במבנהמבנים הניתנים לשינוימבנים כפרמטרים של פונקציהמבני טופלסיכום – יצירת מבנה ספר7טיפול בשגיאות באמצעות 'Result'
מהו 'Result'?שימוש ב-'match' עם 'Result'is_ok() ו-is_err()קיצורי דרך: unwrap ו-expectאופרטור סימן השאלה '?'המרת מחרוזות למספריםסיכום - פונקציית חילוק בטוחה10Closures ופונקציות אנונימיות
מהו Closure?הגדרת Closure פשוטClosures עם פרמטריםלכידת הסביבהסיכום – Closure פשוט לחיבור2מבוא לווקטורים
מהו וקטור?יצירת וקטורהוספת איברים באמצעות pushגישה לאיברי וקטורמעבר על וקטורמעבר ניתן לשינויהסרת איבריםסיכום – מעקב בסיסי אחר ניקוד5זוגות מפתח-ערך באמצעות מפות גיבוב
מהי מפת גיבוב?יצירת מפת גיבובהוספת זוגות מפתח-ערךגישה לערכיםמעבר על מפת גיבובעדכון ערךהסרת זוגסיכום – מונה מיליםתרגלו בעצמכם: קומפיילר Rust אונליין