Menu
Coddy logo textTech

Rückblick – Rechteck-Aktionen

Teil des Abschnitts Object Oriented Programming der Rust-Journey von Coddy — Lektion 7 von 61.

challenge icon

Aufgabe

Einfach

Erstellen Sie ein Rectangle-Struct mit zwei Feldern: width (u32) und height (u32).

Fügen Sie einen Implementierungsblock für Rectangle mit folgendem Inhalt hinzu:

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

Sie erhalten drei Eingaben:

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

Erstellen Sie ein veränderbares Rectangle mit Rectangle::new und den angegebenen Dimensionen. Geben Sie die ursprüngliche Fläche aus, skalieren Sie dann das Rechteck um den angegebenen Faktor und geben Sie die neue Fläche aus.

Erwartetes Ausgabeformat:

{initial_area}
{scaled_area}

Probier es selbst

use std::io;

// TODO: Definiere hier das Rectangle-Struct


// TODO: Füge den Implementierungsblock für Rectangle hinzu mit:
// - new: assoziierte Funktion, die Breite und Höhe entgegennimmt und ein Rectangle zurückgibt
// - area: Methode, die &self entgegennimmt und u32 zurückgibt
// - scale: Methode, die &mut self und einen Faktor entgegennimmt und Breite sowie Höhe multipliziert


fn main() {
    let mut input = String::new();
    
    // Breite einlesen
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let width: u32 = input.trim().parse().expect("Invalid number");
    
    input.clear();
    
    // Höhe einlesen
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let height: u32 = input.trim().parse().expect("Invalid number");
    
    input.clear();
    
    // Skalierungsfaktor einlesen
    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 ursprüngliche Fläche aus
    
    // TODO: Skaliere das Rechteck um den Faktor
    
    // TODO: Gib die neue Fläche aus
}

Alle Lektionen in Object Oriented Programming