- 本日の作業内容
- 小テストについて
授業の最初に配列に関する小テストを実施します.いつものように柱のところの席は使用しないで下さい.
- 宿題の結果について
残念ながらまたもや採点対象外の答案が出てきました.注意してください.
解答用紙不使用 b1477
無限ループ b1437
次に示すのは原点まではしていませんが,本来はあまり書かないやりかたです.変数 j の値で while ループを回していますが,まず最初にやる作業が j++ では何のために初期値をその前で設定するのかがわかりませんね.通常はループの最後に増分等の記述をします.
while(j<=19){
j++;
if(j-0.5<=20*sin(rad) && 20*sin(rad)<=j+0.5)
printf("X");
else if(j-0.5<=20*cos(rad) && 20*cos(rad)<=j+0.5)
printf("0");
else
printf(" ");
}
|
インデントの不良はかなり減りましたが,依然としてまだ残っています.注しましょう.
インデントの不備: b1509 b1513 b1547 b1570 b1576 b1417 b1458 b1020 b1294
解答用紙に名前の無いもの: b1539
解答用紙や実行結果に学生番号の無いもの: b1539 program1 b1428
最後にハイフンラインが無いもの:program1 b1428
- 前回の復習
while 文を学習しました.実習では式の部分の理解がまだ不十分な人が見られました.式が真の時には処理を実行しますが,偽になるとループから抜けるという動作をよく理解しておいて下さい.
i = 1;
while(i>10){
printf("%d ", i);
i++;
}
|
上の例は変数 i の値が10になったら処理を止めるというつもりで,間違えたものです.初心者によく見られるミスの一つです.この場合,変数 i に初期値の1を代入しているので,while の後の式は偽になりますので,処理は実行されません.
- 1次元配列
この授業の最後の難関である配列です.これが使えないと実際のプログラミング
では困ります.複数の値を一つの名前で保存できる便利な機能ですので,
必ず使えるようになってください.
例えば,1日の気温を1時間ごとに自動で測定するシステムがあるとします.午前0
時から午後11時まで24個の温度を,
temp0, temp1, temp2, .... , temp23
のようにたくさんの変数を使用して記憶しておくことは無駄ですし,後から使う
ときにやりにくい面が多いことになります.そこで,配列 temp として
1時間ごとの温度を
temp[0], temp[1], temp[2], ... , temp[23]
のようにしておくと,変数名としては1つの temp だけで済みますし,
時間を添字として利用することで読み出しが簡単になります.
今日からのポイントは値が何番目に入っているかを示す「添字」の使い方です.この添字を
for 文などと組み合わせて自動的に処理する方法を理解しましょ
う.
例えば,配列の要素の初期値を全部0にしたい場合などはよくあるのですが,以下のように簡単に出来ます.
int i, ary[100];
for(i=0; i<=99; i++)
ary[i] = 0;
|
配列では先頭の要素の添字は0です.これは便利な取り決めなのですが,いつまで経ってもわからない人がいますので,困ります.よく理解しておいてください.すなわち,要素が10個ある配列の各要素の添字は0から9までの10個です.
また,教科書ではp.59ようやく出てくるのですが,int 型の配列を定義するには以下のようにすれば簡単にできます.重要なので,これだけはまず理解しておいてください.
int ary[5] = {1, 2, 3, 4, 5};
|
- 実習
実習の演習問題はこちらです.
- 次回の予習範囲
教科書のp.59-65を予習してきてください.
- 宿題
授業の最後に宿題の案内をします.
- 今週のメンター学習室について
今週は23日から冬休みとなりますが,宿題の提出日が1/4と新年早々になっており,宿題を行なう時間も限られていることから,休み中ではありますが24日(木)の14:30-16:00に720教室でメンター学習室を実施します.