*物体の干渉 [#c5655074]
前回は,フィールドの端に物体を並べていました.また,物体の数も少なかったため,物体が干渉することはありませんでした.
~
では,この[[サンプルプログラム>http://www.er.ams.eng.osaka-u.ac.jp/kawai/CP2016/main4.c]]を実行してください.
~
多数の物体を中央に,半径の小さい順で横並びにするプログラムです.
~
しかし,物体を移動させる先に,すでに別の物体がある場合,物体を解放することができません.

*練習 [#l74a2480]
15個全ての物体を下端 (y = -0.8) に退避させてから,中央 (y = 0.0) に半径の小さい順に物体を横並びにするプログラムを作成してください.
~
アームの移動が右端 (x = 0.8) を超える場合,折り返しましょう.
~
この作業の完了までにかかった時間を表示してください.

**ヒント [#i3ddeee0]
経過時間[s]を返す関数は
 double get_system_time_in_sec()
です.

* 課題 [#n6351693]
練習プログラムを改良して,できるだけ早く作業を終了できるようにしてください.
~
練習での作業時間と比較し,改良プログラムでどれだけ作業を高速化できたかを示してください.
~
(実行ごとに物体位置はランダムに変化しますので,それぞれのプログラムを10回程度実行した結果の平均で議論しましょう)

適宜コメントを入れたり,関数化したりして,他人にもわかりやすいプログラムになるように心がけてください.全くコメントのないものは減点します.
~
他人のプログラムを写したことが判明した場合は,両者とも0点になります.課題内容に対応していないプログラムにも点をつけません.

**発展課題 [#s50808fe]
中央(y=0.0)に,重量の小さい順に物体を横並びにするプログラムを作成してください.
~
できるだけ高速な整列を目指しましょう.

** 提出物 [#k17aaedc]
提出物一式を入れるフォルダの名前は学生番号にしてください(ログインIDではない!).
- 課題プログラムファイル
- 高速化のアイデアを書いたテキストファイル
- 作業時間を比較したエクセルファイルなど(形式は自由)
- 発展課題プログラムファイル(発展課題)
- PBLの授業の感想を書いたテキストファイル(来年度の授業のために,忌憚のない率直な意見をお願いします.批判的な内容であっても減点は一切しません.)

** 提出期限 [#lc267e66]
二週間後までに上記のフォルダをzipに圧縮したものをCLEで提出してください.

- 1・2組:2/9
- 3・4組:2/5

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS