Presentation is loading. Please wait.

Presentation is loading. Please wait.

ゴールデンウィークの課題 (提出日:2009/05/12) 2009/05/12に小テストがあります!

Similar presentations


Presentation on theme: "ゴールデンウィークの課題 (提出日:2009/05/12) 2009/05/12に小テストがあります!"— Presentation transcript:

1 ゴールデンウィークの課題 (提出日:2009/05/12) 2009/05/12に小テストがあります!
lesson01_huang.ppt から lesson03_huang.pptまですべての例題と演習を復習しなさい。 lesson02_huang.pptにある例題1-1 (p56), 1-2 (p60), 1-3(p63),     1-4(p66),1-5(p72), 1-6(p75)のプログラムを紙に手で書きなさい。 第二回の演習のプログラム(4つ)を紙に手で書きなさい。 lesson03_huang.pptにある例題1(p54), 2(p57), 3(p60), 4(p63), 5(p67), 6(p71), 7(p73)のプログラムを紙に手で書きなさい。 第三回の演習のプログラム(4つ)を紙に手で書きなさい。 6.   lesson01_huang.ppt から lesson03_huang.pptまですべての課題を復習しなさい Java 1 第3回

2 Java I (プログラミング入門) 第3回 条件分岐

3 復習 算術演算のデータ データには型がある 整数型(int) 実数型(double) 文字列(String) 小数点つきの数
復習  算術演算のデータ データには型がある 整数型(int) 0, 1, 3, 563, -32, 実数型(double) 1.0, 3.14, -73.5, 18.(=18.0), .5 (=0.5) 小数点つきの数 正確には浮動小数点数(floating point number)と呼ばれる 文字列(String) Java 1 第3回

4 復習 算術演算の結果 整数と整数の演算結果は整数である。 実数と実数の演算結果は実数である。
復習  算術演算の結果 整数と整数の演算結果は整数である。 の結果は整数の46 実数と実数の演算結果は実数である。 の結果は実数の 5.0 整数と実数、あるいは実数と整数の演算結果は実数である。 7.0 / 3 の結果は実数の Java 1 第3回

5 復習 変数と型 変数は何かを入れておく箱のようなもの 宣言: 変数を用意すること 宣言されていない変数は使えない
復習  変数と型 変数は何かを入れておく箱のようなもの 変数は名前が必要 どんな種類(整数や実数など)のデータを入れる箱であるかを予め決めなければならない。 これを型という 宣言: 変数を用意すること 変数の型と名前を指定しなければならない 宣言されていない変数は使えない 代入: 変数にデータを入れること 参照: 変数に入っているデータを利用すること Java 1 第3回

6 宣言:変数を用意する int型の変数 x を宣言する int x; double型の変数 a を宣言する double a;
のようにすると、整数(integer)を入れるための変数 x が用意される。 double型の変数 a を宣言する double a; のようにすると、実数を入れるための変数 a が用意される。 行末のセミコロン (;) を忘れないように。 Java 1 第3回

7 変数の宣言と初期化を同時にやってもよい int x; x=100; int x=100; 同等 Java 1 第3回

8 復習 変数の宣言と参照 int x; int y; x = 100; y = 200; int z; z = x + y;
復習  変数の宣言と参照 int x; int y; x = 100; y = 200; int z; z = x + y; 参照: データが取り出される データの行き先 Java 1 第3回

9 今回のテーマ ユーザの入力がある対話的プログラム 条件分岐(条件式によるプログラムの流れの分岐)
ユーザは入力ダイアログを介して、プログラムと対話する。 条件分岐(条件式によるプログラムの流れの分岐) if文, if-else文 比較の演算, trueとfalse Java 1 第3回

10 入力(input) 入力とは? ユーザからの入力の取得 コンピュータに情報(データ)を与えてやること。
裏返せば、コンピュータが外部から情報を取得すること。 ユーザからの入力の取得 今回は入力ダイアログによるデータ取得 ユーザはここに データを入力する。

