Другие языки программирования и технологии

Не могу разобраться в чём проблема в pascal

Program doza;
var a,b,c,x1,x2,d:real;
begin
writeln ('a,b,c');
readln (a,b,c);
d:=b*b-4*a*c;
if (d>0) then writeln ('2 корня');
x1:=-b+sqrt (d);
x2:=-b-sqrt (d);
writeln ('x1=',x1);
writeln ('x2=',x2);
end;
begin
if (d=0) then writeln ('1 корень');
x1:=-b/2*a
end.
Знаю, что не по теме, но зачем вы программируете на паскале?
Александр Павлов
Александр Павлов
2 342
Лучший ответ
Михаил Чернышов мне это интересно
От первого if и до конца кода:

if d>0 then begin
writeln('2 корня');
x1:=(-b-sqrt(d))/(2*a);
x2:=(-b+sqrt(d))/(2*a);
writeln('x1=',x1);
writeln('x2=',x2)
end else if d=0 then begin
writeln('1 корень');
x1:=-b/(2*a);
writeln('x1=',x1)
end else
writeln('корней нет')
end.

P.S. А на уроках математики ты 'sin (' пишешь - с пробелом между именем функции и круглой скобкой?
Асхат -21
Асхат -21
74 945
И что? Не знаешь формулу для корней квадратного уравнения? И ещё лезешь в программирование!!!

begin / end - это основа основ
Михаил Чернышов мой познание паскаля это 6 уроков по информатике 9 класса
Михаил Чернышов так в чём ошибка?
при Д=0 2 одинаковых корня!
if (d>=0) then writeln ('2 корня');
// x1:=-b+sqrt (d); чушь!!!
// x2:=-b-sqrt (d);
writeln ('x1=',x1);
writeln ('x2=',x2);
end;
Максим Щербина
Максим Щербина
95 955
Даже если убрать лишние красный end и begin под ним - всё равно не правильно! Правильные значения корней в невырожденном квадратном уравнении (т. е. при a≠0) такие:
x1,2=(-b±√D)/(2·a).
Но при расчётах на ЭВМ вычисления обычно производятся с ограниченной точностью. Поэтому вот так вот писàть могут только дауны:
x1:=(-b-sqrt(d))/(2*a);
x2:=(-b+sqrt(d))/(2*a);
В общем случае так корни правильно не вычислить! Возьмём a=1e-18, b=1, c=-1. При таких коэффициентах один корень - большой отрицательный, а второй - небольшой положительный около единицы. А у даунов второй корень получится не околоединичным, а нулевым, чего не может быть никак, но так как раз и будет!
Вот поэтому правильное компьютерное решение здесь несколько иное. ʘ‿ʘ