わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

3次元配列をつくろう

いきなりですが問題です.

  • Cの2次元配列に格納するとよいデータの例を挙げてください.
  • Cの3次元配列に格納するとよいデータの例を挙げてください.

さっそくですが解答です.担当科目(1年後期のプログラミング科目)では例年,「野球のスコア」を例にとり,多次元配列を解説しています.
1試合の1チームの1つの回の得点は,整数値です.
1試合の1チームの各回の得点は,整数の配列です.
そして1試合の両チームの各回の得点は,配列の配列,ということで2次元配列です.
それから,ペナントレース各試合の両チームの各回の得点は,配列の配列の配列で,3次元配列に格納できます.
各年度のペナントレース全試合の両チームの各回の得点となると,4次元配列です.「各国の」とすれば,5次元配列ですね.
授業で配列を扱う前に,予習課題として,配列の定義のほか,冒頭の問題にも答えるよう指示しました.野球のスコアと同様なのが,読んで容易に分かった,3次元配列の答案は,「学校の各学年の各クラスの各科目のテストの平均点」です.この場合,科目は"国語","数学"といった文字列ではなく,対象科目を番号に割り振るといいでしょう.
数十人の答案を1つのテキストファイルにして,先頭から読んでいき,ある答案で,スクロールアップする手が止まりました.「氏名と身長と体重」と書いてあったのです.
これは2つの理由で,おかしいです.まず配列は,1次元でも多次元でも,各要素に格納される値は同一の型です.しかし氏名と,身長・体重を,同じにするわけにいきません.
もう一つの理由は,野球のスコアの3次元配列では「試合(の通し番号)」「チーム(例えば先攻なら0,後攻なら1)」「回」という3つの数値を用いて,そのときの得点を格納したり参照したりできます.「各学年の各クラスの各科目の平均点」も同様です.しかし「氏名と身長と体重」は,それぞれを指定したとして,どんな値が得られるのでしょうか.
ほかに「日付と気温と湿度」という答案もありました.これも減点対象です.「年月日ごとの温度」は,マルにしました.