#author("2021-05-05T19:12:59+09:00","default:takataka","takataka") #author("2021-05-06T22:23:51+09:00","default:takataka","takataka") *グラフィックス基礎及び実習 2021年度 第05回 実習と宿題 [#e9701092] #contents //&color(#ff0000){''工事中''}; //**注意 [#notice] **実習課題A 締切: 当日13:35 [#kadaiA] &color(#00a000){''以下のことをやって,作ったソースファイルを moodle の該当の場所へ提出してください.''}; ファイル名の間違いに注意 第5回講義資料および授業動画に出てくる G05Fugayo.java を作りましょう. + Graphics2021チーム上に置かれた HWSample.class を自分の手元にダウンロードして,実行してみる. -- HWSample クラスは,資料で説明している HW クラスと同じ機能のクラス(クラス名だけが異なる)です. -- 実行するとこんなんなるはず > java HWSample HWSampleクラス ver.20180504 だよん + G05Fugayo.java を作り,動作確認する -- &color(red){''HW クラスのかわりに HWSample クラスを使います.したがって,資料等で HW クラスを使うことになっている箇所は,全て HWSample と読み替えましょう.''}; -- 動画中で言ってるように,「行を追加→コンパイル→実行→デバグ」を繰り返しながら進めましょう -- 「ふがよ」は自分の氏名に変えてください.身長体重はそのままで. **実習課題B 締切: 当日16:00 [#kadaiB] &color(#00a000){''以下のことをやって,作った「二つ」のソースファイルを moodle の該当の場所へ提出してください.''}; ファイル名の間違いに注意 次のことを順番にやりなさい. + HTurtle.java をコピーして HHogeTurtle.java というソースファイルを作る. + HHogeTurtle.java を修正して, HHogeTurtle クラスが [[第4回課題B>../ex04#kadaiB]] の HogeTurtle クラスを拡張したものになるようにする.polygon および house メソッドはそのままでよい. > 注: HogeTurtle は Turtle を拡張したものだった.HHogeTurtle はさらにその HogeTurtle を拡張したものとなる. Turtle は(直接は)使わずまた HogeTurtle.class は同じディレクトリに存在しているため, import tg.*; の行は不要となる. < + T51.java をコピーして G05HHT.java というソースファイルを作る. + G05HHT.java で HTurtle を使っていた箇所をすべて修正して,かわりに HHogeTurtle を使うようにする + G05HHT が T51 と同じ動作をすることを確認する. + G05HHT.java をさらに修正し,実行結果が下図の通りになるようにする(図形の大きさ等は適当に調整すること).ただし,HHogeTurtle クラスには引数ありのコンストラクタが定義されていない(詳しくは次回以降説明する).下図のような結果を得るためには,右下の方のかめインスタンスを表す変数を h として,次のように書けばよい. #pre{{ : HHogeTurtle h = new HHogeTurtle(); (フレームに載せ,やる気アップ) h.up(); h.moveTo(295, 300); h.down(); (やつを描く) : }} #ref(https://www-tlab.math.ryukoku.ac.jp/~takataka/course/Graphics/G05HHT.png,nolink) **宿題 [#hw] &color(#00a000){''次回授業までに必ずやっておくこと''}; 次回の授業の資料(PDFや動画)等は [[こちら>../../2021#ex06]] からどうぞ. + 講義資料を入手.紙でほしい方は各自で印刷してください. > キャンパス内各所に設置されたプリンタで印刷することもできます.くわしくは「ポータル > 情報環境 > マニュアル > [[印刷利用マニュアル>https://www.media.ryukoku.ac.jp/local/manual/printsystem_manual.pdf]]」参照. < + 授業動画を視聴する > 学内の実習室等に設置の PC ではスピーカから音が出ませんので,イヤフォン/ヘッドフォンを用意する必要あり < + 講義資料・授業動画に出てくるプログラムを実際に作って実行してみる **実習課題S(omake) 締切: 次回実習時間終了時 [#kadaiS] &color(#00a000){''これはおまけ課題です.やらなくても減点になりません.やったら加点かも''}; //&color(#ff0000){''工事中''}; 数理情報学科の学力認定試験の問題に挑戦してみよう. 2012年2月に行われた2011年度試験の専門Iの問題IV. *** 学力認定試験の過去問のサイトへアクセスして問題を閲覧しよう [#ze1bcf4d] 次のようにして問題を閲覧できる. +https://wiki.math.ryukoku.ac.jp/ から「学力認定試験」へ > 数理情報学科のwikiサイトのアクセス時に求められるユーザ名とパスワードは,全学統合認証のものと同じ. < + 「大学院入試問題」(←学力認定試験の過去問もこちら) へ + 「media:学力認定試験(2012.2).pdf」を開く *** プログラムを考えよう [#r41f1df6] 問(1)の「クラスメソッドbproblem() を書きなさい」とか,「Randクラスのクラスメソッドirand()…」みたいな指示になるべく沿ってソースを角煮は,↓に示すようなソースファイルを作るとよい.試験問題では,Randクラスが存在すると仮定して,そのソースは書く必要がないということだが,ここではそれもあわせて書く例にしてある. #pre{{ // クラス BProblem の定義 class BProblem { // クラスメソッド bproblem の定義 static int bproblem(int m) { : return n; } // mainメソッドの定義 public static void main(String[] args) { ここでクラスメソッド bproblem を呼ぶには n = bproblem(10) または n = BProblem.bproblem(10) のように書けばよい } } // クラス Rand の定義 class Rand { // クラスメソッド irand の定義 static int irand() { return (int)(365*Math.random()); } } }} ここでは,一つのソースファイルで複数のクラスを定義する例を示している. class の前に public がついていないことに注意.このソースファイル自体の名前は, 二つのクラス名と無関係に適当な名前をつければよい(ここでは Birth.java とする). *** コンパイルと実行の仕方 [#j1ea6859] $ javac Birth.java とコンパイルすると,BProblem.class と Rand.class ができる.実行するには,実行したいmainメソッドを含むクラスの名前を指定すればよいので, $ java BProblem とする. *** 提出 [#cfe78ef3] チェックの省力化のため,上記の説明のように,必要なクラスをすべて Birth.java というソースファイルの中に定義するようにしてください. 作ったソースファイルを moodle の該当の場所へ提出してください.