Menu
Coddy logo textTech

בדיקת המלאי

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

challenge icon

אתגר

קל

תקבלו ארבעה קלטים. הקלט הראשון הוא שם של פריט לבדיקה. הקלט השני הוא רשימה מופרדת בפסיקים של שמות הפריטים במלאי. הקלט השלישי הוא רשימה מופרדת בפסיקים של המחירים המתאימים לכל פריט. הקלט הרביעי הוא רשימה מופרדת בפסיקים של הכמויות המתאימות לכל פריט. צרו HashMap לאחסון נתוני המלאי, כאשר המפתח הוא שם הפריט והערך הוא tuple המכיל את המחיר והכמות (f64, i32). לאחר מכן בדקו אם הפריט המבוקש קיים במלאי באמצעות .get() והדפיסו את פרטי המלאי המתאימים.

דרישות:

  • ייבאו את HashMap מתוך std::collections
  • קראו את הקלט הראשון (שם הפריט לבדיקה) והסירו רווחים לבנים
  • קראו את הקלט השני (שמות פריטים מופרדים בפסיקים) והסירו רווחים לבנים
  • קראו את הקלט השלישי (מחירים מופרדים בפסיקים) והסירו רווחים לבנים
  • קראו את הקלט הרביעי (כמויות מופרדות בפסיקים) והסירו רווחים לבנים
  • צרו HashMap<String, (f64, i32)> משתנה עבור המלאי
  • פצלו את שמות הפריטים לפי פסיקים
  • פצלו את המחירים לפי פסיקים והמירו כל אחד מהם ל-f64
  • פצלו את הכמויות לפי פסיקים והמירו כל אחת מהן ל-i32
  • הכניסו כל פריט למלאי עם המחיר והכמות המתאימים לו כ-tuple
  • השתמשו ב-.get() כדי לבדוק אם הפריט המבוקש קיים במלאי
  • השתמשו בביטוי match כדי לטפל ב-Option שמוחזר על ידי .get()
  • בזרוע Some, חלצו את המחיר והכמות מתוך ה-tuple והדפיסו:
    • [item_name] is in stock
    • Price: $[price]
    • Quantity: [quantity]
  • בזרוע None, הדפיסו: [item_name] is not in stock

קלט:

  • שורה ראשונה: שם הפריט לבדיקה (למשל, Laptop)
  • שורה שנייה: שמות פריטים מופרדים בפסיקים (למשל, Laptop,Mouse,Keyboard)
  • שורה שלישית: מחירים מופרדים בפסיקים (למשל, 999.99,25.50,75.00)
  • שורה רביעית: כמויות מופרדות בפסיקים (למשל, 15,50,30)

פלט:

  • אם הפריט קיים במלאי:
    • שורה ראשונה: [item_name] is in stock
    • שורה שנייה: Price: $[price]
    • שורה שלישית: Quantity: [quantity]
  • אם הפריט אינו קיים: [item_name] is not in stock

נסו בעצמכם

use std::collections::HashMap;
use std::io;

fn main() {
    // קראו את שם הפריט שיש לבדוק
    let mut item_to_check = String::new();
    io::stdin().read_line(&mut item_to_check).expect("Failed to read line");
    let item_to_check = item_to_check.trim();
    
    // קראו את שמות הפריטים המופרדים בפסיקים
    let mut items_input = String::new();
    io::stdin().read_line(&mut items_input).expect("Failed to read line");
    let items_input = items_input.trim();
    
    // קראו את המחירים המופרדים בפסיקים
    let mut prices_input = String::new();
    io::stdin().read_line(&mut prices_input).expect("Failed to read line");
    let prices_input = prices_input.trim();
    
    // קראו את הכמויות המופרדות בפסיקים
    let mut quantities_input = String::new();
    io::stdin().read_line(&mut quantities_input).expect("Failed to read line");
    let quantities_input = quantities_input.trim();
    
    // TODO: כתבו את הקוד שלכם למטה
    // צרו HashMap לאחסון נתוני המלאי
    // פצלו את הקלטים ומלאו את ה-HashMap
    // השתמשו ב-.get() כדי לבדוק אם הפריט קיים
    // השתמשו ב-match כדי לטפל ב-Option ולהדפיס את הפלט המתאים
}

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

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