基礎から学ぶC#入門 90日コース | 配列・コレクション・文字列 - Day 27:データ集計

C# 90日で身につけるC#
スポンサーリンク
スポンサーリンク

Day 27 のゴールと全体像

Day 27 では、「配列やリストの数値データを集計する基本テクニック」を学びます。 扱うテーマは次の 5 つです。

  • 合計
  • 平均
  • 最大値
  • 最小値
  • 件数

これらは、売上集計・アクセス数分析・テストの点数処理など、 あらゆる場面で登場する「データ集計の基礎」です。

ここでは、ループを使って自分の手で集計する感覚を身につけることを目標に、 ステップバイステップで解説していきます。

合計を求める

合計の考え方

合計は、

「すべての要素を足し合わせた結果」

です。

配列やリストの合計を求める基本的な方法は、

  1. 合計用の変数を 0 で用意する
  2. ループで 1 つずつ値を取り出して足していく

という流れになります。

例:テストの点数の合計を求める

using System;

class Program
{
    static void Main(string[] args)
    {
        // テストの点数の配列
        int[] scores = { 80, 90, 75, 60, 100 };

        // 合計を保存する変数。最初は 0 からスタートします。
        int sum = 0;

        // ループで 1 つずつ足していきます
        for (int i = 0; i < scores.Length; i++)
        {
            sum += scores[i]; // sum = sum + scores[i]; と同じ意味
        }

        Console.WriteLine($"合計点: {sum}");

        Console.ReadLine();
    }
}
C#

重要ポイント:

  • 合計用の変数は必ず「初期値 0」で始めます。
  • sum += scores[i]; のように、ループの中で足し込んでいきます。
  • 合計は、後で平均や割合を計算するときの基礎になります。

平均を求める

平均の考え方

平均は、

「合計 ÷ 件数」

で求めます。

つまり、

  1. 合計を求める
  2. 要素数(件数)を求める
  3. 合計を件数で割る

という 3 ステップです。

例:テストの平均点を求める

using System;

class Program
{
    static void Main(string[] args)
    {
        int[] scores = { 80, 90, 75, 60, 100 };

        int sum = 0;

        for (int i = 0; i < scores.Length; i++)
        {
            sum += scores[i];
        }

        // 件数(要素数)は Length で取得できます
        int count = scores.Length;

        // 平均は「合計 ÷ 件数」
        double average = (double)sum / count; // int 同士の割り算を避けるために double にキャスト

        Console.WriteLine($"合計点: {sum}");
        Console.WriteLine($"件数:   {count}");
        Console.WriteLine($"平均点: {average}");

        Console.ReadLine();
    }
}
C#

重要ポイント:

  • 平均を求めるときは、合計と件数の両方が必要です。
  • int 同士の割り算は小数点以下が切り捨てられるため、 double にキャストしてから割り算するのが安全です。

最大値を求める

最大値の考え方

最大値は、

「配列やリストの中で、最も大きい値」

です。

ループで最大値を求める基本的な方法は、

  1. 最初の要素を「仮の最大値」として変数に入れる
  2. 2番目以降の要素と比較して、より大きい値があれば更新する

という流れになります。

例:点数の最大値を求める

using System;

class Program
{
    static void Main(string[] args)
    {
        int[] scores = { 80, 90, 75, 60, 100 };

        // 最初の要素を仮の最大値として設定します
        int max = scores[0];

        // 2番目の要素から順番に比較していきます
        for (int i = 1; i < scores.Length; i++)
        {
            if (scores[i] > max)
            {
                max = scores[i]; // より大きい値が見つかったら更新
            }
        }

        Console.WriteLine($"最大値: {max}");

        Console.ReadLine();
    }
}
C#

重要ポイント:

  • 最大値の初期値には「配列の最初の要素」を使うのが基本です。
  • ループの中で「今の最大値より大きいか?」を比較し、 大きければ最大値を更新します。

最小値を求める

最小値の考え方

最小値は、

「配列やリストの中で、最も小さい値」

です。

考え方は最大値と同じで、

  1. 最初の要素を「仮の最小値」として変数に入れる
  2. 2番目以降の要素と比較して、より小さい値があれば更新する

という流れになります。

例:点数の最小値を求める

using System;

class Program
{
    static void Main(string[] args)
    {
        int[] scores = { 80, 90, 75, 60, 100 };

        // 最初の要素を仮の最小値として設定します
        int min = scores[0];

        // 2番目の要素から順番に比較していきます
        for (int i = 1; i < scores.Length; i++)
        {
            if (scores[i] < min)
            {
                min = scores[i]; // より小さい値が見つかったら更新
            }
        }

        Console.WriteLine($"最小値: {min}");

        Console.ReadLine();
    }
}
C#

