Menu
Coddy logo textTech

Recapitulação - Ações de Retângulo

Parte da seção Object Oriented Programming do Journey de Rust da Coddy — lição 7 de 61.

challenge icon

Desafio

Fácil

Crie uma struct Rectangle com dois campos: width (u32) e height (u32).

Adicione um bloco de implementação para Rectangle com o seguinte:

  • new — uma função associada que recebe width: u32 e height: u32 e retorna um novo Rectangle
  • area — recebe &self e retorna a área como u32
  • scale — recebe &mut self e um factor: u32, multiplica tanto a largura quanto a altura pelo fator

Você receberá três entradas:

  • Primeira linha: a largura (u32)
  • Segunda linha: a altura (u32)
  • Terceira linha: o fator de escala (u32)

Crie um Rectangle mutável usando Rectangle::new com as dimensões fornecidas. Imprima a área inicial, depois dimensione o retângulo pelo fator fornecido e imprima a nova área.

Formato de saída esperado:

{initial_area}
{scaled_area}

Experimente você mesmo

use std::io;

// TODO: Defina a struct Rectangle aqui


// TODO: Adicione o bloco de implementação para Rectangle com:
// - new: função associada que recebe largura (width) e altura (height), retorna Rectangle
// - area: método que recebe &self, retorna u32
// - scale: método que recebe &mut self e um fator (factor), multiplica a largura e a altura


fn main() {
    let mut input = String::new();
    
    // Ler largura
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let width: u32 = input.trim().parse().expect("Invalid number");
    
    input.clear();
    
    // Ler altura
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let height: u32 = input.trim().parse().expect("Invalid number");
    
    input.clear();
    
    // Ler fator de escala
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let factor: u32 = input.trim().parse().expect("Invalid number");
    
    // TODO: Criar um Rectangle mutável usando Rectangle::new
    
    // TODO: Imprimir a área inicial
    
    // TODO: Escalar o retângulo pelo fator
    
    // TODO: Imprimir a nova área
}

Todas as lições de Object Oriented Programming