Menu
Coddy logo textTech

Verificando o Estoque

Parte da seção Lógica & Fluxo do Journey de Rust da Coddy. Lição 51 de 66.

challenge icon

Desafio

Fácil

Você receberá quatro entradas. A primeira entrada é o nome de um item a ser verificado. A segunda entrada é uma lista de nomes de itens separados por vírgulas no inventário. A terceira entrada é uma lista de preços separados por vírgulas correspondente a cada item. A quarta entrada é uma lista de quantidades separadas por vírgulas correspondente a cada item. Crie um HashMap para armazenar os dados do inventário, em que a chave é o nome do item e o valor é uma tupla contendo o preço e a quantidade (f64, i32). Em seguida, verifique se o item solicitado existe no inventário usando .get() e imprima as informações de estoque apropriadas.

Requisitos:

  • Importe HashMap de std::collections
  • Leia a primeira entrada (nome do item a ser verificado) e remova os espaços em branco
  • Leia a segunda entrada (nomes de itens separados por vírgulas) e remova os espaços em branco
  • Leia a terceira entrada (preços separados por vírgulas) e remova os espaços em branco
  • Leia a quarta entrada (quantidades separadas por vírgulas) e remova os espaços em branco
  • Crie um HashMap<String, (f64, i32)> mutável para o inventário
  • Separe os nomes dos itens pelas vírgulas
  • Separe os preços pelas vírgulas e converta cada um para f64
  • Separe as quantidades pelas vírgulas e converta cada uma para i32
  • Insira cada item no inventário com seu preço e quantidade correspondentes como uma tupla
  • Use .get() para verificar se o item solicitado existe no inventário
  • Use uma expressão match para tratar o Option retornado por .get()
  • No ramo Some, extraia o preço e a quantidade da tupla e imprima:
    • [item_name] is in stock
    • Price: $[price]
    • Quantity: [quantity]
  • No ramo None, imprima: [item_name] is not in stock

Entrada:

  • Primeira linha: Nome do item a ser verificado (por exemplo, Laptop)
  • Segunda linha: Nomes de itens separados por vírgulas (por exemplo, Laptop,Mouse,Keyboard)
  • Terceira linha: Preços separados por vírgulas (por exemplo, 999.99,25.50,75.00)
  • Quarta linha: Quantidades separadas por vírgulas (por exemplo, 15,50,30)

Saída:

  • Se o item existir no inventário:
    • Primeira linha: [item_name] is in stock
    • Segunda linha: Price: $[price]
    • Terceira linha: Quantity: [quantity]
  • Se o item não existir: [item_name] is not in stock

Experimente você mesmo

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

fn main() {
    // Ler o nome do item para verificar
    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();
    
    // Ler os nomes dos itens separados por vírgula
    let mut items_input = String::new();
    io::stdin().read_line(&mut items_input).expect("Failed to read line");
    let items_input = items_input.trim();
    
    // Ler os preços separados por vírgula
    let mut prices_input = String::new();
    io::stdin().read_line(&mut prices_input).expect("Failed to read line");
    let prices_input = prices_input.trim();
    
    // Ler as quantidades separadas por vírgula
    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: Escreva seu código abaixo
    // Criar um HashMap para armazenar os dados do inventário
    // Dividir as entradas e popular o HashMap
    // Usar .get() para verificar se o item existe
    // Usar match para lidar com o Option e imprimir a saída apropriada
}

Todas as lições de Lógica & Fluxo

Pratique por conta própria: Compilador de Rust online