【第二週課題】 構造体とポインタを用いたプログラミング
計算機序論2, 
www.kameda-lab.org 
2006/09/26
  
資料
  
  
第二週課題
  
    
    この授業で用いるサンプルプログラム(1)は
    残念ながら、そのままコンパイルしても何も表示されないが、
    あとちょっと書き加えれば動くはずである。
    今週の課題は、このサンプルプログラム(1)を完成させることと、
    それに関連する記述課題を行うことである。
    
今週のレポート課題は、以下の【必須】全項目について報告することとする。
    
      - 【必須】サンプルプログラム(week2-1)の完成
        
          - load_LINE(), attach_new_FIGURE()の
	  動作の理解ができていることを示す自分なりのコメントを付加すること。
	  (ソースコードは全てつけなくともよい。)
	  
- フローチャートが付いていれば、ボーナス点を加算。
        
 
       
- 【必須】サンプルプログラム(week2-1)実行用データの製作
	
          - 自分なりのデータファイルを用意する。
	  もとのサンプルプログラム中では,"week2-fig-data.dat" という
	  ファイル名になっている。
	  
- プログラムを完成させ,思った通りの動作になるようにする。
	  図形が順番にかわっていけばOK。
        
 
       
- 【必須】サンプルプログラム(week2-1)に関する問題
           【2006/09/26修正(新しいヘッダファイルは1つだけです)】
        
          - サンプルプログラム(week2-1)では
	  新しくunistd.hというヘッダファイルが導入されている。
	  それぞれ何の関数のために導入されたか述べよ。
	  またどのようにしてそれを調べたかについても述べよ。
	  
- サンプルプログラム(week2-1)では
	  はじめのところで関数のプロトタイプ宣言をfree_LINE()関数について
	  行っている。なぜこの関数だけプロトタイプ宣言が必要かを述べよ。
        
 
       
- 【必須】スライド「プログラムソースA」では、calloc()関数の
      利用に関して実行時エラー処理が適切に行われていない。その内容と、
      対策について述べよ。
      
       
- 【発展】発展課題用の サンプルプログラム(week2-2)は、サンプルプログラム(week2-1)と異なり、
      描画命令シーケンスの実行であっても随時キー操作による指示が可能である。
      このプログラムを完成させ、さらに自由に改良してみよう。
	
	  - ソースそのままでは描画できないので、
	  まずサンプルプログラム(1)同様に完成させること。
	  
- 特定のキーを押すと描画を一時停止・再生してくれることを確認する。
	  
- プログラム構造の説明をする。
	  特に、glutIdleFunc()関数や、kj_display()関数、変数Pausingについて
	  説明すること。
	  
- ソースプログラム・実行用データのいずれかないし両方に変更を加え、
	  いろんなプログラムを作ってみよう(スロットマシンなども可能)。
        
 
Yoshinari Kameda