11 典型的なプログラムの形 「入力→処理→出力」という形 1. 外部から刺激(入力=input)を受けとり、 2. 適切に何らかの処理を行い、
3. 反応(出力=output)を返す。 Java 1 第3回

12 「入力→処理→出力」の流れの例 答えを表示する 入力 出力 処理f f(x) = |x| f -2 2 xの値が、 … -2 ならば答えは2
(例)ある数値の絶対値を求めるプログラム 知りたい数値をユーザに入力してもらう。 入力値に応じて、答えを求める処理をする。 結果を出力する。 X ←知りたい絶対値は? xの値が、 -2 ならば答えは2 -1ならば答えは1 0 ならば答えは0 1 ならば答えは1 2 ならば答えは2 答えを表示する 入力 出力 処理f f(x) = |x| -2 2 Java 1 第3回

13 入力と出力の例 入力の例: 出力の例: 入力出力を合わせて入出力とも言う。(I/O)
キーボードの打鍵、マウスの動作、ファイルの読み込みなど。 出力の例: 画面上へのメッセージ表示、ファイルの書き出しなど 入力出力を合わせて入出力とも言う。(I/O)

14 入力ダイアログによるデータ取得 入力ダイアログ 取得したデータはその後の処理で用いる。 ユーザはここに データを入力する。
変数に代入し、後で参照させる。 値の型によって、取得方法を少し変える必要がある。 int, double, Stringの各型 100, 100.0, “100” ユーザはここに データを入力する。 “100”

15 整数データをユーザに入力させる (int型の値を取得する)
String ans = JOptionPane.showInputDialog(“整数を入力して下さい”); int input = Integer.parseInt(ans); この命令列で実行される内容 入力ダイアログが表示され、ユーザからの入力を待つ(「了解」ボタンが押されるまで) 入力されたデータをint型変数inputに代入 完了 Java 1 第3回

16 実際は入力の内容は一旦文字列値としてans1に保存される。それを整数値に変換している。
入力ダイアログを用いてユーザからの入力を取得しint型変数aに代入する。 package j1.lesson03; import javax.swing.*; public class EchoTwoInt {   public static void main(String[] args) {     String ans1 = JOptionPane.showInputDialog("input(a):");     int a = Integer.parseInt(ans1);     String ans2 = JOptionPane.showInputDialog("input(b)");     int b = Integer.parseInt(ans2);     System.out.println("aの値は" + a);     System.out.println("bの値は" + b);   } } 実際は入力の内容は一旦文字列値としてans1に保存される。それを整数値に変換している。 Java 1 第3回

17 実際は入力の内容は一旦文字列値としてans2に保存される。それを整数値に変換している。
入力ダイアログを用いてユーザからの入力を取得しint型変数bに代入する。 package j1.lesson03; import javax.swing.*; public class EchoTwoInt {   public static void main(String[] args) {     String ans1 = JOptionPane.showInputDialog("input(a):");     int a = Integer.parseInt(ans1);     String ans2 = JOptionPane.showInputDialog("input(b)");     int b = Integer.parseInt(ans2);     System.out.println("aの値は" + a);     System.out.println("bの値は" + b);   } } 実際は入力の内容は一旦文字列値としてans2に保存される。それを整数値に変換している。 Java 1 第3回 17

18 int型変数a, b に格納されている値をコンソールに出力
package j1.lesson03; import javax.swing.*; public class EchoTwoInt {   public static void main(String[] args) {     String ans1 = JOptionPane.showInputDialog("input(a):");     int a = Integer.parseInt(ans1);     String ans2 = JOptionPane.showInputDialog("input(b)");     int b = Integer.parseInt(ans2);     System.out.println("aの値は" + a);     System.out.println("bの値は" + b);   } } Java 1 第3回

19 実行画面 Java 1 第3回

20 実数データをユーザに入力させる (double型の値を取得する)
String ans = JOptionPane.showInputDialog(“実数を入力して下さい”); double input = Double.parseDouble(ans); この命令列で実行される内容 入力ダイアログからのユーザの入力を待つ(「了解」ボタンが押されるまで) 入力されたデータをdouble型変数inputに代入 完了 Java 1 第3回

