צפייה בכל המשימות
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Rust של Coddy. שיעור 17 מתוך 66.
אתגר
קליתקבלו שני קלטים: הראשון הוא רשימה של משימות קיימות המופרדות בפסיקים, והשני הוא מספר המשימה להצגה (האינדקס מתחיל ב־1). קראו את שני הקלטים, צרו וקטור מהמשימות והציגו את כל המשימות עם המספרים שלהן, תוך הדגשת המשימה המבוקשת.
דרישות:
- קראו את הקלט הראשון, שמכיל תיאורי משימות המופרדים בפסיקים (לדוגמה,
Buy groceries,Call dentist,Finish homework) - פצלו את המחרוזת לפי פסיקים כדי לקבל משימות נפרדות
- צרו וקטור והוסיפו אליו כל משימה
- קראו את הקלט השני והמירו אותו למספר שלם (מספר המשימה להדגשה, כאשר האינדקס מתחיל ב־1)
- הדפיסו את מספר המשימות הכולל בתבנית:
Total tasks: X - עברו על הווקטור והדפיסו כל משימה עם המספר שלה (האינדקס מתחיל ב־1)
- עבור מספר המשימה המבוקשת, הדפיסו אותה בתבנית:
[X] [task description] (selected) - עבור כל שאר המשימות, הדפיסו אותן בתבנית:
[X] [task description]
קלט:
- שורה ראשונה: תיאורי משימות מופרדים בפסיקים (לדוגמה,
Buy groceries,Call dentist,Finish homework) - שורה שנייה: מספר שלם המייצג את מספר המשימה להדגשה (האינדקס מתחיל ב־1)
פלט:
- שורה ראשונה:
Total tasks: Xכאשר X הוא מספר המשימות הכולל - השורות הבאות: כל משימה עם המספר שלה בתבנית
[X] [task description] - יש להוסיף למשימה שנבחרה את
(selected)
נסו בעצמכם
use std::io::{self, BufRead};
fn main() {
let stdin = io::stdin();
let mut lines = stdin.lock().lines();
// קרא את המשימות המופרדות בפסיקים
let tasks_input = lines.next().unwrap().unwrap();
// קרא את מספר המשימה שיש להדגיש
let task_number: usize = lines.next().unwrap().unwrap().trim().parse().unwrap();
// TODO: כתוב את הקוד שלך למטה
// פצל את tasks_input לפי פסיקים וצור וקטור
// הדפס את המספר הכולל של המשימות
// עבור על המשימות והדפס כל אחת עם המספר שלה
// הדגש את המשימה שנבחרה על ידי הוספת " (selected)" לסופה
}כל השיעורים ביחידה לוגיקה וזרימת תוכנית
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 אונליין