#author("2018-03-27T21:23:39+09:00","default:takataka","takataka")
#author("2018-04-13T21:31:03+09:00","default:takataka","takataka")
*グラフィックス基礎及び実習 2018年度 実習第1回 [#kd45822f]
 

//&color(Red){工事中};

#contents

**実習のすすめ方 [#l5135b5b]

[[Graphics/2018/ex00]] を参照してください.



**課題A(self) 完成目標: 今回の実習終了まで [#kadaiA]


-&color(#0000a0){以下の文だけではどうやっていいかわからないという人は,次のページを参照しなさい:}; [[Docs/4UNIXBeginners]]
-&color(#0000a0){以下の文中の Graphics20XY の XY のところは,実際には2桁の数字が入ります(20XYが今年を表すように).今後も同様に考えてください.};


+コンソールを開き,mkdir コマンドを使って,ホームディレクトリの下に Graphics20XY というディレクトリを作りなさい.
--&color(white,blue){check};  mkdir の使い方を忘れたひとは [[Docs/4UNIXBeginners]] へ
--&color(white,blue){check};  今後,このディレクトリのことを ~/Graphics20XY と書いて説明する(~ はホームディレクトリを表す記号).
+講義資料の G01Hello.java を実際に作りなさい.ただし,エディタにはEmacsを用い,"a01055"の部分は自分の学籍番号に,"ほげほげお"の部分は自分の名前にすること.
--&color(white,blue){check}; cd でディレクトリを移動してから emacs ファイル名  &
--&color(white,blue){check};  cd の使い方を忘れたひとは  [[Docs/4UNIXBeginners]] へ
+作成したプログラムをコンパイルして実行し,動作を確認しなさい.やり方は講義資料に書いてある.
+次のようにわざと間違えるとどんな結果になるか,ひとつづつ試して観察しなさい
--&color(white,blue){check}; よく見ると,メッセージ中にエラー箇所の行番号や位置が示されていることがわかる.
++7行目の "println" を "purintln" と間違えてみる
++7行目の最後の ";" (セミコロン)をつけ忘れてみる
++3行目の G01Hello をわざと別の名前にかえてみる(詳しくは今後説明しますが,このプログラムの例では,この名前はソースファイル名の ".java" より前の部分と一致していないといけません)
**課題B(self) 完成目標: 今回の実習終了まで [#kadaiB]

この課題は以下の通りです.
&color(#0000a0){以下の文だけではどうやっていいかわからないという人は,次のページを参照しなさい:}; [[Docs/4UNIXBeginners]]

+ [[Graphics/Link]] から grtg.zip をダウンロードして,~/Graphics20XY に置きなさい.&color(#0000a0){ヒント:右クリックして「名前を付けてリンク先を保存」};
+ 上記のディレクトリに移動し,lsコマンドを実行してダウンロードしたファイルが存在することを確認しなさい.
--&color(white,blue){check}; cdコマンドでディレクトリを移動できるか? cd コマンドをどのように実行すればよい? 
+ ダウンロードしたファイルは,複数のファイルをひとまとめにした形式のファイル(アーカイブと呼ばれることがある)である.この例ではファイル名に .zip という拡張子がついているが,これは,このファイルが 「[[ZIPファイルフォーマット>https://ja.wikipedia.org/wiki/ZIP_(%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88)]]」に則ったアーカイブファイルであることを表している.計算機室の Linux 環境では,次のように zipinfo コマンドで内容を確認できる.
#pre{{
 $ zipinfo grtg.zip
}}
+ unzip コマンドで,このアーカイブを展開しよう.
#pre{{
 $ unzip grtg.zip
}}
+ 展開できたかどうか,ls コマンドで確認しよう.
#pre{{
$ ls
$ ls tg
}}
&color(white,blue){check}; カレントディレクトリ(今いる場所,~/Graphics20XY のはず)に tg というディレクトリが作られ,その中に拡張子 .java のファイルが4つできているはずである.確認できたら,prtg.zip は削除して構わない.
+ cd や ls の使い方に慣れる(思い出す)ため,次のことをやろう.
--&color(white,blue){check}; コンソールで次のように順次コマンドを実行し,何が起こっているか考えなさい.
#pre{{
 $ cd      
 $ pwd      pwdは,現在いるディレクトリ(カレントディレクトリ, present working directory)を表示する
 $ ls
 $ cd  Graphics20XY/tg   (Tabキーを使った補完を活用しよう.たとえば G を入力したらTabキーを押してみる,等 ) 
$ pwd
$ ls
$ cd  ..
$ pwd
$ ls
$ cd  ..
$ pwd
$ ls
}}
+ ディレクトリ ~/Graphics20XY 中(tgの中ではない)に T21.java というファイルを作りなさい(内容は教科書p.9の通り).&color(#0000a0){注意: このプログラムの詳しい説明は次回の講義で行います.まずは雰囲気をつかんでみて下さい.};
+T21.java をコンパイルして,lsしてみなさい.
--&color(white,blue){check}; エラーにならなければ,T21.class というファイルができているはずである.
--&color(white,blue){check}; T21.java は tg という「パッケージ」(詳しいことはいずれまた)内のクラス(TurtleクラスやTurtleFrameクラス)を利用しているので,うまくコンパイルできた場合,~/Graphics20XY/tg 内の関係する .java もコンパイルされて,Turtle.class や TurtleFrame.class などが自動的に作られているはずである.ls を実行し,そのことを確認しよう.
+T21.class を実行し,動作確認しなさい.
--&color(white,blue){check}; 教科書の指定通りの動作をしているか?
--&color(white,blue){check}; これは次回の講義で説明することだが,2匹の亀は m と m1 という変数で表されている.
上の方の亀は,m と m1 のどちらだろう?
+実行結果が以下の図のようになるように T21.java を修正しなさい.かめの位置や向きの基準については,教科書p.7の図を参照.
--&color(white,blue){check};  要求通りの動作をしているか?
--&color(white,blue){check};  一度ソースを完成させてコンパイル済みのプログラムを,変更せずにもう一度実行する場合,以下のどちらが適切?
--- 「javac ほげ」してから「java ほげ」
--- 「java ほげ」のみ

#ref(https://www-tlab.math.ryukoku.ac.jp/~takataka/course/Graphics/T21.png,nowrap,nolink)
**課題C(TA) 締切: 次回実習開始直後 [#kadaiC]

教科書p.12の練習問題2.1をやりなさい.ただし,
-ソースファイル名は教科書の指示通り P20.java とすること.
--&color(white,blue){check};  ソースファイルはどこに作ったらよいか,自分でよく考えよう
-図2.1のような星型が描けたら,星の向きがまっすぐ( &size(30){★};のような向き)になるように修正すること.
--&color(white,blue){check};  小学校の算数ですが...何度回転させたらよい? (何通りかありえます)
-「これは繰り返しやからふぉー」って人は教科書の目次を見てみよう
**課題S(omake) [#kadaiS]

+以下のリンク先からソースファイルをダウンロードし,実行してみよう.
このプログラムは Turtle クラス等は使っていないので,Graphics20XY の下に置いたらよい.
--DoublePendulum のソース [[Graphicsgakunai:DoublePendulum.java]] (学内アクセス限定)
+重りの質量(m1,m2)や振り子の長さ(l1,l2)をいろいろ変えて実行してみよう
--このプログラムそのものはこの科目の範囲外ですが,数理情報学科で学ぶ物理,数値計算,計算科学などの知識と,この科目で学ぶ内容で理解できます.

**おまけ [#r6b8ca4a]

- C言語プログラムの実行形式ファイル(Mac OS Xの環境で実行できるようにコンパイルしたもの)  [[G01Hello-mac>Graphics:G01Hello-mac]]
- C言語プログラムの実行形式ファイル(Linuxの環境で実行できるようにコンパイルしたもの)  [[G01Hello-linux>Graphics:G01Hello-linux]]
- Java のクラスファイル [[G01Hello.class>Graphics:G01Hello.class]], [[DoublePendulum.class>Graphics:DoublePendulum.class]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS