Помогите по паскалю
Посмотрите пожалуйста программу, почему при большом значении дискриминанта в биквадратном уравнении выдает не число
Nikita Zelnickiy Ученик (122), Вопрос открыт 1 минуту назад
var a,b,c,d,e,x,q,s:real;
K:integer;
begin
Write ('Выберите тип уравнения : 1 - Квадратное уравнение стандартного вида 2 - Биквадратное уравнение стандартного вида ');
Readln(K);
Case K of
1 : begin write('Внесите коэффицент a ');readln(a);
write('Внесите коэффицент b ');readln(b);
write('Внесите коэффицент c ');readln(c);
d:= sqr (b) - 4 * a * c ;
Writeln('Дискриминант = ',d);
if (d < 0 ) then write ('Нет решения ')
else begin
if (d = 0 ) then write('Один корень');
writeln(' ');
write (' Дискриминант =');
writeln (d);
x:= ((- b) + sqrt (d)) / 2 * a ;
e:= ((- b) - sqrt (d)) / 2 * a ;
write ('x1 =');
writeln (x);
write ('x2 =');
writeln (e);
end;
end;
2 : begin Write ('Внесите коэффицент a ');readln(a);
write('Внесите коэффицент b ');readln(b);
write('Внесите коэффицент c ');readln(c);
d:= sqr (b) - 4 * a * c ;
Writeln('Дискриминант = ',d);
if (d < 0 ) then write ('Нет решения ')
else begin
x := sqrt (((- b) + sqrt (d)) / ( 2 * a));
e:= sqrt (((- b) - sqrt (d)) / (2 * a)) ;
writeln ('x2 =',(-x));
writeln ('x1 =',x);
writeln ('x4 =',(-e));
writeln ('x3 =',e);
end;
end;
end;
readln;
end.
насколько больших?
у меня при a=1, b=1е9, c=1 выдаёт примерно правильные корни
не менее удивительно, то при Д=0 уравнение имеет 2 ОДИНАКОВЫХ корня (близнецы)
Удивительно, что ещё возвращает какие-то корни!!!
Ты не знаешь, что в программировании что-то / 2 * a = что-то * 2 / a.
А не что-то / (2 * a) !!!