情報科学演習
2011.11.28
提出自体の不備は減ってはいるもののなかなか無くなりません.提出時にはしっ
かり件名や添付ファイル名を確認するようにしてください.
今回の宿題は力作が多く見られました.処理が長くなるので混乱してしまいがち
ですが,思っていたよりも処理の間違いは少なかったように思えます.ただ,発
生させる乱数を間違えているもの,午前午後の表記の無いもの,午後の時間は表
示でき無いものなどが見られました.
論理演算子の使用を学習したところ,やたらと使いたがるようすが宿題の解答で
みられました.あまり処理を複雑にしないように,シンプルに考えてプログラミ
ングを行いましょう.
for 文は教科書p.39の図4.2の下にあるような形式で使用します.式1
から式3までは初期値,終了条件,増分を表します.これらは必要に応
じて処理のために使用するので,必ずしも書かなくてはいけないもので
はありません.ここが空欄であれば,教科書p.40にあるような無限ルー
プになります.
最初のころの授業でもおしらせしたように,今後万一無限ループを作ってしまっ
てプログラムが終わらない場合には,「コントロールキーとCのキー」を同時に押し
て処理を停止してください.Ctrl+Cと覚えておいてください.
for 文の式1から式3までの設定では変数 i がよく使用され
ます.これは整数(Integer)の頭文字を取ったものです.for
文ではこのように i を使用しますので,他の場所で i
を使用する場合には注意が必要です.ただし,複数の for
文が一つのプログラム中にあってもこの変数(仮変数)は i
のままで構いません.
教科書p.38で紹介されている複合演算子は非常に重要です.以後,頻繁に使用さ
れる予定です.変数の値を変更する際に利用されますので,よく理解しておいて
ください.本日の実習でも使用します.また,略号の方がよく使用されますので,
そちらも注意してください.
変数自身の値を変えることが出来るので,教科書の和の例のように積算を取るこ
とが可能です.また,前回の実習課題のすごろくのコマの位置のように,さいこ
ろが振られるたびに進むようなときにも使えます.
前回の宿題のように秒数から分,時間などへと換算していくときに,/=
や %= などを使用して変数をたくさん増やさないで変換を
進めることが可能です.すなわち,変数の初期値を保持しなくても良いよ
うな処理のときに威力を発揮します.
教科書のp.39に出てくるインクリメント演算子(とデクリメント演算子)も非常に
重要です.変数の値を1増やす,もしくは,1減らすという処理ですので,こちら
も頻繁に使用します.
応用例としては「カウンタ」があります.例えば,さいころを複数回振る作業で,
1の目が何回出てきたかを数えるような処理のときに変数の値を1ずつ増やせるこ
の演算子は効果的です.
教科書では無限ループから抜け出すのに,if 文と break の
組合せの例が出ていますが,この授業では基本的に break は使用しま
せん.教科書p.39の for 文の説明にある「式2」を工夫することによっ
て,面白い for 文の抜け出し方が実現できますので,それを練習する
ことにします.
実習の演習問題は当日ご案内します.
教科書のp.48の例題4.8を予習してきてください.ただし,4行目でインクルード
されている conio.h というヘッダファイルは教室の環境には無いので
使えません.これは10行目の clrscr() (クリアスクリーン)を使うた
めのものなので,この行を削除すれば conio.h をインクルードしなく
ても大丈夫です.
授業の終わりに宿題の案内をします.ただ
し,問題を見ることができるのは29日以降です.
教科書に出ているCtrl+ZはWindowsにおける強制終了です.
次回以降で扱う多重のループの場合には変数は使い分ける必要があります.その
際にはアルファベットの順番で i, j, k, l, m, ... などがよく使用
されます。
目次ページに戻る