バイクのシリンダーで学ぶ!はじめてのメソッドの仕組みと使い方

ソリューション、プロジェクトの新規作成

練習用に次のようなプロジェクトを作成します

MethodLearning_CylinderSample (ソリューション)
└── Sample1_CalculateCylinderVolume (プロジェクト)

【命名ポイント】

  • ソリューション名→ 「どんなテーマのメソッド学習か」が一目で分かる→ 複数のメソッド学習サンプルを追加しても統一できる
  • プロジェクト名→ 「何をしているサンプルか」が具体的に分かる→ 今後、バリエーション(別の形のメソッドサンプル)を追加しても整理しやすい

■ 1. メソッドとは?

  • メソッド = 「やりたい処理」を名前を付けて箱にまとめたもの
  • 現実のバイクでいうと「エンジンの動作の一部を担う部品の役割」と同じ
  • プログラムでも何度も使える「計算の道具箱」にできる

■ 2. バイクのシリンダーを例にする理由

  • バイクのエンジンは「シリンダー」という円柱で燃料を燃やして走る
  • シリンダーの大きさ(排気量)は 半径と高さ が分かれば円柱の体積で計算できる
  • 実際のバイク設計に近く、現実とプログラムを結びつけやすい

■ 3. 排気量(シリンダー容量)の求め方

V = π × r^2 × h

  • π ≒ 3.14
  • r : 半径(cm)
  • h : 高さ(cm)
  • V : 容量(cc)

■ 4. 400cc・4気筒バイクの例

項目
総排気量400 cc
気筒数4
1気筒あたり100 cc

1気筒の目安サイズ(逆算での大まかな値)

  • 半径 ≒ 2.5 cm
  • 高さ ≒ 5 cm

■ 5. メインクラスに直接メソッドを作る例

using System;

class Program
{
    static void Main()
    {
        // 半径と高さを設定
        double radius = 2.5;   // cm
        double height = 5.0;   // cm

        // メソッドを呼び出して排気量を計算
        double volume = CalculateCylinderVolume(radius, height);

        Console.WriteLine($"1気筒の容量は {volume:F2} cc です。");
        Console.WriteLine($"4気筒の合計容量は {volume * 4:F2} cc です。");
    }

    /// <summary>
    /// シリンダーの容量(排気量)を計算するメソッド
    /// </summary>
    /// <param name="radius">半径(cm)</param>
    /// <param name="height">高さ(cm)</param>
    /// <returns>容量(cc)</returns>
    static double CalculateCylinderVolume(double radius, double height)
    {
        return Math.PI * radius * radius * height;
    }
}

■ 6. このサンプルで分かること

✅ メソッド = 計算の箱

  • CalculateCylinderVolume は「シリンダーの容量を計算する」役目だけを担当

✅ 引数でデータを受け取る

  • 半径と高さを外から渡してもらって計算する

✅ 戻り値で結果を返す

  • 計算結果を Main に返して、Main で表示する

✅ 何度でも呼び出せる

  • 同じメソッドを他のサイズで繰り返し使える!

■ 7. 実行結果(例)

1気筒の容量は 98.17 cc です。
4気筒の合計容量は 392.70 cc です。

■ 8. 練習問題

【問1】

半径を 3cm、高さを 5cm に変えて計算してみよう

→ どのくらい排気量が増える?

using System;

class Program
{
    static void Main()
    {
        double radius = 3.0;  // cm
        double height = 5.0;  // cm

        double volume = CalculateCylinderVolume(radius, height);

        Console.WriteLine($"半径3cm, 高さ5cm の容量は {volume:F2} cc です。");
    }

    static double CalculateCylinderVolume(double radius, double height)
    {
        return Math.PI * radius * radius * height;
    }
}

■ 結果(参考値)

  • 元のサイズ(2.5cm × 5cm): 約 98.17 cc
  • 新しいサイズ(3cm × 5cm): 約 141.37 cc

増加量: 約 43.2 cc 増える


【問2】

Main メソッドの中で 2つのシリンダーを比較

  • A: 半径 2.5cm, 高さ 5cm
  • B: 半径 3cm, 高さ 5cm→ それぞれの容量と差を表示するコードを書いてみよう
using System;

class Program
{
    static void Main()
    {
        double radiusA = 2.5;
        double heightA = 5.0;

        double radiusB = 3.0;
        double heightB = 5.0;

        double volumeA = CalculateCylinderVolume(radiusA, heightA);
        double volumeB = CalculateCylinderVolume(radiusB, heightB);

        Console.WriteLine($"A: 半径2.5cm, 高さ5cm → 容量: {volumeA:F2} cc");
        Console.WriteLine($"B: 半径3.0cm, 高さ5cm → 容量: {volumeB:F2} cc");

        double diff = volumeB - volumeA;
        Console.WriteLine($"容量の差: {diff:F2} cc");
    }

    static double CalculateCylinderVolume(double radius, double height)
    {
        return Math.PI * radius * radius * height;
    }
}

【問3】

CalculateCylinderVolume メソッドの説明コメントを自分の言葉に書き換えてみよう

(何のためのメソッドか、何を受け取って何を返すか)

/// <summary>
/// シリンダーの半径と高さから容量(排気量)を計算して返すメソッド。
/// 半径(cm)と高さ(cm)を受け取り、円柱の体積を cc で返す。
/// </summary>

✅ 【ポイント】

  • 何をするメソッドか → シリンダーの容量を計算する
  • 何を受け取るか → 半径と高さ(cm単位)
  • 何を返すか → 計算された容量(cc)

■ 9. まとめ

  • メソッドは 処理を分けて整理する道具箱
  • 必要なデータは引数で渡し、結果は戻り値で受け取る
  • 現実のモノ(シリンダー)に置き換えるとイメージしやすい!

■ 10. 発展

  • 実際のバイクの仕様(例:ボア x ストローク)を調べて、近い数値で試してみよう

✅ 【実際はどうなっているの?】

  • 排気量は 「ボア×ストローク×気筒数」 の理論計算だと小数点以下で微妙に400を超える場合がありますが…
  • 設計値や生産誤差を含めて、最終的にカタログ値で400を超えないように調整 されます
    • ピストン形状や燃焼室形状で微調整
    • メーカーは型式認定に合わせて登録

✅ 【ZX-4R の例】

例えば ZX-4R は

  • ボア 57.0mm × ストローク 39.1mm × 4気筒 → 理論値は約 401cc
  • でもカタログ値は 399cc

これは、

  • 燃焼室容積を含めた正確な排気量は設計上のボア×ストロークだけでは表せないからです。
  • 正確にはシリンダーヘッドの燃焼室形状や、ピストンクラウン形状も計算に含めて排気量が決まります。

VisualStudioのブレークポイントを使ったデバッグによる学習

ブレークポイントの登録方法

行番号の左側のグレーの部分をマウスでクリックします

開始ボタンで実行します

コードを実行するため、開始ボタンをクリックします

ステップ実行で1行づつ進めていきます

実行するとブレークポイント手前で一時停止します(黄色く表示されます)

黄色いところはまだ実行されていません

1行ずつ確認し、その時の変数の内容を見ます

実行ずみのところは、変数が代入されているのがわかります
また、メソッドを呼び出す(メインメソッドから見て)ところに来ると、メソッド側に黄色い場所が移動するのがわかります

訪問数 45 回, 今日の訪問数 46回

C#,メソッド

Posted by hidepon