Menu
Coddy logo textTech

まとめ:Rectangle の操作

CoddyのRustジャーニー「Object Oriented Programming」セクションの一部 — レッスン 7/61。

challenge icon

チャレンジ

簡単

2つのフィールド、width (u32) と height (u32) を持つ Rectangle 構造体を作成してください。

Rectangle に対して、以下の内容を含む実装ブロックを追加してください。

  • newwidth: u32height: u32 を受け取り、新しい Rectangle を返す関連関数
  • area&self を受け取り、面積を u32 として返すメソッド
  • scale&mut selffactor: u32 を受け取り、幅と高さの両方にその係数を掛けるメソッド

3つの入力を受け取ります:

  • 1行目: 幅 (u32)
  • 2行目: 高さ (u32)
  • 3行目: スケール係数 (u32)

提供された寸法を使用して、Rectangle::new で可変の Rectangle を作成してください。最初の面積を出力し、次に指定された係数で長方形をスケールし、新しい面積を出力してください。

期待される出力形式:

{initial_area}
{scaled_area}

自分で試してみよう

use std::io;

// TODO: ここでRectangle構造体を定義します


// TODO: Rectangleの実装ブロックを追加します:
// - new: 幅と高さを受け取り、Rectangleを返す関連関数
// - area: &selfを受け取り、u32を返すメソッド
// - scale: &mut selfと係数を受け取り、幅と高さを乗算するメソッド


fn main() {
    let mut input = String::new();
    
    // 幅を読み込む
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let width: u32 = input.trim().parse().expect("Invalid number");
    
    input.clear();
    
    // 高さを読み込む
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let height: u32 = input.trim().parse().expect("Invalid number");
    
    input.clear();
    
    // スケール係数を読み込む
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let factor: u32 = input.trim().parse().expect("Invalid number");
    
    // TODO: Rectangle::newを使用して可変なRectangleを作成します
    
    // TODO: 初期面積をプリントします
    
    // TODO: 係数によって長方形をスケールさせます
    
    // TODO: 新しい面積をプリントします
}

Object Oriented Programmingのすべてのレッスン