#author("2020-05-01T08:46:15+09:00","default:takataka","takataka") #author("2020-05-03T21:18:58+09:00","default:takataka","takataka") *グラフィックス基礎及び実習 2020年度 授業第4回 [#kd45822f] //&color(Red){''工事中''}; #contents **授業の進め方と準備 [#l5135b5b] 前回までの作業ができてないひとは,まずは以下を確認して準備しておいてください.自前のPCを用意できない方については,Teams上で案内し(て)ます. - [[Graphics/2020/ex00]] - [[Graphics/2020/ex01]] - [[Graphics/2020/ex02]] **ex04 step1 から step6 [#step1_6] - Step1 から Step 5 までは,主としてGraphicsチーム内で活動します - Step6 は,以下の課題に関する説明です **ex04 課題A [#kadaiA] //&color(Red){''工事中''}; ''提出期限: 0508金18:30'' &ref(https://www-tlab.math.ryukoku.ac.jp/~takataka/course/Graphics/G03RandomQ.png); 次のことをやりなさい. + 上記のプログラムを作成する(G03Random) + 実行する. + かめさんがフレームの外にいってしまうのを避けるため,次のように修正しよう. > 繰り返しのたびにかめの位置をチェックし,かめがフレーム中央の 300 x 300 ピクセルの範囲より外に出ていたら,中央に移動させる < &color(white,blue){check}; 5行目で,TurtleFrame クラスのコンストラクタが引数ありで呼ばれてますね.p.12 の TurtleFrame クラスのAPI仕様のコンストラクタの所を確認すると,この場合,フレームの大きさは ? x ? ですね.ということは,中央 300 x 300 の範囲かどうか調べるにはどういう条件式を書いたらよいでしょう? &color(white,blue){check}; うまくできたと思えたら,実行してメニューから Speed > very fast を選択してみよう. 完成したら,プログラムのソースファイルをこの科目の Moodle コース上の当該の場所へ提出してください. - この科目の Moodle コースへの参加法などは Graphicsチーム上で説明してます - 上記ファイルは締切後に自動的に処理します.コンパイルエラーになる,ファイル名が違う,といったことのないように注意してください.コメントとして自分の学籍番号と氏名を入れて下さい. **ex04 課題S [#kadaiS] //&color(Red){''工事中''}; ''期限: 0515木23:59.これはおまけ課題です.やらなくても減点になりません.やったら加点かも'' ''期限: 0514木23:59.これはおまけ課題です.やらなくても減点になりません.やったら加点かも'' 以下のプログラムとその実行結果を参考にして,キーボードから年月日を入力すると,その日の曜日を教えてくれるプログラムを作ろう. -クラス名は G03WeekdayName とすること -1901年以降について計算できればよい.1901年の1月1日は火曜日である. -自分で導出できない謎の公式を使わずに計算するものとすること. -計算機室のLinux環境では cal コマンドでカレンダーを表示できる(動作確認にどうぞ) $ cal $ cal 1901 -- 「万年カレンダー」でGoogle検索すると,いろんな年の暦を教えてくれるウェブサイトが見つかります -ヒント: http://ja.wikipedia.org/wiki/%E9%96%8F%E5%B9%B4 の「グレゴリオ暦」の項を参照すると,ある年がうるう年かどうかの判定法がわかる. -簡潔なプログラムを書こうと思うと,配列を使いたくなるかもしれない.教科書第6章へどうぞ. - &color(red){''プログラムって,ただコンパイル通るってだけじゃなく,正しく動作することを確認するのがすごく大事です.この課題では,そこを意識してもらうため,次のように条件をつけることにします.''}; -- 他のおまけ課題では,間違ってたら高橋が指摘して再提出してもらうことがありますが,この課題では,それはしません.一発勝負. -- なので,提出前にしっかりテスト&デバグしてください.プログラムの構造を考えると,チェックすべき年月日が何通りもあるのがわかるはず.それらの正しい曜日を調べておいて,プログラムの実行結果が正しいかどうか確認する作業をしましょう. #pre{{ /** キーボードから入力した数の和を表示 */ import java.util.*; // Scanner クラスのために public class G03Scan{ 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 G03Scan スペースや改行を区切りにしていくつか数値を入力してみてね 最後は数値以外の文字を入力してね 1 1 3.14 ← キーボードからの入力 1 1 1 ← キーボードからの入力 hoge 999 ← キーボードからの入力 合計は8.14だぴょん }}