Menu
Coddy logo textTech

Resumen - Acciones de Rectángulo

Parte de la sección Object Oriented Programming del Journey de Rust de Coddy — lección 7 de 61.

challenge icon

Desafío

Fácil

Crea una estructura Rectangle con dos campos: width (u32) y height (u32).

Añade un bloque de implementación para Rectangle con lo siguiente:

  • new — una función asociada que toma width: u32 y height: u32 y devuelve un nuevo Rectangle
  • area — toma &self y devuelve el área como u32
  • scale — toma &mut self y un factor: u32, multiplica tanto el ancho como el alto por el factor

Recibirás tres entradas:

  • Primera línea: el ancho (u32)
  • Segunda línea: el alto (u32)
  • Tercera línea: el factor de escala (u32)

Crea un Rectangle mutable usando Rectangle::new con las dimensiones proporcionadas. Imprime el área inicial, luego escala el rectángulo por el factor dado e imprime el área nueva.

Formato de salida esperado:

{initial_area}
{scaled_area}

Pruébalo tú mismo

use std::io;

// TODO: Define la estructura Rectangle aquí


// TODO: Añade el bloque de implementación para Rectangle con:
// - new: función asociada que toma ancho y alto, devuelve Rectangle
// - area: método que toma &self, devuelve u32
// - scale: método que toma &mut self y factor, multiplica el ancho y el alto


fn main() {
    let mut input = String::new();
    
    // Leer ancho
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let width: u32 = input.trim().parse().expect("Invalid number");
    
    input.clear();
    
    // Leer alto
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let height: u32 = input.trim().parse().expect("Invalid number");
    
    input.clear();
    
    // Leer factor de escala
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let factor: u32 = input.trim().parse().expect("Invalid number");
    
    // TODO: Crear un Rectangle mutable usando Rectangle::new
    
    // TODO: Imprimir el área inicial
    
    // TODO: Escalar el rectángulo por el factor
    
    // TODO: Imprimir la nueva área
}

Todas las lecciones de Object Oriented Programming