Menu
Coddy logo textTech

Rückblick – Rechteck-Aktionen

Teil des Abschnitts Objektorientierte Programmierung der Rust-Journey von Coddy. Lektion 7 von 61.

challenge icon

Aufgabe

Einfach

Erstelle eine Rectangle-Struktur mit zwei Feldern: width (u32) und height (u32).

Füge einen Implementierungsblock für Rectangle mit Folgendem hinzu:

  • new: eine zugehörige Funktion, die width: u32 und height: u32 übernimmt und ein neues Rectangle zurückgibt
  • area: übernimmt &self und gibt die Fläche als u32 zurück
  • scale: übernimmt &mut self und einen factor: u32 und multipliziert sowohl die Breite als auch die Höhe mit dem Faktor

Du erhältst drei Eingaben:

  • Erste Zeile: die Breite (u32)
  • Zweite Zeile: die Höhe (u32)
  • Dritte Zeile: der Skalierungsfaktor (u32)

Erstelle mithilfe von Rectangle::new ein veränderbares Rectangle mit den angegebenen Abmessungen. Gib zuerst die ursprüngliche Fläche aus, skaliere dann das Rechteck mit dem angegebenen Faktor und gib die neue Fläche aus.

Erwartetes Ausgabeformat:

{initial_area}
{scaled_area}

Probier es selbst

use std::io;

// TODO: Definiere die Rectangle-Struktur hier


// TODO: Füge den Implementierungsblock für Rectangle hinzu mit:
// - new: assoziierte Funktion, die width und height nimmt und Rectangle zurückgibt
// - area: Methode, die &self nimmt und u32 zurückgibt
// - scale: Methode, die &mut self und factor nimmt und width und height multipliziert


fn main() {
    let mut input = String::new();
    
    // Breite lesen
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let width: u32 = input.trim().parse().expect("Invalid number");
    
    input.clear();
    
    // Höhe lesen
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let height: u32 = input.trim().parse().expect("Invalid number");
    
    input.clear();
    
    // Skalierungsfaktor lesen
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let factor: u32 = input.trim().parse().expect("Invalid number");
    
    // TODO: Erstelle ein veränderbares Rectangle mit Rectangle::new
    
    // TODO: Gib die anfängliche Fläche aus
    
    // TODO: Skaliere das Rechteck mit dem Faktor
    
    // TODO: Gib die neue Fläche aus
}

Alle Lektionen in Objektorientierte Programmierung

Übe selbstständig: Online-Rust-Compiler