import java.lang.Math;
import java.util.Scanner;
public class Main
{
public static void main(String[] args) {
double x;
Scanner s = new Scanner(System.in);
System.out.println("Please Enter x =");
x = s.nextDouble();
if (x >= 0) {
System.out.printf("sqrt(x) = %8.3fn", Math.sqrt(x));
} else {
System.out.printf("out of range, x = %8.3fn", x);
}
}
}
15
条件式
条件が成り立つ場合に実行され
る部分
条件が成り立たない場合に実行
される部分
プログラム実行順
17
System.out.println("Please Enter x =");
x = s.nextDouble();
System.out.printf("sqrt(x) = %8.3fn", Math.sqrt(x));
メッセージ
「Please Enter x =」を表示
浮動小数点数データを読み込み
平方根を計算し,計算
結果を表示
終わり
Yes
No
条件分岐
x >= 0
System.out.printf("sqrt(x) = %8.3fn", Math.sqrt(x));
メッセージと x の値
を表示
定形郵便物の料金
22
Yes
No
C
B
x <= 25
x <= 50 A
Yes
A, B, C のうちどれか1つを実行
No System.out.println("84 Yen");
System.out.println("94 Yen");
System.out.println("Too heavy");
import java.lang.Math;
import java.util.Scanner;
public class Main
{
public static void main(String[] args) {
double x;
Scanner s = new Scanner(System.in);
System.out.println("juuryou?");
x = s.nextDouble();
if (x <= 25) {
System.out.println("84 Yen");
} else if (x <= 50 ) {
System.out.println("94 Yen");
} else {
System.out.println("Too heavy");
}
}
}
23
このうちどれか1つ
が実行される
例題3.2次方程式
• 2次方程式 ax2 + by + c = 0 の解を求めるプログ
ラムを作る
• 重解,虚数解も正しく求めるために,判別式 b2 -4ac
の値で条件分岐する
• 「a=0」の場合は考えない
24
D = b2 - 4ac とする
1) 判別式 D > 0 のとき
2) D = 0 のとき
3) D < 0 のとき
•25
a
D
b
a
D
b
x
2
,
2
,
2a
b
x
a
D
i
b
a
D
i
b
x
2
,
2
異なる2実数解
重解
異なる2虚数解
import java.lang.Math;
import java.util.Scanner;
public class Main
{
public static void main(String[] args) {
double a, b, c, D;
Scanner s = new Scanner(System.in);
System.out.println("Please Enter a =");
a = s.nextDouble();
System.out.println("Please Enter b =");
b = s.nextDouble();
System.out.println("Please Enter c =");
c = s.nextDouble();
D = b * b - 4 * a * c;
if (D > 0) {
System.out.printf("x = %8.3f, %8.3fn",
(-b + Math.sqrt(D)) / (2 * a),
(-b - Math.sqrt(D)) / (2 * a));
} else if (D == 0) {
System.out.printf("x = %8.3fn", -b / (2*a));
} else {
System.out.printf("x = %8.3f + %8.3f i, %8.3f - %8.3f in",
-b / (2 * a), Math.sqrt(-D) / (2 * a),
-b /(2 * a), Math.sqrt(-D) / (2 * a));
}
}
} 26
D > 0 のとき
D = 0 のとき
D < 0 のとき
import java.lang.Math;
import java.util.Scanner;
public class Main
{
public static void main(String[] args) {
double a, b, c, d;
Scanner s = new Scanner(System.in);
System.out.println("Please Enter a =");
a = s.nextDouble();
System.out.println("Please Enter b =");
b = s.nextDouble();
System.out.println("Please Enter c =");
c = s.nextDouble();
if ((a == 0) && (b == 0)) {
System.out.println("a=0 and b=0!");
} else {
d = Math.abs(c) / Math.sqrt(a * a + b * b);
System.out.printf("d = %8.3fn", d);
}
}
} 30
条件が成り立つ場合に
実行される部分
条件が成り立たない
場合に実行される部分