Menu
Coddy logo textTech

Récapitulatif - Actions sur le rectangle

Fait partie de la section Object Oriented Programming du Journey Rust de Coddy — leçon 7 sur 61.

challenge icon

Défi

Facile

Créez une structure Rectangle avec deux champs : width (u32) et height (u32).

Ajoutez un bloc d'implémentation pour Rectangle avec les éléments suivants :

  • new — une fonction associée qui prend width: u32 et height: u32 et retourne un nouveau Rectangle
  • area — prend &self et retourne l'aire sous forme de u32
  • scale — prend &mut self et un factor: u32, multiplie à la fois la largeur et la hauteur par le facteur

Vous recevrez trois entrées :

  • Première ligne : la largeur (u32)
  • Deuxième ligne : la hauteur (u32)
  • Troisième ligne : le facteur d'échelle (u32)

Créez un Rectangle mutable en utilisant Rectangle::new avec les dimensions fournies. Affichez l'aire initiale, puis redimensionnez le rectangle par le facteur donné, et affichez la nouvelle aire.

Format de sortie attendu :

{initial_area}
{scaled_area}

Essayez vous-même

use std::io;

// TODO: Définir la structure Rectangle ici


// TODO: Ajouter le bloc d'implémentation pour Rectangle avec :
// - new : fonction associée qui prend la largeur et la hauteur, retourne un Rectangle
// - area : méthode qui prend &self, retourne un u32
// - scale : méthode qui prend &mut self et un facteur, multiplie la largeur et la hauteur


fn main() {
    let mut input = String::new();
    
    // Lire la largeur
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let width: u32 = input.trim().parse().expect("Invalid number");
    
    input.clear();
    
    // Lire la hauteur
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let height: u32 = input.trim().parse().expect("Invalid number");
    
    input.clear();
    
    // Lire le facteur d'échelle
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let factor: u32 = input.trim().parse().expect("Invalid number");
    
    // TODO: Créer un Rectangle mutable en utilisant Rectangle::new
    
    // TODO: Afficher l'aire initiale
    
    // TODO: Mettre à l'échelle le rectangle par le facteur
    
    // TODO: Afficher la nouvelle aire
}

Toutes les leçons de Object Oriented Programming