物体の干渉

前回は,フィールドの下(別の場所)に物体を並べていました.
では,このサンプルプログラムをrobolib.aを使ってコンパイル・実行してください.

これは,物体を半径の小さい順で中央 (y = 0.0) に横並びにするためのプログラムです.
しかし,物体を移動させる先に,すでに別の物体がある場合,物体を解放することができません.

練習

7個全ての物体を下 (y = -0.7) に退避させてから,中央 (y = 0.0) に半径の小さい順に物体を横並びにするプログラムを作成してください.
この作業の完了までにかかった時間を表示してください.

課題

基本課題

練習プログラムを改良して,7個の物体を中央 (y = 0.0) に半径の小さい順に物体をなるべく早く整列できるプログラムを作成してください.
改良した課題プログラムでの作業時間と練習プログラムでの作業時間とを比較し,改良プログラムでどれだけ作業を高速化できたかを定量的に示してください.
物体の位置は毎回ランダムに決まるので,10回程度実行した結果の平均値で比較しましょう.

発展課題

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

注意

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

提出物

提出物一式を入れるフォルダの名前は学生番号にしてください(ログインIDではない!).

  • 基本課題:プログラムファイル
  • 基本課題:高速化のアイデアを書いたテキストファイル
  • 基本課題:作業時間を比較したエクセルファイルなど(形式は自由)
  • 発展課題:プログラムファイル
  • PBLの授業の感想を書いたテキストファイル(来年度の授業のために,忌憚のない率直な意見をお願いします.批判的な内容であっても減点は一切しません.)

上記のファイルを入れたフォルダをzipファイルに圧縮してください.

提出期限

二週間後までに上記のzipファイルをCLEで提出してください.

  • 1・2組:2/8
  • 3・4組:2/11

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-11-27 (火) 14:05:16 (14d)