_Graphics/2012/ex05
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*グラフィックス基礎・演習 2012年度 第5回 [#e9701092]
#contents
//&color(#ff0000){工事中};
**注意 [#b90cec8d]
&color(Blue){前回同様に,TurtleクラスおよびTurtleクラスを使うプログラムとそうでないプログラムで保存するディレクトリを分けること.};
**課題A 締切: 今回の演習終了時(3点) [#kadaiA]
この課題の解答は講義時に配布した用紙に記入し,課題Bのチェックを受ける際にTAさんに提出してください(課題Bのチェックを受けられそうにない場合は課題AのみをTAさんに提出してください).採点は高橋が後日行う予定です.
aという名前の整数配列に格納された値の「和」,「0より大きく100以下の数の個数」,「最大値」,「最大値を与える配列のインデックスのうち一番大きいもの」を表示するプログラムを作りなさい.
クラス名は G05Array とすること.
例えば,int[]型の変数aを
int[] a = { 11, 200, 123, 200, -99, 0, 7, 77, 100 };
と初期化すると,次のような出力が得られるようにすること(インスタンス変数 length を使いなさい).
#pre{{
$ java G05Array
0:11 1:200 2:123 3:200 4:-99 5:0 6:7 7:77 8:100
和 = 619
0より大きく100以下の数の個数 = 4
最大値 = 200 (3番目)
}}
次の例などでも実行してみること(紙に書くのは↑の例の方でよい (^^) ).
#pre{{
{ 868, 260, 304, 382, 962, 576, 855, 310, 157, 376,
814, 164, 587, 686, 400, 528, 651, 431, 738, 333,
404, 760, 778, 921, 870, 998, 697, 722, 622, 459,
699, 245, 872, 2166, 634, 0, 699, -999, 657, 424,
802, 977, 816, 799, 732, 321, 627, 525, 411, 980 }
}}
**課題B 締切: 今回の演習終了時(2点) [#kadaiB]
教科書p.44のリスト5.1のプログラムを次のように改造しなさい.
-クラス名を G05Kame とする
-&jsmath(i); 番目のタートルは &jsmath((2i + 3)); 角形を描くようにする
-配列のインスタンス変数 length を用いるようにする
**課題C 締切: 次回演習開始直後(2点) [#kadaiC]
教科書p.47の練習問題5.10をやりなさい(Graph51).
ただし,次のようにすること.
-addMesh()する
-最初の点までの移動時には線をひかない
-次のような場合にもエラーになってしまわないようにする
++配列 graph の長さが奇数のとき(最後の値を無視するようにしよう)
int graph[] = { 50, 300, 100, 100, 300 };
++配列 graph の長さが0のとき
int graph[] = {};
-チェックしやすいように,上記の例をソース中にコメントとして残しておいてもらえると助かります
#pre{{
// int graph[] = { 50, 300, 100, 100, 300 }:
// int graph[] = {}:
}}
練習問題に示された例や上記の例がうまくいったら,次の例でも実行してみること.
#pre{{
int graph[] = {
200, 175, 200, 100, 140, 100, 140, 120,
160, 120, 160, 100, 100, 100, 100, 175,
125, 175, 125, 150, 175, 150, 175, 175,
275, 175, 275, 150, 325, 150, 325, 175,
350, 175, 350, 100, 290, 100, 290, 115,
310, 115, 310, 100, 250, 100, 250, 175,
250, 100, 350, 100, 350, 300, 325, 300,
325, 275, 75, 275, 75, 250, 350, 250,
350, 300
};
}}
**課題D 締切: 次回演習開始直後(2点) [#kadaiD]
課題Aのプログラムを元にして,以下のような動作をするプログラムを作りなさい.
#pre{{
$ java G05Array2 100 200 3.14
0:100.0 1:200.0 2:3.14
和 = 303.14
0より大きく100以下の数の個数 = 2
最大値 = 200.0 (1番目)
}}
ただし…
-クラス名は,G05Array2 とすること.
-入力が数でない場合のことは考えなくてよい.
-引数なしで実行してもエラーにならない(何も出力せず終了する)ようにすること.
-適切な型で a という名前の配列を作成し,コマンドライン引数の値を一度そこに格納してから和その他の計算を行うように作ること.
ヒント: 配列 a の大きさは args.length で決めたらよい.
文字列をint型に変換するにはIntegerというラッパークラスを使ったのだから,doubleに変換するには...(p.59とJava API仕様参照)
**課題S(おまけ) 締切: 次回演習開始直後(2点) [#kadaiS]
数理情報学科の学力認定試験の問題に挑戦してみよう.
2012年2月に行われた2011年度試験の専門Iの問題IV.
次のようにして問題を閲覧できる.
+[[数理情報学科のWikiのサイト>https://www.math.ryukoku.ac.jp/wiki/index.php/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8]]から「学力認定試験」へ
>
数理情報学科のwikiサイトのアクセス時に求められるユーザ名とパスワードは,全学統合認証のものと同じ.
学力認定試験の他にも定期試験の過去問,教員による授業自己点検報告書なども閲覧できる.
<
+ 「大学院入試問題」(←学力認定試験の過去問もこちら) へ
+ 「media:学力認定試験(2012.2).pdf」を開く
問(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 とする).
このとき,
$ javac Birth.java
とコンパイルすると,BProblem.class と Rand.class ができる.実行するには,実行したいmainメソッドを含むクラスの名前を指定すればよいので,
$ java BProblem
とする.
終了行:
*グラフィックス基礎・演習 2012年度 第5回 [#e9701092]
#contents
//&color(#ff0000){工事中};
**注意 [#b90cec8d]
&color(Blue){前回同様に,TurtleクラスおよびTurtleクラスを使うプログラムとそうでないプログラムで保存するディレクトリを分けること.};
**課題A 締切: 今回の演習終了時(3点) [#kadaiA]
この課題の解答は講義時に配布した用紙に記入し,課題Bのチェックを受ける際にTAさんに提出してください(課題Bのチェックを受けられそうにない場合は課題AのみをTAさんに提出してください).採点は高橋が後日行う予定です.
aという名前の整数配列に格納された値の「和」,「0より大きく100以下の数の個数」,「最大値」,「最大値を与える配列のインデックスのうち一番大きいもの」を表示するプログラムを作りなさい.
クラス名は G05Array とすること.
例えば,int[]型の変数aを
int[] a = { 11, 200, 123, 200, -99, 0, 7, 77, 100 };
と初期化すると,次のような出力が得られるようにすること(インスタンス変数 length を使いなさい).
#pre{{
$ java G05Array
0:11 1:200 2:123 3:200 4:-99 5:0 6:7 7:77 8:100
和 = 619
0より大きく100以下の数の個数 = 4
最大値 = 200 (3番目)
}}
次の例などでも実行してみること(紙に書くのは↑の例の方でよい (^^) ).
#pre{{
{ 868, 260, 304, 382, 962, 576, 855, 310, 157, 376,
814, 164, 587, 686, 400, 528, 651, 431, 738, 333,
404, 760, 778, 921, 870, 998, 697, 722, 622, 459,
699, 245, 872, 2166, 634, 0, 699, -999, 657, 424,
802, 977, 816, 799, 732, 321, 627, 525, 411, 980 }
}}
**課題B 締切: 今回の演習終了時(2点) [#kadaiB]
教科書p.44のリスト5.1のプログラムを次のように改造しなさい.
-クラス名を G05Kame とする
-&jsmath(i); 番目のタートルは &jsmath((2i + 3)); 角形を描くようにする
-配列のインスタンス変数 length を用いるようにする
**課題C 締切: 次回演習開始直後(2点) [#kadaiC]
教科書p.47の練習問題5.10をやりなさい(Graph51).
ただし,次のようにすること.
-addMesh()する
-最初の点までの移動時には線をひかない
-次のような場合にもエラーになってしまわないようにする
++配列 graph の長さが奇数のとき(最後の値を無視するようにしよう)
int graph[] = { 50, 300, 100, 100, 300 };
++配列 graph の長さが0のとき
int graph[] = {};
-チェックしやすいように,上記の例をソース中にコメントとして残しておいてもらえると助かります
#pre{{
// int graph[] = { 50, 300, 100, 100, 300 }:
// int graph[] = {}:
}}
練習問題に示された例や上記の例がうまくいったら,次の例でも実行してみること.
#pre{{
int graph[] = {
200, 175, 200, 100, 140, 100, 140, 120,
160, 120, 160, 100, 100, 100, 100, 175,
125, 175, 125, 150, 175, 150, 175, 175,
275, 175, 275, 150, 325, 150, 325, 175,
350, 175, 350, 100, 290, 100, 290, 115,
310, 115, 310, 100, 250, 100, 250, 175,
250, 100, 350, 100, 350, 300, 325, 300,
325, 275, 75, 275, 75, 250, 350, 250,
350, 300
};
}}
**課題D 締切: 次回演習開始直後(2点) [#kadaiD]
課題Aのプログラムを元にして,以下のような動作をするプログラムを作りなさい.
#pre{{
$ java G05Array2 100 200 3.14
0:100.0 1:200.0 2:3.14
和 = 303.14
0より大きく100以下の数の個数 = 2
最大値 = 200.0 (1番目)
}}
ただし…
-クラス名は,G05Array2 とすること.
-入力が数でない場合のことは考えなくてよい.
-引数なしで実行してもエラーにならない(何も出力せず終了する)ようにすること.
-適切な型で a という名前の配列を作成し,コマンドライン引数の値を一度そこに格納してから和その他の計算を行うように作ること.
ヒント: 配列 a の大きさは args.length で決めたらよい.
文字列をint型に変換するにはIntegerというラッパークラスを使ったのだから,doubleに変換するには...(p.59とJava API仕様参照)
**課題S(おまけ) 締切: 次回演習開始直後(2点) [#kadaiS]
数理情報学科の学力認定試験の問題に挑戦してみよう.
2012年2月に行われた2011年度試験の専門Iの問題IV.
次のようにして問題を閲覧できる.
+[[数理情報学科のWikiのサイト>https://www.math.ryukoku.ac.jp/wiki/index.php/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8]]から「学力認定試験」へ
>
数理情報学科のwikiサイトのアクセス時に求められるユーザ名とパスワードは,全学統合認証のものと同じ.
学力認定試験の他にも定期試験の過去問,教員による授業自己点検報告書なども閲覧できる.
<
+ 「大学院入試問題」(←学力認定試験の過去問もこちら) へ
+ 「media:学力認定試験(2012.2).pdf」を開く
問(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 とする).
このとき,
$ javac Birth.java
とコンパイルすると,BProblem.class と Rand.class ができる.実行するには,実行したいmainメソッドを含むクラスの名前を指定すればよいので,
$ java BProblem
とする.
ページ名: