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

Slides:



Advertisements
Similar presentations
山元進.  for 文  while 文  do ~ while 文  文のネスト  break 文  continue 文.
Advertisements

プログラミング論 第八回数字の計算,整数の入出力. 本日の内容 前回の課題(続き) 前回の課題(続き) 数字の計算をする 数字の計算をする – 加減乗除を行う – インクリメント演算子とデクリメン ト演算子.
1 情報基礎 A 第 5 週 EXCEL 2 徳山 豪・全眞嬉 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野.
1 情報基礎 A 第 6 週 EXCEL 3 徳山 豪・全 眞嬉 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野.
プログラミング実習 1 ・ 2 ク ラス 第 2 週目 担当教員 : 渡邊 直樹. 課題 2 ● 2 × 2型行列の固有値, 固有ベクトルを求め る EigMatrix.java というプログラムを作成せ よ。 ● 行列の各要素はコマンド・プロンプトから入力 ● 計算した結果もコマンド・プロンプトに表示.
プログラミング 平成24年1月11日 森田 彦.
社会人学習講座 「Javaプログラミング概論」
情報処理演習 (秋学期・樋口担当) 2回目 10/1 日本工業大学 コンピュータリテラシーII.
エクセル(7)の目次 関数の書式 関数ウィザードの使い方 四捨五入/切り上げ/切り捨て IF関数 問題(1) 問題(2) 問題(3)
プログラミング基礎I(再) 山元進.
徳山豪 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野
プログラミング言語としてのR 情報知能学科 白井 英俊.
情報アプリケーション1 2008年 11月 19日 第二回資料 担当 重定 如彦 .
ファーストイヤー・セミナーⅡ 第8回 データの入力.
配列(2) 第10回[平成15年6月26日(木)]:PN03-10.ppt 今日の内容 1 素数を求める(教科書の例):復習
プログラミング基礎I(再) 山元進.
プログラミング入門2 第1回 導入 情報工学科 篠埜 功.
プログラミング基礎I(再) 山元進.
情報基礎A 第10週 プログラミング入門 VBAの基本文法2 データ型・If ~Then~Else
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
String - 文字列 2009年10月9日 7ADD2116 佐藤洋輔.
情報基礎A 第7週 プログラミング入門 VBAの基本文法2 データ型・If ~Then~Else
プログラミング実習 1・2 クラス 第 1 週目 担当教員:  渡邊 直樹.
情報基礎A 第11週 プログラミング入門 VBAの基本文法3 配列・For~Next
プログラミング 平成24年10月30日 森田 彦.
第7回 条件による繰り返し.
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
第2回 Microsoft Visual Studio C++ を使ってみよう
情報工学科 3年生対象 専門科目 システムプログラミング 第5回、第6回 ヒアドキュメント レポート課題 情報工学科 篠埜 功.
プログラミング 平成25年11月5日 森田 彦.
プログラミング言語入門 手続き型言語としてのJava
JAVA入門.
第9章 例外処理,パッケージ 9.1 例外処理 9.2 ガーベッジコレクション.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也.
第二回 VB講座 電卓を作ろう.
プログラミング入門 電卓を作ろう・パートIV!!.
アルゴリズムとプログラミング (Algorithms and Programming)
プログラミング入門2 第2回 型と演算 条件分岐 篠埜 功.
第1回 プログラムの基本 他人が読めるプログラムを書く.
関数の書式 ● SUM関数、AVARAGE関数など代表的ないくつかの関数の書式(数式の構文)は、下記のようなものである。 =関数名(引数1,引数2,引数3,・・・・・) ●引数(入力データ)は、数値で入力しても、セル名で指定してもよい。 例: =SUM(A1:A10,B21:B30,C31:C40)
第7回 条件による繰り返し.
情報処理Ⅱ 第2回:2003年10月14日(火).
プログラミングⅠ 平成30年10月22日 森田 彦.
C言語 はじめに 2016年 吉田研究室.
アルゴリズムとプログラミング (Algorithms and Programming)
基礎プログラミング演習 第6回.
JAVA GUIプログラミング 第3回 イベント処理① マウスイベント.
プログラミングⅡ 第2回.
計算機プログラミングI 木曜日 1時限・5時限 担当: 増原英彦 第1回 2002年10月10日(木)
プログラミング入門 電卓を作ろう・パートI!!.
計算機プログラミングI 第3回 プリミティブ値 クラスメソッド クラス変数 式と演算 変数の利用
ウェブデザイン演習 第6回.
C言語講座 制御(選択) 2006年 計算技術研究会.
地域情報学 C言語プログラミング 第3回 入力、if文、for文 2016年11月25日
JAVA入門⑥ クラスとインスタンス.
標準入出力、変数、演算子、エスケープシーケンス
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
情報処理Ⅱ 第2回 2004年10月12日(火).
地域情報学 C言語プログラミング 第3回 入力、if文、for文 2017年11月1日
プログラミング 平成28年10月25日 森田 彦.
プログラミング1 プログラミング演習I 第2回.
プログラミング入門2 第5回 配列 変数宣言、初期化について
printf・scanf・変数・四則演算
復習 いろいろな変数型(2) char 1バイト → 英数字1文字を入れるのにぴったり アスキーコード → 付録 int
C言語講座 四則演算  if ,  switch 制御文.
分岐(If-Else, Else if, Switch) ループ(While, For, Do-while)
第1章 文字の表示と計算 printfと演算子をやります.
計算機プログラミングI 第2回 2002年10月17日(木) 履習登録 複習 ライブラリの利用 (2.6-7) 式・値・代入 (2.6-8)
計算機プログラミングI 第5回 2002年11月7日(木) 配列: 沢山のデータをまとめたデータ どんなものか どうやって使うのか
ファーストイヤー・セミナーⅡ 第10回 if文による選択処理(2).
Presentation transcript:

