グラフィックス基礎及び実習 2020年度 第7回†
ex07 課題A†
提出期限: 0522金16:50
- 授業中の指示にしたがって,T51.java と HTurtle.java を修正してください
- javafx.scene.paint.Color ってあちこち書くのが面倒なひとは,import して楽をしたらよい
- HTurtle に次の仕様で定められる house メソッドを定義してください.
- void house(double s, double x, double y)
- 座標 (x, y) の位置から,一辺の長さ s の家の絵を描く.
- この house メソッドは元からある方の house メソッドを利用するように作ること.
- 動き方によって家が傾くことのないようにすること.
- (x, y)への移動で余計な線を引かないように
- T51 で変数 d の値を println した直後にこの house メソッドを
house(size/2, 200, 200);
と呼び出して,動作確認しましょう.
- 完成したプログラムのソースファイル(2つとも)をこの科目の Moodle コース上の当該の場所へ提出してください.
- 上記ファイルは締切後に半自動的に処理します.コンパイルエラーになる,ファイル名が違う,といったことのないように注意してください.ファイル名の間違い(大文字小文字も)に注意.
ex07 課題B†
提出期限: 0522金18:30 提出期限: 0528木23:59
- 教科書の T52.java と Stepper.java を作成してください
- 授業中の指示にしたがって Stepper.java を修正してください
- this を追加する際は,println 中の j も this.j にできますね.
- 完成したプログラムのソースファイル(2つとも)をこの科目の Moodle コース上の当該の場所へ提出してください.
- 上記ファイルは締切後に半自動的に処理します.コンパイルエラーになる,ファイル名が違う,といったことのないように注意してください.ファイル名の間違い(大文字小文字も)に注意.
ex07 課題C†
提出期限: 0528木23:59
授業で出てきた HW クラスを自分で作ろう.HW クラスの API 仕様は第6回講義資料の 1/4 に載っている.
以下の手順にしたがって段階的に作っていくこと
- 上記の通りの HW.java を書く.
- 5行目のところのコメントどおり,そこに変数の宣言を書く.変数名はソースの他の部分を見て,適切な名前をつけること.
- print メソッドを完成させる.
- check 上記を見るとわかるように,実は Java には printf というメソッドがある(昔の Java にはなかった).C言語の printf に似ている.
- 動作確認のため,G05Fugayo.java をコピーして G06Fugayo.java を作り,次のように修正する.
- HW クラスのかわりに HWsample を使ってるはずなので,HW に修正
- まだ HW クラスには calcBMI や printHimando メソッドを定義してないので,それらを使ってる行はコメントにしておく
- こうして作った G06Fugayo.java をコンパイルして動作確認する.
- HW.java に残りのメソッドの定義を書く
- G06Fugayo.java のコメントをはずしてコンパイル・動作確認する.
- G06Fugayo で HW クラスのコンストラクタを呼び出している行を修正して,"ふがよ" という名前を自分の名前にする. 身長体重はそのままでよい.正直に自分の値を書いたりする必要はない.
- 完成したプログラムのソースファイル(2つとも)をこの科目の Moodle コース上の当該の場所へ提出してください.
- 上記ファイルは締切後に半自動的に処理します.コンパイルエラーになる,ファイル名が違う,といったことのないように注意してください.ファイル名の間違い(大文字小文字も)に注意.
ex07 課題S(omake)†
期限: 0529金23:59.これはおまけ課題です.やらなくても減点になりません.やったら加点かも
数理情報学科の学力認定試験の問題に挑戦してみよう.
2012年2月に行われた2011年度試験の専門Iの問題IV.
学力認定試験の過去問のサイトへアクセスして問題を閲覧しよう†
次のようにして問題を閲覧できる.
- https://wiki.math.ryukoku.ac.jp/ から「学力認定試験」へ
数理情報学科のwikiサイトのアクセス時に求められるユーザ名とパスワードは,全学統合認証のものと同じ.
- 「大学院入試問題」(←学力認定試験の過去問もこちら) へ
- 「media:学力認定試験(2012.2).pdf」を開く
プログラムを考えよう†
問(1)の「クラスメソッドbproblem() を書きなさい」とか,「Randクラスのクラスメソッドirand()…」みたいな指示になるべく沿ってソースを角煮は,↓に示すようなソースファイルを作るとよい.試験問題では,Randクラスが存在すると仮定して,そのソースは書く必要がないということだが,ここではそれもあわせて書く例にしてある.
// クラス 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 とする).
コンパイルと実行の仕方†
プロジェクトを作ってない(ex06で説明したVSCodeの設定は行わず,最初の頃に説明した,ターミナルで手動で javac, java する方法を採っている )ひとは,
$ javac Birth.java
とコンパイルすると,BProblem.class と Rand.class ができる.実行するには,実行したいmainメソッドを含むクラスの名前を指定すればよいので,
$ java BProblem
とする.
ex06 で説明したVSCodeの設定を行った(gr2020というプロジェクトを作った)ひとは,次のようにすればよい.
- src フォルダ/ディレクトリの下に上記のプログラムを Birth.java という名前で作る
- VSCode で src/Birth.java を開き,main メソッドの上の Run を押す(メニューの「実行」からでもよい)
ex07 課題T(omake)†
期限: 0529金23:59.これはおまけ課題です.やらなくても減点になりません.やったら加点かも
教科書 p.60 からの「5.7 まとめの問題」の一部をやろう.
- 教科書 p.60-63 を読みましょう
- p.61 の GraphDrawer.java を作りましょう.ただし,このプログラムは 1 行目に
package graph
と書いてあり,「graph パッケージ」のプログラムとして作成する必要があります.
次のようにしましょう.
- gr2020 プロジェクトを作ったひとは...
- src フォルダ/ディレクトリの中に graph というフォルダ/ディレクトリを作って,GraphDrawer.java をその中に置く
- VSCode で src/graph/GraphDrawer.java を開いて,main メソッドの上の Run ボタンを押す(またはメニューの「実行」から)
- gr2020 プロジェクトを作ってないひとは...
- Graphics2020 フォルダ/ディレクトリの中に graph というフォルダ/ディレクトリを作って,GraphDrawer.java をその中に置く
- Graphics2020 にいる状態で,次のようにコンパイル & 実行する
javac graph/GraphDrawer.java
java graph/GraphDrawer
- 「パッケージ」とはどういうものかについては,p.54, 55 へどぞ.
- 同じようにして,p.62 の練習問題 5.15 をやりなさい(GraphDrawer52).