21 実数データを取得して表示 package j1.lesson03; import javax.swing.*;
public class EchoDouble {     public static void main(String[] args) {        String ans1 =           JOptionPane.showInputDialog("実数を入力してください");        double input = Double.parseDouble(ans1);        System.out.println("入力された実数は" + input);     } } Java 1 第3回

22 入力ダイアログを用いてユーザからの入力を取得しdouble型変数inputに代入する。
package j1.lesson03; import javax.swing.*; public class EchoDouble {     public static void main(String[] args) {        String ans1 =            JOptionPane.showInputDialog("実数を入力してください");        double input = Double.parseDouble(ans1);        System.out.println("入力された実数は" + input);     } } 実際は入力の内容は一旦文字列値としてans1に保存される。それを実数値に変換している。 Java 1 第3回

23 double型変数inputに格納されている値をコンソールに出力する
package j1.lesson03; import javax.swing.*; public class EchoDouble {     public static void main(String[] args) {        String ans1 =            JOptionPane.showInputDialog("実数を入力してください");        double input = Double.parseDouble(ans1);        System.out.println("入力された実数は" + input);     } } Java 1 第3回

24 実行画面 Java 1 第3回

25 文字列データを入力させる (String型の値を取得する)
String ans = JOptionPane.showInputDialog(“文字列を入力してください”); この命令で実行される内容 入力ダイアログからのユーザの入力を待つ(「了解」ボタンが押されるまで) (入力されたデータは、実は文字列型の値として取得される。) 2.完了 Java 1 第3回

26 ここまでのまとめ:データを入力させる ① String ans = JOptionPane.showInputDialog(“入力”); ②
整数値を得るとき  int input = Integer.parseInt(ans); 実数値を得るとき  double input = Double.parseDouble(ans); 文字列データを得るとき  実は①で変数ansに入力した内容がすでに文字列として格納されている。 Java 1 第3回

27 条件によって処理を変える 「もし ~ ならば ~ 」 という処理が不可欠 入力 処理f 出力 答えを表示する xの値が、 …
(例)ある数値の絶対値を求めるプログラム 知りたい数値をユーザに入力してもらう。 入力値に応じて、答えを求める処理をする。 結果を出力する。 X ←知りたい絶対値は? xの値が、 -2 ならば答えは2 -1ならば答えは1 0 ならば答えは0 1 ならば答えは1 2 ならば答えは2 答えを表示する 入力 出力 処理f 「もし ~ ならば ~  」 という処理が不可欠 ふかけつ Java 1 第3回 27

28 次のように書く if ( a > 0 ){ b = a * 3; }
Java 1 第3回

29 if 文 (if statement) =「もし ~ ならば ~ 」
条件式 true if ( a > 0 ){ b = a * 3; } a > 0 a > 0 b = a * 3; b = a * 3; false then節 aの値が0より大きいときだけ代入文b = a * 3;が実行される。 (と)の間には式を書く。この式は条件式と呼ばれる。 条件式はboolean型の値(trueかfalseのどちらか)をとる。 aの値が0より大きいとき条件式a > 0の値はtrueとなり、そうでないときfalseとなる。 条件式の値がtrueとなるときだけ、then節に書かれた命令が実行される。 Java 1 第3回

30 条件の部分に書けるもの 20 + 30とかは書けない。 比較の演算などを書く。
10 < 100, 10 >100 はどちらもJavaの式 JOptionPane.showMessageDialog( null, 10 < 100); JOptionPane.showMessageDialog( null, 10 > 100); 式10 < 100は、「10 は100より小さい 」が正しいかどうかを判定する 正しい -- true(真) 式10 > 100は、「10は100より大きい 」が正しいかどうかを 判定する 正しくない – false(偽) 条件の部分に書けるのは、このように何かを判定する命令 これを述語(predicate)という。値がtrue,falseのどちらかになる式 Java 1 第3回 30

