#/*********************************************************** # quadeq.rb -- 2次方程式 #***********************************************************/ printf("a = "); a = gets.to_f printf("b = "); b = gets.to_f printf("c = "); c = gets.to_f if (a != 0) b /= a; c /= a; # $a$ で割って $x^2 + bx + c = 0$ の形にする if (c != 0) b /= 2; # $x^2 + 2b'x + c = 0$ d = b * b - c; # 判別式 $D / 4$ if (d > 0) if (b > 0); x = -b - Math::sqrt(d) else; x = -b + Math::sqrt(d); end printf("x = %g, %g\n", x, c / x) elsif (d < 0) printf("x = %g +- %g i\n", -b, Math::sqrt(-d)) else printf("x = %g\n", -b) end else printf("x = %g, 0\n", -b) end elsif (b != 0) printf("x = %g\n", -c / b) elsif (c != 0) printf("解なし.\n") else printf("不定.\n") end exit 0