[[TopPage]] > [[演習課題]] > 小課題

* Javaプログラミング演習の確認(まとめ) [#h3ecc9db]

ここで,演習1の理解度を確認するために,小課題を行います.

みなさんの理解度を確認するために,課題のプログラムができたら,&size(16){''ソースコードを提出''してください.};

※提出されたソースコードの出来は、最終評価の点数には関係しません.できるところまで,やってみてください.
わからなければ,吉野またはTAに質問してください.


*** 提出期限 [#i8e926bb]
&size(16){目標:   演習1日(週)目の講義中.};~
&size(16){最終提出: 演習2日(週)目が始まるまで.};

&size(16){提出先:  以下のメールアドレスに".javaファイル"を添付して送ってください。};~
&size(16){件名:  ネットプログラミング小課題(?班)601950?? (名前)};~
&br;
&size(20){taniguchi.shogo@g.wakayama-u.jp}; (TA(谷口))~
※動作確認をして返信します.少し時間がかかるかもしれませんが待っていてください.一週間たっても返事がない場合,TAまで連絡をください.

** サンプルプログラムの紹介 [#r1e02fe7]

まず,以下のサンプルプログラムをダウンロードしてください.

&ref(Ensyu.java,,,Ensyu.java ダウンロード);/[[ソースコードファイルを見る>http://yoslab.net/netprog/source/Ensyu.java]]

サンプルプログラムを実行すると,以下のような表示が出ます.

 現在の値: 0
 命令を入力してください:

ここで,何か値(例としてABC)を入力すると,

 命令を入力してください: ABC
 命令ABCは解釈できません.
 現在の値は:0

と表示され,「命令を入力してください」に戻ります.
EXITと入力すると,文字入力のループを終了します.


** 課題 [#t36e79f5]

命令文を入力すると,内部の値(現在値)が変わる計算プログラムを作成してください.

具体的には,

 ADD 100 [Enterキー]

と入力すると,プログラムの「現在の値」に100を加算します.
同様に,

 SUB 50 [Enterキー]

と入力すると,プログラムの「現在の値」から50を減算します.

このように,命令語と数値1つを与えると,プログラム内の「現在の値」を操作して,表示するプログラムを作成してください.

- 入力する命令語は,以下の4つとします.
--加算(ADD),減算(SUB),乗算(MUL),除算(DIV)
- 各命令は,大文字でも小文字でも認識するようにしてください.
- 例外エラーを考慮し,なるべくプログラムが止まらないようにしてみてください.
-- 例えば,「0で割る」とエラーが発生します.

*** 考慮する点 [#f78cd2ae]
- 各命令は,大文字でも小文字でも認識するようにしてください.
- 例外エラーが出たときに,プログラムが止まらないようにしてみてください.
-- 割り算命令を作る人のヒント: 0で割ることはできませんね.

*** ヒント [#kb445d2d]

- この小課題でやってもらいたいことは,以下の2つです.

(1) 命令文にある数値文字列を,数値(int型)に変換する処理~
(2) 4つの命令語を認識し,適切な計算をする処理~

サンプルプログラム中の適切な場所に,
 // (1) 2つ目の要素があれば,文字列から数値に変換する.
のように,コメントを挿入していますので,参考にしてください.もちろん他の部分も修正OKです.




*** 発展 [#f78cd2ae]

- 適切なエラー文が表示されるよう,プログラムを工夫してみましょう.
-- 例えば,下のように実行してみるとどうなりますか?

 ADD A
 ADD 12 14
 ADD
 ADDD
 (何も入力しない)

-- ほかにもあれば,自分で考えてみて追加してください.
- オリジナルの命令語や新機能などを考えてみましょう.

*** ヒント [#kb445d2d]

- この小課題でやってもらいたいことは,以下の2つです.~
 (1)命令文にある数値文字列を,数値(int型)に変換する処理~
 (2)命令語(ADDやSUBなど)を認識し,適切な計算をする処理~
 サンプルプログラム中の適切な場所に,
 // (1) 2つ目の要素があれば,文字列から数値に変換する.
のように,コメントを挿入していますので,参考にしてください.もちろん他の部分も修正してくれてOKです.
--加算(ADD),減算(SUB),乗算(MUL),除算(DIV)

#br
*** よくあるエラー [#gbdf11a3]

起こしやすいエラーを2つ紹介します.

- ''配列の要素数不足''
 String operand = item[1];
-- "ADD 3"を入力すると,item[0]に"ADD",item[1]に"3"が入ります.(要素数2)
-- しかし,入力内容が"ADD"だけだと?item[1]はありませんね.(要素数1)
-- この状態で,上記のプログラムを読むと怒られてしまいます.
 if (item.length > 1) {
   String operand = item[1];
 }
-- 回避するには,このように「要素数が2以上」という条件をつけましょう.

- ''if文とスコープ''
-- %%%if文の中で宣言した変数は,そのif文の中でしか使用できません%%%.
 String operand;
 if (item.length > 1) {
   operand = item[1];
 }
-- 先に宣言しておくことで,使用できる範囲を広めることができますよ.


&size(16){[[&ref(http://yoslab.net/netprog/next.gif,nolink); 演習のページに戻る>演習課題]]};

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