Menu
Coddy logo textTech

Проверка наличия

Часть раздела Logic & Flow путешествия по Rust на Coddy — урок 51 из 66.

challenge icon

Задание

Легко

Вы получите четыре входных значения. Первое — это название товара для проверки. Второе — список названий товаров в инвентаре, разделенных запятыми. Третье — список цен, соответствующих каждому товару, разделенных запятыми. Четвертое — список количеств, соответствующих каждому товару, разделенных запятыми. Создайте HashMap для хранения данных инвентаря, где ключом является название товара, а значением — кортеж, содержащий цену и количество (f64, i32). Затем проверьте, существует ли запрошенный товар в инвентаре, используя .get(), и выведите соответствующую информацию о наличии.

Требования:

  • Импортируйте HashMap из std::collections
  • Прочитайте первый ввод (название товара для проверки) и удалите лишние пробелы
  • Прочитайте второй ввод (названия товаров через запятую) и удалите лишние пробелы
  • Прочитайте третий ввод (цены через запятую) и удалите лишние пробелы
  • Прочитайте четвертый ввод (количества через запятую) и удалите лишние пробелы
  • Создайте изменяемый HashMap<String, (f64, i32)> для инвентаря
  • Разделите названия товаров по запятым
  • Разделите цены по запятым и преобразуйте каждую в f64
  • Разделите количества по запятым и преобразуйте каждое в i32
  • Вставьте каждый товар в инвентарь с соответствующей ценой и количеством в виде кортежа
  • Используйте .get(), чтобы проверить, существует ли запрошенный товар в инвентаре
  • Используйте выражение match для обработки Option, возвращаемого методом .get()
  • В ветке Some извлеките цену и количество из кортежа и выведите:
    • [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 и вывода соответствующего результата
}

Все уроки раздела Logic & Flow