- 本日の作業内容
- 確認テスト
授業の後半で確認テストを実施します.窓側の席は柱の部分を避けて座って準備してください.
- 宿題の結果について
今回は残念ながらコンパイルエラーが出ました.行末のセミコロン抜けのようです.注意しましょう.提出前には自分でコンパイル確認を忘れずに.
コンパイルエラー: b1827
解答用紙の書式不備や解答出力の不備もいろいろ出ました.こちらも注意してください.
解答用紙に名前と番号なし: b1824 b1837
出力時学生番号なし: b1832
インデントの不備: b1806 b1818
以下はいつものように気になるプログラムの例です.参考にしてください.
int ary[5][5],i,j,max=0;
....
printf("| %3d\n",max);
max = 0;
}
|
最初の宣言で変数 max の値の初期化を行って, for 文の中でのリセットを最後に行う,という形式は間違ってはいませんが,少し気持ち悪いです.作業を開始するときに0を代入する方が落ち着きます.
int i,j,max,h1[5][5],h2[1][5];
........
printf("%3d ",h2[1][j]);
|
要素の次元が[1][5]では2次元配列にする意味が無いですね.しかも,後半では存在しない1番めを表示させようとしていますし.
int i, j, ary[5][5], xmax[5], ymax[5];
|
最大値をわざわざ配列に格納する必要は今回の宿題ではありませんでした.
for(j=0;j<=1;j++)
{
if(j==0)
{
printf(" |");
}
else
{
printf("%4d",max);
}
}
printf("\n");
|
この程度なら場合分けしないで1つの printf で処理すれば良いと思います.
- 前回の復習
2次元の配列を使用するとマトリックス的にデータが保存できることと,相互に関連付けたい値をセットで記録したり変更したりできることを学習しました.今回も引き続き2次元以上の配列についてです.
- 2次元配列と多次元配列
マトリックス的なものでは無い多次元配列の使い方としては,以前に説明し
た温度測定の場合でもあります.1次元の配列だと,1日の温度のデータが格納で
きるだけですが,次元を上げていくと次のようにも使えます.
次元 | 例 | 補足 |
2 |
temp[24][0] temp[25][14] |
24日午前0時の気温 25日午後2時の気温 |
3 |
temp[6][24][0] temp[7][1][15] |
6月24日午前0時の気温 7月1日午後3時の気温 |
4 |
temp[18][7][1][16] temp[19][6][24][0] |
2018年7月1日午後4時の気温 2019年6月24日午前0時の気温 |
このように添字を使用すれば,後から値を読み出すときに変数を使用して簡単に
出来ます.
year = 19;
month = 6;
date = 24;
hour = 0;
printf("%d\n", temp[year][month][date][hour]);
|
- 実習
実習の演習問題(予習用)はこちらです.
- 次回の予習範囲
次回は2次元の文字配列について学習します.教科書のp.125-126を予習しておいてください.
- 宿題
授業の終わりに宿題の案内をします.ただし,問題を見ることができるのは2日10時以降です.レポート提出システムから閲覧してください.