プログラミング第10回 配列変数

 前回の問題の解答

まずは第1問の解答です。


プログラムの大まかな流れは第8回の問題で作っていると思いますので、関数の定義を使って少し修正してやればOKですね。

次は第2問の解答です。


これは最初に持ち点があり、持ち点から点数を賭けていくバージョンです。内容自体は今までにやったものの復習です。


これは勝てば点数がプラス、負ければマイナスになるバージョンです。


これは連続して勝った回数が点数になるバージョンです。

プログラミングも数学も人の答えを真似るのではなく自分なりにアレンジしていきましょう。ただ真似るだけでは「理解」できたとは言えません。

今回学ぶこと

・ 配列変数とは

・ 配列変数の要素の合計・平均

・ 関数「平方根」

 配列変数とは

まず、「配列変数(リスト)」とは何かを説明します。

 例えば、「クラス全員の数学の点数」のような複数のデータを扱う際に、データごとに変数を用意していたら大変なことになってしまいます。

 そこで、複数のデータを1つの変数として扱ってしまおうというのが配列変数(リスト)です。具体的に見てみましょう。


変数名=[…,…,…,…] という形で入力します。
[   ]の中のデータを要素といいます。

各要素は「,(カンマ)」で区切り、一番左の要素が0番目の要素となります。一番左が1番目ではない点に注意してください。

この例では変数名を「数学の点数」としたいところですが、変数名には助詞を入れることはできない(第3回参照)ので、「の」を入れてはいけません。

変数名[要素番号]を表示」と入力することにより、各要素を表示することができます。

 各要素は変更したり、修正したりもできます。

 配列変数の要素の合計・平均

 クラス(10人しかいませんが…)の数学の点数となれば平均点を求めたくなるのが世の常です。
配列変数と繰り返しの制御構文を使えば、平均点も簡単に求めることができます。

 まずは、10人の数学の点数の合計点を計算してみます。


繰り返しの制御構文は第6回でやりましたね。

最後の「ここまで」を「数学点数合計を表示」の上に入力すると途中経過は表示されず、最終的な合計の「636」だけが表示されます。これも第6回で学習済みですね。

では、平均点を求めてみましょう。


先ほどの合計を10で割るだけですね。簡単ですね。

ただ、この方法だと要素の個数(この例でいうと10)を人間(プログラムを作る人)が数えないといけませんね。
数が多くなるとちょっと面倒ですね。要素の個数も自動で判定してくれるようにプログラムしたいですよね。

配列変数の要素の数を判定してくれる関数があります。


(変数名)の要素数」という関数を使えば要素の数を求めることができます。

これを使って平均点を計算してみましょう。


面倒なので「数学」という単語は省略しました。

「点数の要素数」という関数の結果(戻り値)を「生徒数」という変数に代入してやれば、この値を使って式を作ることができます。

変数に代入せずに「点数の要素数」という関数の結果(戻り値)のままでは使うことができません。

第9回でやった「関数の定義」を用いてもいいですね。


プログラムが長くなればなるほど、関数の定義を使ってまとめた方が後で見たときに見やすくなります。

 関数「平方根」

最後に、偏差値などを求める際に必要になる「平方根の計算」を説明します。
やり方は至って簡単で、「平方根」という関数を使うだけです。

それでは今回の課題です。問題2は高校の数学Ⅰ「データの分析」を学習した後にチャレンジしてください。

問題1

高松市の2022年の各月の平均気温は次の通りである。

配列変数を用いて、2022年の年間の平均気温を求めよ。

ただし、平均気温は四捨五入して小数第1位までの値で答えてください。四捨五入のやり方は第2回でやりましたね。

問題2

今回の例で使った10人の数学のテストの標準偏差を小数第2位までの値で求めてください。

分散・標準偏差は数学Ⅰの重要公式ですね。できれば第9回でやった「関数の定義」も使ってみましょう。