Omg, вы тут уже несколько страниц решаете простое квадратное уравнение :-d
Garfi, хоть ты и клянешься, что математику хорошо знаешь, эта ссылка (http://www.math.ru/dic/37) + элементарные размышления скажут тебе, что /2*a - неверное переложение формулы на код языка програмирования. Верные - /(2*a), /2/a, /a/2.
Код:
program Sqrt1;
var
A, B, C, D, X1, X2 : Real;
begin
Writeln ('Vvedite koificenti kvodratnogo uravnenia ');
Readln (A, B, C);
D := B * B - 4 * A * C;
if A <> 0 then begin
if D < 0 then
Writeln ('Kornei net! ')
else begin
X1 := (-B + sqrt (D)) / 2 / A;
X2 := (-B - SQRT (D)) / 2 / A;
if X1 <> X2 then
writeln ('X1=', X1 : 8 : 3, ' X2=', X2 : 8 : 3)
else
writeln (' Koren ODIN ','X=',X2:8:3)
end;
end else
writeln('Reshenii net');
//Readln;
end.
Смотрите код внимательно, че вы тут написали. Если а не равно нулю, выполнить код, иначе написать "Решений нет"? о_О Если х1 = х2, то корень один? Верно, только не так надо, а сравнивая дискриминант с нулем. Но это мелочь.
Не совсем вижу смысл обрабатывать введенные данные при а = 0, ибо это уже не квадратное уравнение, а линейное, но раз уж просите, то вот код, и без комплексных чисел.
Код:
program Sqrt1;
var
A, B, C, D, X1, X2 : Real;
begin
Writeln ('Vvedite koificenti kvodratnogo uravnenia ');
Readln (A, B, C);
///writeln (a : 8 : 3, ' * x^2 ', b : 8 : 3, ' * x ', c : 8 : 3);
if A <> 0 then begin
D := B * B - 4 * A * C;
if D < 0 then
Writeln ('Kornei net! ')
else if D > 0 then begin
X1 := (-B + sqrt (D)) / 2 / A;
X2 := (-B - SQRT (D)) / 2 / A;
writeln ('X1=', X1 : 8 : 3, ' X2=', X2 : 8 : 3);
end
else
writeln ('X = ', (-B / 2 / A) : 8 : 3);
end else
writeln ('Lineinoe uravnenie. Koren X = ', (-C / B): 8 : 3);
//Readln;
end.