31 いろいろな比較の演算 比較演算の式の結果はtrueかfalseのどちらかの(boolean型)の値である。 比較演算 意味 a == b
aとbが等しければtrue、そうでなければfalse a != b aとbが等しくなければtrue、そうでなければfalse a >= b aがbより大きいか等しければtrue、そうでなければfalse a <= b aがbより小さいか等しければtrue、そうでなければfalse a > b aがbより大きいければtrue、そうでなければfalse a < b aがbより小さければtrue、そうでなければfalse Java 1 第3回

32 比較の演算の練習 次の表を紙に書き、各欄に演算の結果を埋めよ。 a: 55 b: 60 a: 60 b: 60 a: 65 b: 60 ==
55 == 60 false 60 == 60 true 65 == 60 != 55 != 60 60 != 60 65 != 60 >= 55 >= 60 60 >= 60 65 >= 60 <= 55 <= 60 60 <= 60 65 <= 60 > 55 > 60 60 > 60 65 > 60 < 55 < 60 60 < 60 65 < 60 Java 1 第3回

33 下記の二つの文の意味の違いに注意 if ( a > 0 ){ b = a * 3; } if ( a >= 0 ){
Java 1 第3回 33

34 if-else 文 (if-else statement) =「もし ~ ならば ~ それ以外は~ 」
条件式 false if ( a > 0 ){ b = a * 3; } else {   b = 0; } a > 0 a > 0 b = a * 3; true b = a * 3; b = 0; b = 0; then節 else節 aの値が0より大きい場合(a > 0 の結果がtrue) then節の代入文「b = a * 3;」が実行され、 そうでない場合(a > 0の結果がfalse)は else節の代入文「b = 0;」が実行される Java 1 第3回

35 ifやif-elseではプログラムの流れは分岐する。 後で合流していることも忘れずに。
false a > 0 true b = a * 3; b = 0; 合流 ぶんき Java 1 第3回

36 ユーザの入力するデータによって、 違う処理を行う例(例題5)
package j1.lesson03; import javax.swing.*; public class Exercise05 { public static void main(String[] args) { String ans = JOptionPane.showInputDialog("数学の試験は何点でしたか?"); int markMath = Integer.parseInt(ans); if (markMath < 60) { JOptionPane.showMessageDialog(null, "残念、不合格"); } else { JOptionPane.showMessageDialog(null, "合格、おめでとう"); } Java 1 第3回

37 入力ダイアログを用いてユーザからの入力を取得しint型変数markMathに代入する。
package j1.lesson03; import javax.swing.*; public class Exercise05 { public static void main(String[] args) { String ans = JOptionPane.showInputDialog("数学の試験は何点でしたか?"); int markMath = Integer.parseInt(ans); if (markMath < 60) { JOptionPane.showMessageDialog(null, "残念、不合格"); } else { JOptionPane.showMessageDialog(null, "合格、おめでとう"); } Java 1 第3回

38 markMathの値が60未満なら “残念、不合格” そうでなければ“合格おめでとう” をダイアログで出力
package j1.lesson03; import javax.swing.*; public class Exercise05 { public static void main(String[] args) { String ans = JOptionPane.showInputDialog("数学の試験は何点でしたか?"); int markMath = Integer.parseInt(ans); if (markMath < 60) { JOptionPane.showMessageDialog(null, "残念、不合格"); } else { JOptionPane.showMessageDialog(null, "合格、おめでとう"); } Java 1 第3回

39 if~else if ~ else …(1) 0より小さい値は警告する
if (markMath < 0) {   JOptionPane.showMessageDialog(null, "入力誤り:負の値です。"); } else if (markMath < 60) {   JOptionPane.showMessageDialog(null, "残念、不合格"); } else {   JOptionPane.showMessageDialog(null, "合格、おめでとう"); } Java 1 第3回

40 if~else if ~ else … if (markMath < 0) { //負の値
  //負の値 } else if (markMath < 60) {   //不合格 } else {   //合格 } markMath < 0 false markMath < 60 false true true 負の値 不合格 合格 Java 1 第3回 40

41 if~else if ~ else …(2) 100より大きい値は警告する
if (markMath < 0) {   JOptionPane.showMessageDialog(null, "入力誤り:負の値です。"); } else if (markMath > 100) { JOptionPane.showMessageDialog(null, “入力誤り:大きい値です。"); } else if (markMath < 60) {   JOptionPane.showMessageDialog(null, "残念、不合格"); } else {   JOptionPane.showMessageDialog(null, "合格、おめでとう"); } Java 1 第3回

42 if~else if ~ else .. if (条件1) { //条件1がtrueのときの処理 } else if (条件2) {
} else if (条件n) { //条件nがtrueのときの処理 } else { //上記条件がどれもtrueでない時の処理。 } 42 Java 1 第3回

43 注意 then節やelse節が1命令(1文) の場合は、下記のようにも書ける。 本講義では左の書き方を推奨する。
  if ( a > 0 ){    b = a * 3;   }   if ( a > 0 )    b = a * 3; 2命令以上の場合は、 {と}で囲む。   if ( a > 0 ){    b = a * 3; c = b * a;   } else { b = 0; }   if ( a > 0 ) ){    b = a * 3; c = b * a;  }  else b = 0; Java 1 第3回

44 今回のテーマ(まとめ) プログラムの実行を追う。 ユーザの入力がある対話的プログラム 条件分岐(条件式によるプログラムの流れの分岐)
コンピュータの動作をシミュレーションする。 ユーザの入力がある対話的プログラム ユーザは入力ダイアログを介して、プログラムと対話する。 条件分岐(条件式によるプログラムの流れの分岐) if文, if-else文 比較の演算, trueとfalse Java 1 第3回 44

45 付録:入力→処理→出力 ある数値の絶対値を知りたいときは、 入力 X ←知りたい絶対値は? 知りたい数値をユーザに入力してもらう。
入力値に応じて、答えを求める処理をする。 結果を出力する。 X ←知りたい絶対値は? xの値が、 -2 ならば答えは2 -1ならば答えは1 0 ならば答えは0 1 ならば答えは1 2 ならば答えは2 処理f f(x) = |x| 出力 答えを表示する Java 1 第3回

46 絶対値の計算(1) -2から2の入力に対してしか正解は出ないが、 このやり方で一部の入力に対する絶対値は表示できる。
//入力 String ans = JOptionPane.inputMessageDialog (“知りたい絶対値は?”); int input = Integer.parseInt(ans); //処理 int result = 0; //初期値設定 if (input == -2) { result = 2; } else if (input == -1) { result = 1; } else if (input == 0) { result = 0 ;} else if (input == 1) {result = 1;} else if (input == 2) {result = 2;} //出力 JOptionPane.showMessageDialog(null, “答えは”+result); X ←知りたい絶対値は? xの値が、 -2 ならば答えは2 -1ならば答えは1 0 ならば答えは0 1 ならば答えは1 2 ならば答えは2 答えを表示する 入力 出力 処理f -2から2の入力に対してしか正解は出ないが、 このやり方で一部の入力に対する絶対値は表示できる。 (int型の値は、2の32乗通りなので、それを書き下せば 原理的には、このやり方でいける。) Java 1 第3回

47 絶対値の計算(2) |x| = -x (x < 0のとき) = x (x >= 0のとき) //入力
String ans = inputMessageDialog(“知りたい絶対値は?”); int input = Integer.parseInt(ans); //処理 int result = 0; If (input < 0) {   result = -input; } else {   result = input; } //出力 JOptionPane.showMessageDialog(null, “答えは”+result); X ←知りたい絶対値は? xの値が、 -2 ならば答えは2 -1ならば答えは1 0 ならば答えは0 1 ならば答えは1 2 ならば答えは2 答えを表示する 入力 出力 処理f |x| = -x (x < 0のとき) = x (x >= 0のとき) Java 1 第3回

48 絶対値の計算(3) Javaではすでに絶対値の計算をする方法が 標準のやり方として用意されているので、 これを使うのが普通。
X ←知りたい絶対値は? xの値が、 -2 ならば答えは2 -1ならば答えは1 0 ならば答えは0 1 ならば答えは1 2 ならば答えは2 答えを表示する 入力 出力 処理f // 入力 String ans = inputMessageDialog(“知りたい絶対値は?”); int input = Integer.parseInt(ans); // 処理 int result = Math.abs(input); //出力 JOptionPane.showMessageDialog(null, “答えは”+result); Javaではすでに絶対値の計算をする方法が 標準のやり方として用意されているので、 これを使うのが普通。 Java 1 第3回

49 例題集

50 □例題1 ダイアログによる入力 問題:入力ダイアログを用いてユーザから入力を得て、 その入力内容を表示するプログラムを作成せよ。
□例題1 ダイアログによる入力 問題:入力ダイアログを用いてユーザから入力を得て、 その入力内容を表示するプログラムを作成せよ。 入力ダイアログ String ans =    JOptionPane.showInputDialog(“何か入力してください"); 出力 System.out.println(“あなたが入力した内容:” + ans); (プログラム名: Exercise01.java) Java 1 第3回

51 パッケージ 今回は j1.lesson03 というパッケージを作成する。 パッケージの作成は毎回の演習の最初に行うことを原則とする。
Java 1 第3回

52 パッケージの作成 「java2009」プロジェクトの左側にある「+」をクリック ツリーが展開されるので、「src」の上で右クリック
マウスカーソルを「新規」に合わせる 「パッケージ」をクリック Java 1 第3回

53 パッケージ名の入力 「新規 Java パッケージ」というウィンドウが開くので、 「名前」欄に半角文字 で
「j1.lesson03」と入力する 。 正しく入力できたことを確認したら、右下の「終了」ボタンをクリックして確定する。 j1.lesson03 Java 1 第3回

54 クラスの作成 クラス = プログラム と思ってよい
クラスの作成 クラス = プログラム と思ってよい 先ほど作成したパッケージ 「j1.lesson03」の上で右クリック マウスカーソルを「新規」に合わせる 「クラス」をクリック Java 1 第3回

55 手順2:プログラムを編集する。 ダイアログに入力された内容を変数ansに代入し、 ansの値をコンソールに出力する。
package j1.lesson03; import javax.swing.*; public class Exercise01 { public static void main(String[] args) { String ans = JOptionPane.showInputDialog("何か入力してください"); System.out.println("あなたが入力した内容:" + ans); } ダイアログに入力された内容を変数ansに代入し、 ansの値をコンソールに出力する。 Java 1 第3回

56 実行結果 Java 1 第3回

57 □例題2 ダイアログによる入力(2)  問題:入力ダイアログを用い、数学と英語の試験の 合計点、平均点を求め,ダイアログに表示するプ ログラムを作成せよ。 String ans1 =   JOptionPane.showInputDialog(“数学の試験は何点でしたか?"); int markMath = Integer.parseInt(ans1);      //英語についても上3行と同じように int sum //英語の点数+数学の点数 double average // (sum / 2.0)      //sumとaverageをダイアログで表示 (プログラム名:Exercise02.java) Java 1 第3回

58 手順1:パッケージj1.lesson03内に Exercise02クラスを作る。 手順2:プログラムを編集する。
package j1.lesson03; import javax.swing.JOptionPane; public class Exercise02 { public static void main(String[] args) { String ans1 = JOptionPane.showInputDialog("数学の試験は何点でしたか?"); String ans2 = JOptionPane.showInputDialog("英語の試験は何点でしたか?"); int markMath = Integer.parseInt(ans1); int markEnglish = Integer.parseInt(ans2); int sum = markMath + markEnglish; double average = sum / 2.0; JOptionPane.showMessageDialog(null, "合計点:" + sum + "\n平均点:" + average); } 入力 処理 入力の部分はP27などの説明とは、 命令を置く順番が少し違うが問題 はない。 出力 Java 1 第3回

59 手順3:実行する

60 □例題3 関係演算子 問題:入力ダイアログを用いて数学の試験の点数が 60点より高いか調べるプログラムを作成せよ
□例題3 関係演算子  問題:入力ダイアログを用いて数学の試験の点数が 60点より高いか調べるプログラムを作成せよ String ans = JOptionPane.showInputDialog(“数学            の試験は何点でしたか?"); int markMath = Integer.parseInt(ans); System.out.println(markMath > 60); (プログラム名:Exercise03.java) Java 1 第3回

61 手順1:パッケージj1.lesson03内に Exercise03クラスを作る。 手順2:プログラムを編集する。
package j1.lesson03; import javax.swing.JOptionPane; public class Exercise03 {  public static void main(String[] args) {   String ans =     JOptionPane.showInputDialog(“数学の試験は何点でしたか?");   int markMath = Integer.parseInt(ans);   System.out.println(markMath > 60);  } } Java 1 第3回

62 手順3:実行する Java 1 第3回

63 □例題4 条件分岐 問題:入力ダイアログを用いて年号あてクイズを作成せよ (プログラム名:Exercise04.java)
□例題4  条件分岐  問題:入力ダイアログを用いて年号あてクイズを作成せよ String ans = JOptionPane.showInputDialog(“鎌倉幕府が開かれたのは何年?"); int year = Integer.parseInt(ans); if ( _______ ) {//yearと1192が等しければ       JOptionPane.showMessageDialog(null, "正解"); } else {       JOptionPane.showMessageDialog(null, "不正解"); } (プログラム名:Exercise04.java) Java 1 第3回

64 手順1:パッケージj1.lesson03内に Exercise04クラスを作る。 手順2:プログラムを編集する。
package j1.lesson03; import javax.swing.*; public class Exercise04 {   public static void main(String[] args) {      String ans = JOptionPane.showInputDialog(“鎌倉幕府が開かれたの                                                   は何年?");      int year = Integer.parseInt(ans);      if (year == 1192) {         JOptionPane.showMessageDialog(null, "正解");      } else {         JOptionPane.showMessageDialog(null, "不正解"); }   } 入力 処理 出力 Java 1 第3回

65 手順3:実行する。 Java 1 第3回

66 入力→処理→出力をもう少しはっきりさせたプログラムの例
package j1.lesson03; import javax.swing.*; public class Exercise04 {   public static void main(String[] args) {      String result; //結果を保存するための変数を用意する。      String ans = JOptionPane.showInputDialog (“鎌倉幕府が開かれたのは何年?");      int year = Integer.parseInt(ans);      if (year == 1192) {         result = "正解";      } else {         result = "不正解"; } JOptionPane.showMessageDialog(null,result);   } 入力 処理 出力 Java 1 第3回 66

67 □例題5 条件分岐(2) 問題:入力ダイアログを用い試験の合格判定プログラムを作成せよ。 (プログラム名:Exercise05.java)
□例題5 条件分岐(2) 問題:入力ダイアログを用い試験の合格判定プログラムを作成せよ。 String ans = JOptionPane.showInputDialog (“数学の試験は何点でしたか?"); int markMath = Integer.parseInt(ans); if( _______ ) {//markMathが60未満ならば //不合格のメッセージダイアログ } else {   //合格のメッセージダイアログ } (プログラム名:Exercise05.java) Java 1 第3回

68 手順1:パッケージj1.lesson02内に Exercise05クラスを作る。 手順2:プログラムを編集する。
package j1.lesson03; import javax.swing.*; public class Exercise05 { public static void main(String[] args) { String ans = JOptionPane.showInputDialog("数学の試験は何点でしたか?"); int markMath = Integer.parseInt(ans); if (markMath < 60){ JOptionPane.showMessageDialog(null, "残念、不合格"); } else { JOptionPane.showMessageDialog(null, "合格、おめでとう"); } Java 1 第3回

69 手順3:実行する。 サンプルプログラムでは、不合格の処理(例外的な事柄) が先(then節)に書かれているが、実際には、左のように
if( _______ ) {//markMathが60以上ならば //合格のメッセージダイアログ } else {   //不合格のメッセージダイアログ } サンプルプログラムでは、不合格の処理(例外的な事柄) が先(then節)に書かれているが、実際には、左のように 合格が上にくるように書く方が本当は良い。 (各自書き直してみよ。) Java 1 第3回

70 □例題6 条件分岐(3) 問題:例題5の合格判定プログラムを基に、入力が負の値だった場合にメッセージをダイアログで表示するプログラムを作成せよ。 String ans = JOptionPane.showInputDialog(“数学の試験は何点でしたか?"); int markMath = Integer.parseInt(ans); if ( _______ ){ //markMathが0未満ならば //入力値誤りのメッセージダイアログ } else if( _______ ){ //markMathが60未満ならば //不合格のメッセージダイアログ } else { //合格のメッセージダイアログ } (プログラム名:Exercise06.java) Java 1 第3回

71 手順1:パッケージj1.lesson02内に Exercise06クラスを作る。 手順2:プログラムを編集する。
package j1.lesson03; import javax.swing.*; public class Exercise06 { public static void main(String[] args) { String ans = JOptionPane.showInputDialog("数学の試験は何点でしたか?"); int markMath = Integer.parseInt(ans); if (markMath < 0){ JOptionPane.showMessageDialog(null, "入力誤り:負の値です。"); } else if (markMath < 60){ JOptionPane.showMessageDialog(null, "残念、不合格"); } else { JOptionPane.showMessageDialog(null, "合格、おめでとう"); } Java 1 第3回

72 手順3:実行する。 Java 1 第3回

73 □例題7 (optional) 問題:例題5の合格判定プログラムを基に、さらに点数が80点以上だった場合は褒めてあげるプログラムを作成せよ。
String ans = JOptionPane.showInputDialog(“数学の試験は                         何点でしたか?"); int markMath = Integer.parseInt(ans); if( _____ ){ //markMathが60未満ならば    //不合格のメッセージダイアログ } else { //合格のメッセージダイアログ if( _____ ){ //markMathが80点以上ならば //褒めるメッセージダイアログ } (プログラム名:Exercise07.java) Java 1 第3回

74 手順1:パッケージj1.lesson03内にExercise07クラスを作る。
手順2:プログラムを編集する。 package j1.lesson03; import javax.swing.*; public class Exercise07 { public static void main(String[] args) { String ans = JOptionPane.showInputDialog("数学の試験は何点でしたか?"); int markMath = Integer.parseInt(ans); if (markMath < 60){ JOptionPane.showMessageDialog(null, "残念、不合格"); } else { JOptionPane.showMessageDialog(null, "合格、おめでとう"); if (markMath >= 80){ JOptionPane.showMessageDialog(null, "君、優秀じゃないか"); } Java 1 第3回

75 手順3:実行する。 Java 1 第3回

76 課題 各自のペースで 「第03週目の課題」をやってみよう
をブラウザで開く 第03回 – Conditional Branch (if-else) - をクリック 第03週目課題をクリック Java 1 第3回

77 ゴールデンウィークの課題 (提出日:2009/05/12) 2009/05/12に小テストがあります!
lesson01_huang.ppt から lesson03_huang.pptまですべての例題と演習を復習しなさい。 lesson02_huang.pptにある例題1-1 (p56), 1-2 (p60), 1-3(p63),     1-4(p66),1-5(p72), 1-6(p75)のプログラムを紙に手で書きなさい。 第二回の演習のプログラム(4つ)を紙に手で書きなさい。 lesson03_huang.pptにある例題1(p54), 2(p57), 3(p60), 4(p63), 5(p67), 6(p71), 7(p73)のプログラムを紙に手で書きなさい。 第三回の演習のプログラム(4つ)を紙に手で書きなさい。 6.   lesson01_huang.ppt から lesson03_huang.pptまですべての課題を復習しなさい Java 1 第3回


Download ppt "ゴールデンウィークの課題 (提出日:2009/05/12) 2009/05/12に小テストがあります!"

Similar presentations


Ads by Google