Menu
Coddy logo textTech

הסרת משימה

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Rust של Coddy. שיעור 18 מתוך 66.

challenge icon

אתגר

קל

תקבלו שלושה קלטים: הראשון הוא רשימת משימות קיימות המופרדות בפסיקים; השני הוא מספר המשימה להסרה (אינדקס שמתחיל ב־1); והשלישי הוא משימה חדשה להוספה לאחר ההסרה. קראו את כל הקלטים, צרו מערך מהמשימות, הסירו את המשימה שצוינה, הוסיפו את המשימה החדשה והציגו את רשימת המשימות המעודכנת.

דרישות:

  • קראו את הקלט הראשון, שמכיל תיאורי משימות המופרדים בפסיקים (למשל, Buy groceries,Call dentist,Finish homework)
  • פצלו את המחרוזת לפי פסיקים כדי לקבל משימות נפרדות
  • צרו מערך שניתן לשינוי והוסיפו אליו כל משימה
  • קראו את הקלט השני והמירו אותו למספר שלם (מספר המשימה להסרה, באינדקס שמתחיל ב־1)
  • המירו את האינדקס שמתחיל ב־1 לאינדקס שמתחיל ב־0 והשתמשו ב־.remove() כדי להסיר את המשימה שבאינדקס הזה
  • קראו את הקלט השלישי, שמכיל משימה חדשה להוספה
  • השתמשו ב־.push() כדי להוסיף את המשימה החדשה למערך
  • הדפיסו את המספר הכולל של המשימות בפורמט: Total tasks: X
  • הדפיסו כל משימה בשורה נפרדת בפורמט: Task: [task description]

קלט:

  • שורה ראשונה: תיאורי משימות המופרדים בפסיקים (למשל, Buy groceries,Call dentist,Finish homework)
  • שורה שנייה: מספר שלם שמייצג את מספר המשימה להסרה (אינדקס שמתחיל ב־1)
  • שורה שלישית: משימה חדשה להוספה (למשל, Study for exam)

פלט:

  • שורה ראשונה: Total tasks: X כאשר X הוא המספר הכולל של המשימות לאחר ההסרה וההוספה
  • השורות הבאות: כל משימה מודפסת בתבנית Task: [task description]

נסו בעצמכם

use std::io::{self, BufRead};

fn main() {
    let stdin = io::stdin();
    let mut lines = stdin.lock().lines();
    
    // קראו את המשימות המופרדות בפסיקים
    let tasks_input = lines.next().unwrap().unwrap();
    
    // קראו את מספר המשימה שיש להסיר (אינדקסים המתחילים ב-1)
    let task_to_remove = lines.next().unwrap().unwrap();
    let task_number: usize = task_to_remove.trim().parse().unwrap();
    
    // קראו את המשימה החדשה שיש להוסיף
    let new_task = lines.next().unwrap().unwrap();
    
    // TODO: כתבו את הקוד שלכם למטה
    // פצלו את tasks_input לפי פסיקים וצרו וקטור שניתן לשינוי
    // הסירו את המשימה באינדקס שצוין (המירו מאינדקס המתחיל ב-1 לאינדקס המתחיל ב-0)
    // הוסיפו את המשימה החדשה לווקטור
    
    // הציגו את התוצאות
    // הדפיסו את מספר המשימות הכולל בפורמט: Total tasks: X
    // הדפיסו כל משימה בפורמט: Task: [תיאור המשימה]
}

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר Rust אונליין