Top / Graphics / 2016 / ex02

グラフィックス基礎及び実習 2016年度 実習第2回 [edit]

実習のすすめ方 [edit]

Graphics/2016/ex00 を参照してください.

課題A(self) 完成目標: 今回の実習終了時 [edit]

この課題の解答は講義時に配布した用紙に記入しましょう.

以下の手順に従って教科書p.15の練習問題2.2をやりなさい.

  1. 講義時に配布された用紙に T21.java の内容を書く. 前回の課題で T21.java には改造を加えましたが,その改造版を元にすればよいです
  2. 教科書の指示に従って T21.java を修正するにはどこをどのように修正すべきか書き込む. 消しゴムで消して書き直すのではなく,修正の仕方がわかるようにしてください(教科書では,新しいソースファイル名を P21.java とするように指示されています.ということはクラス名も…).
  3. このソース中のインスタンス生成式の部分に,わかるように印をつけなさい(紙に書いたソースに).
  4. 次の文の「ほげ」「ふが」に入る正しいものを紙に書きなさい.

    このソース中で addMesh() メソッドは,「ほげ」クラスの「ふが」という変数が表すインスタンスに作用している」

  5. 紙に書いたプログラムに基づいて,前回作った turtle ディレクトリの中にソースファイルを作ろう(前回の課題Bと同様に,TurtleクラスとTurtleFrameクラスを用いるので,これらのクラスファイルと同じ場所に作成するのが簡単だからです). ということは,cpコマンドを使って T21.java をコピーして P21.java を作り,それを emacs で編集するとよいですね. ただし,紙に書いた全ての修正を一度に加えるのではなく,「ソースを少し修正」→「コンパイル&実行して動作確認」という操作を繰り返しながら完成させていくこと. 「一度に全部の修正を加える → コンパイルしたらエラーメッセージだらけでわけがわからなくなる」ということを避けるためです.

上記 3. および 4. の答えを確認してほしい人は,紙を高橋に見せてください.

ファイルのコピーの仕方その他の操作について忘れた人は,次のページを参照しなさい: Docs/4UNIXBeginners

課題B(self) 完成目標: 今回の実習終了時 [edit]

教科書p.18の練習問題2.3をやりなさい. ただし,以下の指示に従うこと.

  • ソースファイルの置き場所等は課題Aと同様に考えること.
  • T22.javaを作ってから,それをもとにして P22.java を作ること.
  • 以下のGraphics20XY の XY のところは,実際には2桁の数字です

check

  1. ソースファイルを作った場所は,以下のどこか
    1. Graphics20XY ディレクトリの中のホームディレクトリの中の turtle ディレクトリの中
    2. Graphics20XY ディレクトリの中のturtle ディレクトリの中のホームディレクトリの中
    3. Graphics20XY ディレクトリの中のホームディレクトリの中
    4. ホームディレクトリの中の Graphics20XY ディレクトリの中の turtle ディレクトリの中
    5. ホームディレクトリの中の turtle ディレクトリの中の Graphics20XY ディレクトリの中
    6. ホームディレクトリの中の Graphics20XY ディレクトリの中
  2. f, m および m1 という変数は,それぞれ何というクラスのインスタンスを表すか
  3. 変数 m が表すインスタンスに作用するインスタンスメソッドを呼び出しているのはソース中のどの部分か
  4. ソース中の m1.moveTo(m); という行を m.moveTo(m1); に変更すると実行結果はどのように変化するか. まずは頭で考えて結果を予想し,それから実際に修正して実行してみよう.

課題C(TA) 締切: 次回実習開始直後 [edit]

教科書p.18の練習問題2.4をやりなさい. ただし,以下の指示に従うこと.

  • ソースファイルの置き場所等は課題Aと同様に考えること.
  • ソース中のどこが家のどの部分を描いているのかがわかるように,たくさんコメントをつけること.
  • 教科書の例に一手間加えて,屋根の上に煙突を生やそう. 屋根の長さは元の問題と同じ 2d として,煙突は,その右端から d/4 の位置から幅 d/4 ,高さ d/2 で延ばすこと. 図で示そうしたけど面倒くさいので途中でやめま…じゃなくて,文章で書かれた説明を読解してプログラムを書いて欲しいのでわざとこういう出題にしました

check

  1. 次のような指示に対して,変数 x, y, d, a の値を変えるだけでちゃんと対応できるプログラムになっているか?
    1. もっと大きな家にして
    2. 家全体の位置をもっと左下に寄せて
    3. 屋根の傾きをもっと急に/緩やかにして

課題S(おまけ) [edit]

下図のような結果が得られるプログラムを作りなさい.

  • ソースファイル名は G02Star.java とすること.
  • 下図が示すように,最低限大小2つの☆を描くこと. その際には,☆の大きさに対応した変数を用意して,次のような構成にしよう.2カ所の「☆を描く」は全く同じソースになるように.
    1. その変数に小さめの値を代入
    2. ☆を描く
    3. 移動
    4. その変数に大きめの値を代入
    5. ☆を描く
  • 課題の条件ではありませんが,繰り返しを使って簡潔なソースにしたり,☆をもっと複雑な形にしたりといったオリジナルの工夫も歓迎します.
G02Star.png

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-04-26 (火) 21:09:18 (570d)