ゴールデンウィークの課題 (提出日: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)のプログラムを紙に手で書きなさい。 http://java2009.cis.k.hosei.ac.jp/materials/lecture02/practice02.html 第二回の演習のプログラム(4つ)を紙に手で書きなさい。 lesson03_huang.pptにある例題1(p54), 2(p57), 3(p60), 4(p63), 5(p67), 6(p71), 7(p73)のプログラムを紙に手で書きなさい。 5. http://java2009.cis.k.hosei.ac.jp/materials/lecture03/practice03.html 第三回の演習のプログラム(4つ)を紙に手で書きなさい。 6.   lesson01_huang.ppt から lesson03_huang.pptまですべての課題を復習しなさい Java 1 第3回

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

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

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

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

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

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

復習 変数の宣言と参照 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回

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

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

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

「入力→処理→出力」の流れの例 答えを表示する 入力 出力 処理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| f -2 2 Java 1 第3回

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

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

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

実際は入力の内容は一旦文字列値として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回

実際は入力の内容は一旦文字列値として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

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回

実行画面 Java 1 第3回

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

実数データを取得して表示 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回

入力ダイアログを用いてユーザからの入力を取得し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回

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回

実行画面 Java 1 第3回

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

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

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

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

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回

条件の部分に書けるもの 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

いろいろな比較の演算 比較演算の式の結果は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回

比較の演算の練習 次の表を紙に書き、各欄に演算の結果を埋めよ。 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回

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

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回

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

ユーザの入力するデータによって、 違う処理を行う例(例題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回

入力ダイアログを用いてユーザからの入力を取得し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回

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回

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回

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

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回

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

注意 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回

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

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

絶対値の計算(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回

絶対値の計算(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回

絶対値の計算(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回

例題集

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

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

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

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

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

手順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回

実行結果 Java 1 第3回

□例題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回

手順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回

手順3:実行する

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

手順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回

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

□例題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回

手順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回

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

入力→処理→出力をもう少しはっきりさせたプログラムの例 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

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

手順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回

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

□例題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回

手順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回

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

□例題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回

手順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回

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

課題 各自のペースで 「第03週目の課題」をやってみよう http://java2009.cis.k.hosei.ac.jp/ をブラウザで開く 第03回 – Conditional Branch (if-else) - をクリック 第03週目課題をクリック Java 1 第3回

ゴールデンウィークの課題 (提出日: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)のプログラムを紙に手で書きなさい。 http://java2009.cis.k.hosei.ac.jp/materials/lecture02/practice02.html 第二回の演習のプログラム(4つ)を紙に手で書きなさい。 lesson03_huang.pptにある例題1(p54), 2(p57), 3(p60), 4(p63), 5(p67), 6(p71), 7(p73)のプログラムを紙に手で書きなさい。 5. http://java2009.cis.k.hosei.ac.jp/materials/lecture03/practice03.html 第三回の演習のプログラム(4つ)を紙に手で書きなさい。 6.   lesson01_huang.ppt から lesson03_huang.pptまですべての課題を復習しなさい Java 1 第3回