#author("2020-05-22T12:40:58+09:00","default:takataka","takataka") #author("2020-05-22T17:55:21+09:00","default:takataka","takataka") *グラフィックス基礎及び実習 2020年度 第7回 [#e9701092] #contents //&color(#ff0000){''工事中''}; **ex07 課題A [#kadaiA] //&color(Red){''工事中''}; ''提出期限: 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 の家の絵を描く. - &color(blue){''この house メソッドは元からある方の house メソッドを利用するように作ること.''}; - &color(blue){''動き方によって家が傾くことのないようにすること.''}; - &color(blue){''(x, y)への移動で余計な線を引かないように''}; < + T51 で変数 d の値を println した直後にこの house メソッドを house(size/2, 200, 200); と呼び出して,動作確認しましょう. + 完成したプログラムのソースファイル(&color(red){''2つとも''};)をこの科目の Moodle コース上の当該の場所へ提出してください. -- 上記ファイルは締切後に半自動的に処理します.コンパイルエラーになる,ファイル名が違う,といったことのないように注意してください.''ファイル名の間違い(大文字小文字も)に注意''. **ex07 課題B [#kadaiB] //&color(Red){''工事中''}; ''提出期限: 0522金18:30'' %%''提出期限: 0522金18:30''%% ''提出期限: 0528木23:59'' + 教科書の T52.java と Stepper.java を作成してください + 授業中の指示にしたがって Stepper.java を修正してください -- this を追加する際は,println 中の j も this.j にできますね. + 完成したプログラムのソースファイル(&color(red){''2つとも''};)をこの科目の Moodle コース上の当該の場所へ提出してください. -- 上記ファイルは締切後に半自動的に処理します.コンパイルエラーになる,ファイル名が違う,といったことのないように注意してください.''ファイル名の間違い(大文字小文字も)に注意''. //&color(white,blue){check}; **ex07 課題C [#kadaiC] //&color(Red){''工事中''}; ''提出期限: 0528木23:59'' 授業で出てきた HW クラスを自分で作ろう.&color(blue){HW クラスの API 仕様は第6回講義資料の 1/4 に載っている.}; #ref(https://www-tlab.math.ryukoku.ac.jp/~takataka/course/Graphics/HW-ex06C.png,nolink) &color(blue){''以下の手順にしたがって段階的に作っていくこと''}; + 上記の通りの HW.java を書く. + 5行目のところのコメントどおり,そこに変数の宣言を書く.変数名はソースの他の部分を見て,適切な名前をつけること. + print メソッドを完成させる. -- &color(white,blue){check}; 上記を見るとわかるように,実は Java には printf というメソッドがある(昔の Java にはなかった).C言語の printf に似ている. + 動作確認のため,G05Fugayo.java をコピーして G06Fugayo.java を作り,次のように修正する. -- &color(blue){HW クラスのかわりに HWsample を使ってるはずなので,HW に修正}; -- まだ HW クラスには calcBMI や printHimando メソッドを定義してないので,それらを使ってる行はコメントにしておく + こうして作った G06Fugayo.java をコンパイルして動作確認する. + HW.java に残りのメソッドの定義を書く + G06Fugayo.java のコメントをはずしてコンパイル・動作確認する. + G06Fugayo で HW クラスのコンストラクタを呼び出している行を修正して,&color(blue){"ふがよ" という名前を自分の名前にする.}; 身長体重はそのままでよい.正直に自分の値を書いたりする必要はない. + 完成したプログラムのソースファイル(&color(red){''2つとも''};)をこの科目の Moodle コース上の当該の場所へ提出してください. -- 上記ファイルは締切後に半自動的に処理します.コンパイルエラーになる,ファイル名が違う,といったことのないように注意してください.''ファイル名の間違い(大文字小文字も)に注意''. **ex07 課題S(omake) [#kadaiS] //&color(#ff0000){''工事中''}; 期限: 0529金23:59.これはおまけ課題です.やらなくても減点になりません.やったら加点かも 数理情報学科の学力認定試験の問題に挑戦してみよう. 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] プロジェクトを作ってない(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) [#kadaiT] //&color(#ff0000){''工事中''}; 期限: 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).