Menu
Coddy logo textTech

סיכום – מציאת איבר

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

challenge icon

אתגר

קל

יתקבלו שני קלטים. הקלט הראשון הוא רשימת מספרים המופרדים בפסיקים (למשל, 10,20,30,40), והקלט השני הוא מספר היעד שיש לחפש. יש לנתח את המספרים המופרדים בפסיקים לתוך וקטור, ואז לחפש את מספר היעד. השתמשו ב־.iter().position() כדי למצוא את האינדקס של מספר היעד, פעולה שמחזירה Option<usize>. טפלו בשני המקרים באמצעות match והדפיסו את ההודעה המתאימה.

דרישות:

  • קראו את הקלט הראשון (מספרים המופרדים בפסיקים) והסירו רווחים לבנים
  • פצלו את הקלט לפי פסיקים ונתחו כל חלק ל־i32 כדי ליצור וקטור
  • קראו את הקלט השני (מספר היעד) והסירו רווחים לבנים
  • נתחו את מספר היעד ל־i32
  • השתמשו ב־.iter().position(|&x| x == target) כדי לחפש את היעד בווקטור
  • השתמשו בביטוי match כדי לטפל בערך Option שמוחזר על ידי .position()
  • בזרוע Some(index), הדפיסו: Found at index [index]
  • בזרוע None, הדפיסו: Not found

קלט:

  • שורה ראשונה: מספרים המופרדים בפסיקים (למשל, 10,20,30,40)
  • שורה שנייה: מספר היעד שיש לחפש (למשל, 30)

פלט:

  • אם היעד נמצא: Found at index [index]
  • אם היעד לא נמצא: Not found

נסו בעצמכם

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

fn main() {
    let stdin = io::stdin();
    let mut lines = stdin.lock().lines();
    
    // קראו את המספרים המופרדים בפסיקים
    let numbers_input = lines.next().unwrap().unwrap().trim().to_string();
    
    // קראו את מספר היעד
    let target_input = lines.next().unwrap().unwrap().trim().to_string();
    
    // המירו את המספרים המופרדים בפסיקים לווקטור
    let numbers: Vec<i32> = numbers_input
        .split(',')
        .map(|s| s.trim().parse().unwrap())
        .collect();
    
    // המירו את מספר היעד
    let target: i32 = target_input.parse().unwrap();
    
    // TODO: כתבו את הקוד שלכם למטה
    // השתמשו ב-.iter().position() כדי למצוא את היעד וב-match כדי לטפל בתוצאה
    
}

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

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