わさっきhb

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

そんなにも学生が集中するとは

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

次の表の中で,不適切な箇所を見つけて訂正しなさい.

関数名 ヘッダファイル名 仕様
exp math.h 期待値を返す
abs math.h 整数値の絶対値を返す
strcpr string.h 2つの文字列を比較する
isupper ctype.h 英大文字なら真を返す
system stdlib.h 関数を実行する

さっそくですが解答です.

関数名 ヘッダファイル名 仕様
exp math.h eの累乗を返す
abs stdlib.h 整数値の絶対値を返す
strcmp string.h 2つの文字列を比較する
isupper ctype.h 英大文字なら真を返す
system stdlib.h コマンドを実行する

今週月曜日の授業です.テーマは関数の3回目,ライブラリ関数です.喉の調子が良くなく,マグボトルを持参し,「ときどきこれげほっ,飲みながらしゃべりぐ…がはっっ,ごめんなさいしますんで」と言ったものでした.
授業開始30分後と60分後の余談も手応えがなく,あと5分ということでスクリーンに出した小テストです.「不適切な箇所は,一つではありませんよ」と言いました.そうして待っていると,学生の目の色が違っているのに気づきました.和気藹々としたムードはなく,教科書を読みながら,真剣に取り組んでいるのでした.
そう,この問題,それぞれのライブラリ関数を調べれば,答えはすべて分かるのでした.strcprは調べても出てきませんが,授業中に,strcmpを自作したらどうなるかとして,時間をとって解説しました.
もちろん解答の書き方はいろいろあって,expのところでeの前に「自然対数の底」を添える答案もあれば,systemの仕様に「cmndで指定したコマンドを実行する」と答えた学生も何人かいました.これらは教科書からどれだけ引き写せばよいかということです.ちなみに上記の「eの累乗」も,教科書からであり,ある学生は「e^x」と書いていました.
ここで脱線を.関数の仕様を簡潔に記すときは,「コマンドを実行する」や「絶対値を返す」のように,引数を言及しないようにします.もう少し,字数を使っていいのなら,引数について説明し,あとは戻り値*1です.エラー時の挙動や,類似した名称・機能を持つ関数との違いも,書けるのなら書きたいところです.
授業終了時の小テストに話を戻しますが,問題作成時に,これには学生はあまり,力を入れないだろうと思っていました.しかし,予想をはるかに超える集中力でした.
理由ですが,「教科書で探せば答えられる」ということで,頑張ってみようと思ったのでしょう.もちろん,5分でこの内容という,時間やボリューム面での手頃さも,無視するわけにはいきません.
しかし今後も同じというのでは,すぐにマンネリになります.
今年どこかの本で,授業は生ものだという指摘を見ました.自分にとって小テストは,その熱さ冷たさが最も如実に出るものと,言えそうです.

*1:isupperをはじめisから始まるctype.hのライブラリ関数は,戻り値は「真」の値であり,1であるとは限りません.「非0」も同じ意味です.