こんにちは､ お帰りなさい｡
また新たな挑戦､ 課題を提供したいと思います｡
この課題では多次元配列を扱います｡ 2次元配列を中心に､
理解しておくべきことなので､ もう少し慣れてください｡
そこで､ このチャレンジでは､ 2次元配列を使ったcプログラムと､
天気予報のプログラムを作っていただきます｡
このプログラムでは､ 各年の総雨量､ 年平均雨量､
各月の平均雨量を求めます｡
その3つが出力されるわけです｡
入力は､ 過去5年間の降雨量をハードコードした2次元配列になる｡
つまり､ 5行12列の2次元配列を作ればいいということです｡
行は過去5年間､ 列は月単位で表示されます｡
では､ 各年の1月2月3月4月にどれくらいの雨が降ったのでしょうか｡
また､ 雨量は浮動小数点数であることが望ましい｡
なぜなら､ あなたはよく7を知ることができるからです｡ 1ヶ月の雨のために8インチ､ 彼らは浮動小数点にする必要があります｡
この2次元の配列を作るときは､ 必ずfloatにします｡
プログラムの出力は次のようになります｡
ここではある種のフォーマットをしただけですが､ 最初に出力として表示すべきは､
2次元配列の中にあるものすべてです｡
2次元配列を通過して､ その配列の年を表示する単純なループが必要です｡
年は､ 最初の行､ 2番目の行､ 3番目の行のいずれであっても､
単に整数を作成するだけです｡
それをインクリメントして､ 雨量は全月分の雨量になるんです｡
だから､ どんどん追加していくしかない｡
まず最初に行うべきことは､ forループとinner
forループを用意して､ 各年の総雨量を計算し､ それをプリントアウトするループを用意することです｡
さらに､ 最初のループ､ または実際には2番目のループを作成して､
各年のすべての月を通過して月平均を計算する内部ループを作成する必要があります｡
ですから､ 繰り返しになりますが､ このプログラムの設計で想定しているのは2D配列の浮動小数点数ですが､
すべてハードコードされたデータで初期化する必要がありますね｡
最初のループを通過して､ 1年分の合計を計算することになります｡
そして､ 合計を年数（5）で割ればよいので､
年平均を出すのは簡単です｡
だから､ 年間平均は､ ループで計算する必要はないんです｡
ただし､ ループ内の各年の総雨量は計算する必要があります｡
そうすると､ ループしてしまうんです｡
次元の配列はすべてインナーループが必要で､
2次元はインナーループが1つだからです｡
つまり､ 外側ループと内側ループ､ ネストされたループとでも言うべきでしょうか｡
そして､ 最初のアレイを通過するのです｡
年号から始めるので､ 私のコツを説明しますと､ これはコツの中に書いたと思います｡
でも､ これは出力だから､ 好きなようにフォーマットできる｡
しかし､ 私がここで再び目にしたのは､ 年間降雨量､ 年間平均､ そして月間平均です｡
そこで､ まず､ ハードコードされた雨量月で2次元配列を初期化したいと思います｡
配列を初期化する方法は知っています｡
2次元配列の場合､ 行を初期化することができます｡
そのため､ 括弧の中に各行を表す括弧があり､ 各行は12列なので､
12個の値､ 12個の浮動小数点値を持つことになります｡
そして､ それぞれの行をカンマで区切って､ 新しい括弧を作るだけです､
その方法は知っているはずです｡
それから､ 2次元配列の反復処理を行うには､ ネストされたループ､ 基本的には1つのインナーループを持つ必要があることを再度確認しておきます｡
3次元配列だったら､ 内部ループを2つ用意する必要がありますね｡
このソリューションの鍵は､ 2次元配列を視覚化し､ ネストされたループを介して1つの配列を反復処理する方法を理解することです｡
ネストされた配列や2次元配列の反復処理の方法を知っていれば､
問題ないでしょう｡
ループの最初のセットである外側のループは､ 内側のループの年ごとに反復するか､
月ごとに反復し､ すべての年の総雨量を取得するための実行中の合計を保持することができます｡
ですから､ 最初の目標は､ すべての年の総雨量だけを得ることです｡
また､ 総雨量が得られるので､ 年間総雨量もプリントアウトすればいいのです｡
そして､ そのループを抜けた後､ 年平均をプリントアウトすることができるのです｡
それから､ 月平均を表示するために別のループが必要になります｡
また､ 月平均を表示するために､ 各月ごとに外側のループがあり､ 内側のリップは各年を貫通しています｡
これで月平均がわかると思います｡
だから､ 年単位のものはその最初のループに､ 月単位のものは2番目のループに入れることができる｡
だから､ 月平均の降雨量を求めるようにと書いてあるはずです｡
ここでは､ 配列の初期化について学び､
2次元配列の反復処理について理解することができます｡
がんばってください！次回の講義で解決策を提示します｡ ありがとうございます｡