Menu
Coddy logo textTech

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

Parte da seção Programação Orientada a Objetos 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, multiplicando width e height 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 escale 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 width e height, retorna Rectangle
// - area: método que recebe &self, retorna u32
// - scale: método que recebe &mut self e factor, multiplica width e height


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

Todas as lições de Programação Orientada a Objetos

Pratique por conta própria: Compilador de Rust online