_Graphics2011/ex04
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*グラフィックス基礎・演習 2011年度 演習第4回 [#e9701092]
//&color(#ff0000){工事中};
#contents
**おしらせ [#ma1a0c86]
&color(#ff0000){注意: 今回の課題の中には,Turtle.class も TurtleFrame.class も使わないものがあります.そのようなソースファイルは,それらと同じディレクトリに置く必要はありません.すなわち,~/Graphics2011/turtle の下にある必要はありません.そのようなソースファイルは,~/Graphics2011 の中に置くようにして下さい(今後同様のケースがあれば同じ扱いをして下さい).};
課題のチェックの仕方についての注意が[[前回のおしらせ>Graphics2011/ex03#ann]]にあります.
&color(#0000a0){この実習では,ls,cd,cpなどのUNIXのコマンドや,emacsというエディタを用います.これらの使い方を忘れた人は,次のページを参照しなさい:}; [[Docs/4UNIXBeginners]]
**課題A 締切: 今回の演習終了時(3点) [#kadaiA]
この課題の解答は講義時に配布した用紙に記入し,課題Bのチェックを受ける際にTAさんに提出してください(今回中に課題Bのチェックを受けられそうにない場合は課題Aの用紙のみをTAさんに提出してください).採点は高橋が後日行う予定です.
***問A-1 [#fa458e0b]
1以上の整数 &mimetex(n); に対して &mimetex(\sum_{k=1}^{n}k^2); の値を計算するプログラムを書きなさい.ただし,次のようにすること.
-クラス名は G04Sum とすること
-&mimetex(n); はint型変数で表すこと
-計算途中の和の値(k = 1 のときの値,k = 2 まで計算したときの値,...)を k の値とともに表示するように作ること
-実際にプログラムを実行して動作確認すること
***問A-2 [#w0705c77]
教科書p.37の練習問題4.12の解答のプログラムを書きなさい (Sum44).
実際にプログラムを実行して動作確認すること
***問A-3 [#c1473e42]
講義資料のQ10をやりなさい.紙の上に式を書けばよい.
ちなみに,演算子の優先順位については教科書第6章に解説がある.
この問題の範囲では,C言語の場合と同様.
**課題B 締切: 今回の演習終了時(2点),次回演習開始直後(1点) [#kadaiB]
以下の二つのことをやりなさい
-教科書p.35の練習問題4.8 (P46 & P47).ただし,次のようにすること.
--P46ではTurtleクラスのインスタンスメソッドを,P47では同クラスのクラスメソッドを用いて,かめを最高速にすること.
-教科書p.36の練習問題4.11のうち,Q43, Q44の2つ.
いずれも,何行何列出力するかを変数 n で表すようにすること.
**課題C 締切: 次回演習開始直後(2点) [#kadaiC]
教科書p.39の練習問題4.14を参考に,以下に示すように少し違う動作をするプログラムを作りなさい(G04Race).
-2匹のかめを中央に配置し,それぞれ右と左に向かって進むようにする
-確率0.4で右向きのかめが,0.6で左向きのかめが進むようにする
**課題D 締切: 次回演習開始直後(2点) [#kadaiD]
教科書p.40の練習問題4.15をやりなさい(Janken41).
ただし,以下を元にして,その間違いを修正すること(以下は何がどう間違いなのか考えながらやろう).
#pre{{
/** じゃんけんプログラム(間違いがあるよ)*/
public class Jaian41{
public static void main(String[] args){
if(random() < 1/3){
System.out.println("ぐぅ");
}
if(random() < 2/3){
System.out.println("ちょ〜き");
}else{
System.out.println("ぱぁ");
}
}
}
}}
**課題S(おまけ) 締切: 次回演習開始直後(2点or1点) [#kadaiS]
以下のプログラムとその実行結果を参考にして,キーボードから整数を入力すると,その数が年を表すと解釈して,その年の1月1日の曜日を教えてくれるプログラムを作ろう(ここまでで1点).さらに,年月日を入力するとその日の曜日を教えてくれるプログラムを作ろう(ここまでできたら2点).
-クラス名は G04WeekdayName とすること
-1901年以降について計算できればよい.1901年の1月1日は火曜日である.
-計算機室のLinux環境では cal コマンドでカレンダーを表示できる(動作確認にどうぞ)
$ cal
$ cal 1901
-ヒント:
http://ja.wikipedia.org/wiki/%E9%96%8F%E5%B9%B4
の「グレゴリオ暦」の項を参照すると,ある年がうるう年かどうかの判定法がわかる.
もっとヒントが欲しいひとは高橋に尋ねてください.
-「年月日を入力するとその日の曜日を…」の方を実現しようとすると,配列を使いたくなるかもしれない.
教科書第5章へどうぞ(p.45?).
#pre{{
/** キーボードから入力した数の和を表示 */
import java.util.*; // Scanner クラスのために
public class G04Scan{
public static void main(String[] args){
// Scannerクラスの使い方は,p.208やJava API参照
Scanner s = new Scanner(System.in);
double sum = 0.0;
System.out.println("スペースや改行を区切りにしていくつか数値を入力してみてね");
System.out.println("最後は数値以外の文字を入力してね");
while(s.hasNextDouble()){
sum += s.nextDouble();
}
System.out.println("合計は" + sum + "だぴょん");
}
}
}}
#pre{{
$ java G04Scan
スペースや改行を区切りにしていくつか数値を入力してみてね
最後は数値以外の文字を入力してね
1 1 3.14 ← キーボードからの入力
1 1 1 ← キーボードからの入力
hoge 999 ← キーボードからの入力
合計は8.14だぴょん
}}
終了行:
*グラフィックス基礎・演習 2011年度 演習第4回 [#e9701092]
//&color(#ff0000){工事中};
#contents
**おしらせ [#ma1a0c86]
&color(#ff0000){注意: 今回の課題の中には,Turtle.class も TurtleFrame.class も使わないものがあります.そのようなソースファイルは,それらと同じディレクトリに置く必要はありません.すなわち,~/Graphics2011/turtle の下にある必要はありません.そのようなソースファイルは,~/Graphics2011 の中に置くようにして下さい(今後同様のケースがあれば同じ扱いをして下さい).};
課題のチェックの仕方についての注意が[[前回のおしらせ>Graphics2011/ex03#ann]]にあります.
&color(#0000a0){この実習では,ls,cd,cpなどのUNIXのコマンドや,emacsというエディタを用います.これらの使い方を忘れた人は,次のページを参照しなさい:}; [[Docs/4UNIXBeginners]]
**課題A 締切: 今回の演習終了時(3点) [#kadaiA]
この課題の解答は講義時に配布した用紙に記入し,課題Bのチェックを受ける際にTAさんに提出してください(今回中に課題Bのチェックを受けられそうにない場合は課題Aの用紙のみをTAさんに提出してください).採点は高橋が後日行う予定です.
***問A-1 [#fa458e0b]
1以上の整数 &mimetex(n); に対して &mimetex(\sum_{k=1}^{n}k^2); の値を計算するプログラムを書きなさい.ただし,次のようにすること.
-クラス名は G04Sum とすること
-&mimetex(n); はint型変数で表すこと
-計算途中の和の値(k = 1 のときの値,k = 2 まで計算したときの値,...)を k の値とともに表示するように作ること
-実際にプログラムを実行して動作確認すること
***問A-2 [#w0705c77]
教科書p.37の練習問題4.12の解答のプログラムを書きなさい (Sum44).
実際にプログラムを実行して動作確認すること
***問A-3 [#c1473e42]
講義資料のQ10をやりなさい.紙の上に式を書けばよい.
ちなみに,演算子の優先順位については教科書第6章に解説がある.
この問題の範囲では,C言語の場合と同様.
**課題B 締切: 今回の演習終了時(2点),次回演習開始直後(1点) [#kadaiB]
以下の二つのことをやりなさい
-教科書p.35の練習問題4.8 (P46 & P47).ただし,次のようにすること.
--P46ではTurtleクラスのインスタンスメソッドを,P47では同クラスのクラスメソッドを用いて,かめを最高速にすること.
-教科書p.36の練習問題4.11のうち,Q43, Q44の2つ.
いずれも,何行何列出力するかを変数 n で表すようにすること.
**課題C 締切: 次回演習開始直後(2点) [#kadaiC]
教科書p.39の練習問題4.14を参考に,以下に示すように少し違う動作をするプログラムを作りなさい(G04Race).
-2匹のかめを中央に配置し,それぞれ右と左に向かって進むようにする
-確率0.4で右向きのかめが,0.6で左向きのかめが進むようにする
**課題D 締切: 次回演習開始直後(2点) [#kadaiD]
教科書p.40の練習問題4.15をやりなさい(Janken41).
ただし,以下を元にして,その間違いを修正すること(以下は何がどう間違いなのか考えながらやろう).
#pre{{
/** じゃんけんプログラム(間違いがあるよ)*/
public class Jaian41{
public static void main(String[] args){
if(random() < 1/3){
System.out.println("ぐぅ");
}
if(random() < 2/3){
System.out.println("ちょ〜き");
}else{
System.out.println("ぱぁ");
}
}
}
}}
**課題S(おまけ) 締切: 次回演習開始直後(2点or1点) [#kadaiS]
以下のプログラムとその実行結果を参考にして,キーボードから整数を入力すると,その数が年を表すと解釈して,その年の1月1日の曜日を教えてくれるプログラムを作ろう(ここまでで1点).さらに,年月日を入力するとその日の曜日を教えてくれるプログラムを作ろう(ここまでできたら2点).
-クラス名は G04WeekdayName とすること
-1901年以降について計算できればよい.1901年の1月1日は火曜日である.
-計算機室のLinux環境では cal コマンドでカレンダーを表示できる(動作確認にどうぞ)
$ cal
$ cal 1901
-ヒント:
http://ja.wikipedia.org/wiki/%E9%96%8F%E5%B9%B4
の「グレゴリオ暦」の項を参照すると,ある年がうるう年かどうかの判定法がわかる.
もっとヒントが欲しいひとは高橋に尋ねてください.
-「年月日を入力するとその日の曜日を…」の方を実現しようとすると,配列を使いたくなるかもしれない.
教科書第5章へどうぞ(p.45?).
#pre{{
/** キーボードから入力した数の和を表示 */
import java.util.*; // Scanner クラスのために
public class G04Scan{
public static void main(String[] args){
// Scannerクラスの使い方は,p.208やJava API参照
Scanner s = new Scanner(System.in);
double sum = 0.0;
System.out.println("スペースや改行を区切りにしていくつか数値を入力してみてね");
System.out.println("最後は数値以外の文字を入力してね");
while(s.hasNextDouble()){
sum += s.nextDouble();
}
System.out.println("合計は" + sum + "だぴょん");
}
}
}}
#pre{{
$ java G04Scan
スペースや改行を区切りにしていくつか数値を入力してみてね
最後は数値以外の文字を入力してね
1 1 3.14 ← キーボードからの入力
1 1 1 ← キーボードからの入力
hoge 999 ← キーボードからの入力
合計は8.14だぴょん
}}
ページ名: