*物体の干渉 [#c5655074]
前回は,フィールドの端に物体を並べていました.また,物体の数も少なかったため,物体が干渉することはありませんでした.

では,この[[サンプルプログラム>]]を実行してください.

多数の物体を中央に,半径の小さい順で横並びにするプログラムです.

しかし,物体を移動させる先に,すでに物体があるため,物体を解放することができません.
しかし,物体を移動させる先に,すでに物体がある場合,物体を解放することができません.

*練習 [#l74a2480]
15個の物体を下端 (y = -0.8) に退避させてから,中央 (y=0.0) に半径の小さい順に物体を横並びにするプログラムを作成してください.

アームの移動が右端 (x = 0.8) を超える場合,折り返しましょう.

この課題でかかった時間を表示してください.

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

* 課題 [#n6351693]
練習でのプログラムをできるだけ高速化してください.

練習での課題にかかった時間と比較してください.

(実行ごとに物体位置は変化しますので,それぞれのプログラムを10回程度実行した結果の平均で議論しましょう)

適宜コメントを入れたり,関数化したりして,他人にもわかりやすいプログラムになるように心がけてください.全くコメントのないものは減点します.

他人のプログラムを写したことが判明した場合は,両者とも0点になります.課題内容に対応していないプログラムにも点をつけません.

**発展課題 [#s50808fe]
中央(y=0.0)に,重量の小さい順に物体を横並びにするプログラムを作成してください.

できるだけ高速な整列を目指しましょう.

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

** 提出期限 [#lc267e66]
二週間後までにCLEで提出してください.

前回までの未提出課題も,この期限までにCLEで提出した場合は加点します.この期限を過ぎた場合は,いかなる提出物も受け取りません.

- 1・2組:2/10
- 3・4組:2/6


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