重要ポイント:

  • 最小値の初期値も「配列の最初の要素」を使います。
  • ループの中で「今の最小値より小さいか?」を比較し、 小さければ最小値を更新します。

件数を求める

件数とは何か

件数は、

「配列やリストに何件のデータが入っているか」

を表す値です。

C# では、

  • 配列:Length
  • List<T>Count

で取得できます。

例:配列とリストの件数を表示する

using System;
using System.Collections.Generic;

class Program
{
    static void Main(string[] args)
    {
        int[] scoresArray = { 80, 90, 75, 60, 100 };
        List<int> scoresList = new List<int> { 80, 90, 75, 60, 100 };

        int arrayCount = scoresArray.Length; // 配列の件数
        int listCount = scoresList.Count;    // List の件数

        Console.WriteLine($"配列の件数: {arrayCount}");
        Console.WriteLine($"List の件数: {listCount}");

        Console.ReadLine();
    }
}
C#

重要ポイント:

  • 配列は LengthList<T>Count で件数を取得します。
  • 件数は、平均や割合を計算するときに必須の情報です。

総合例:点数データの集計レポート

合計・平均・最大値・最小値・件数をまとめて計算する

ここまでの内容をまとめて、 1つの配列に対して「集計レポート」を出力する例を示します。

using System;

class Program
{
    static void Main(string[] args)
    {
        // テストの点数データ
        int[] scores = { 80, 90, 75, 60, 100 };

        // 件数
        int count = scores.Length;

        // 合計
        int sum = 0;
        for (int i = 0; i < scores.Length; i++)
        {
            sum += scores[i];
        }

        // 平均
        double average = (double)sum / count;

        // 最大値
        int max = scores[0];
        for (int i = 1; i < scores.Length; i++)
        {
            if (scores[i] > max)
            {
                max = scores[i];
            }
        }

        // 最小値
        int min = scores[0];
        for (int i = 1; i < scores.Length; i++)
        {
            if (scores[i] < min)
            {
                min = scores[i];
            }
        }

        // 結果表示
        Console.WriteLine("=== 点数集計レポート ===");
        Console.WriteLine($"件数:   {count}");
        Console.WriteLine($"合計:   {sum}");
        Console.WriteLine($"平均:   {average}");
        Console.WriteLine($"最大値: {max}");
        Console.WriteLine($"最小値: {min}");

        Console.ReadLine();
    }
}
C#

この総合例で体験できること:

  • 合計・平均・最大値・最小値・件数を一度に計算する流れ
  • ループと変数を組み合わせた「集計ロジック」の基本形

練習テンプレート:汎用的な集計メソッド

配列を受け取って集計するメソッド

少し発展として、「集計処理をメソッドに切り出す」形も示します。

using System;

class Program
{
    static void Main(string[] args)
    {
        int[] scores = { 80, 90, 75, 60, 100 };

        PrintSummary(scores);

        Console.ReadLine();
    }

    // 配列の集計結果を表示するメソッド
    static void PrintSummary(int[] data)
    {
        int count = data.Length;

        int sum = 0;
        int max = data[0];
        int min = data[0];

        for (int i = 0; i < data.Length; i++)
        {
            int value = data[i];

            sum += value;

            if (value > max)
            {
                max = value;
            }

            if (value < min)
            {
                min = value;
            }
        }

        double average = (double)sum / count;

        Console.WriteLine("=== 集計結果 ===");
        Console.WriteLine($"件数:   {count}");
        Console.WriteLine($"合計:   {sum}");
        Console.WriteLine($"平均:   {average}");
        Console.WriteLine($"最大値: {max}");
        Console.WriteLine($"最小値: {min}");
    }
}
C#

ポイント:

  • 集計ロジックをメソッドにまとめることで、 他の配列にも簡単に使い回せるようになります。

Day 27 のまとめ

Day 27 では、

  • 合計
  • 平均
  • 最大値
  • 最小値
  • 件数

という「データ集計の基本」を、 ループと変数を使って自分の手で計算する方法として学びました。

これらは、

「データをただ眺めるだけでなく、意味のある数字に変換する」

ための第一歩です。

今後、LINQ や統計ライブラリなどを使うようになっても、 この「合計・平均・最大・最小・件数」を自分で計算できる感覚は必ず役に立ちます。

ぜひ、

  • 売上データの配列を作って集計してみる
  • 温度やアクセス数など、実際の数値を想定して集計してみる
  • 複数の配列を比較して「どのクラスが平均点が高いか」などを考えてみる

といった練習を通して、 データ集計を「ただの計算」ではなく「情報を読み解くための武器」として 使いこなせるようになっていってください。

タイトルとURLをコピーしました