わさっきhb

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

プログラミング実演

昨日はプログラミングの授業で,1限は補講,2限は通常講義でした.
連続受講おつかれさまでした.
暖房を入れるのを忘れていました,すみません*1
さてその内容ですが,補講では,ISBN-13のチェックデジット*2を求めるプログラムを取り上げました.この例を通じて,制御文,演算子,配列・ポインタ・文字列の扱いを理解してもらおうというものです.
昨年度までは,プログラムの完成版を配布資料として見せ,それを読み解いていましたが,今年は,Emacsでファイルを新規に開き,そこにCのコードを書いていきながらプログラムを完成させ,解説していきました.
要点としては,

  • 資料には「求め方」と「例」を書き,答え(プログラムの出力)が合っているか確認できるようにする.
  • pritnfデバッグを用いて,途中経過を確認する.
  • 基本仕様を満たすプログラムを作って,完成したら,機能を拡張していく.その都度,ファイル名を変更して,旧いソースも残す.
  • 授業の前に2度,プログラムを作る練習をしておく.

無事に,予定していた内容を実施することができました.ポインタ変数でアクセスする(「ポインタ変数++;」で一つずつ読み進める)コードが書けなかったのが心残りですが,かわりに,関数定義の例を書いて,文字列といってもポインタで受け渡しすることを強調しました.
2限の途中に,配布資料の中にある,再帰呼び出しをする数行で書かれた関数を,再帰呼び出しなしで書くという課題を出しました.
5分考えてもらって,答えあわせとして関数をタイプしていき,コンパイル,実行…無限ループになりました.あわててCtrl-Cで止め,1行追加して,正しく動くようになりました.
事前準備の大事さを再確認させられる授業でした.