הוספת משימה
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Rust של Coddy. שיעור 16 מתוך 66.
אתגר
קלתקבלו שתי קלטים: הראשון הוא רשימה של משימות קיימות המופרדות בפסיקים, והשני הוא משימה חדשה להוספה. קראו את שני הקלטים, צרו וקטור מהמשימות הקיימות, הוסיפו את המשימה החדשה לווקטור והדפיסו את רשימת המשימות המעודכנת.
דרישות:
- קראו את הקלט הראשון, המכיל תיאורי משימות המופרדים בפסיקים (למשל,
Buy groceries,Call dentist) - פצלו את המחרוזת לפי פסיקים כדי לקבל משימות נפרדות
- צרו וקטור שניתן לשינוי והוסיפו אליו כל אחת מהמשימות הקיימות
- קראו את הקלט השני, המכיל את המשימה החדשה להוספה
- השתמשו ב־
.push()כדי להוסיף את המשימה החדשה לווקטור - הדפיסו את מספר המשימות הכולל בפורמט:
Total tasks: X - הדפיסו כל משימה בשורה נפרדת בפורמט:
Task: [task description]
קלט:
- שורה ראשונה: תיאורי משימות המופרדים בפסיקים (למשל,
Buy groceries,Call dentist) - שורה שנייה: משימה חדשה להוספה (למשל,
Finish homework)
פלט:
- שורה ראשונה:
Total tasks: Xכאשר X הוא מספר המשימות הכולל לאחר הוספת המשימה החדשה - השורות הבאות: כל משימה מודפסת כך:
Task: [task description]
נסו בעצמכם
use std::io;
fn main() {
// קרא את הקלט הראשון (משימות מופרדות בפסיקים)
let mut existing_tasks = String::new();
io::stdin().read_line(&mut existing_tasks).expect("Failed to read line");
let existing_tasks = existing_tasks.trim();
// קרא את הקלט השני (משימה חדשה להוספה)
let mut new_task = String::new();
io::stdin().read_line(&mut new_task).expect("Failed to read line");
let new_task = new_task.trim();
// TODO: כתוב את הקוד שלך למטה
// פצל את existing_tasks לפי פסיקים וצור וקטור שניתן לשינוי
// הוסף את המשימה החדשה לווקטור
// הדפס את מספר המשימות הכולל
// הדפס כל משימה בפורמט הנדרש
}כל השיעורים ביחידה לוגיקה וזרימת תוכנית
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 אונליין