次に示すプログラムは、二次方程式
の係数a,b,c(
)を実数値の入力として読みこんで、
実根が存在するときには2つの実根を出力するプログラムです。
2次方程式の根の公式によると判別式を
とおくと、二つの根は、
ならば
D < 0ならば
でした。これに素直に従ってプログラムを作成すると、
program eq1(input,output);
var a, b, c, d, sd, x1, x2 : real;
begin
read(a,b,c);
if a = 0 then
writeln('a should be non-zero')
else
begin
d := sqr(b) - 4*a*c;
if d >= 0 then
begin
sd := sqrt(d);
x2 := (-b - sd)/(2*a);
x1 := (-b + sd)/(2*a);
writeln(x1);
writeln(x2)
end
else writeln('Imaginary root')
end
end.
となります。