эх я новичок и почти не чего не знаю, помогите плс. здесь логическая ошибка, но какая!?
program kvadratnoe;
var
a,b,c,x1,x2,d:real;
begin
write('Введите первый коеффициент а: ');
read(a);
write('Введите второй коеффициент b: ');
read(b);
write('Введите свободеый член c: ');
read©;
d:=sqr(a)-4*a*c;
if d>0 then
begin
x1:=(-b+sqrt(d))/a;
x2:=(-b-sqrt(d))/a;
writeln('Дискриминант больше нуля');
writeln('x1= ',x1);
writeln('x2= ',x2);
end
else
begin
if d=0 then
begin
writeln('Дискриминант равен нулю');
x1:=(-b+sqrt(d))/2;
writeln('x= ',x1);
end
else
begin
writeln('Дискриминант меньше нуля, уравнение корней не имеет.');
end;
end;
end.
поправил
program kvadratnoe;
var
a,b,c,x1,x2,d:real;
begin
write('Введите первый коеффициент а: ');
read(a);
write('Введите второй коеффициент b: ');
read(b);
write('Введите свободеый член c: ');
read©;
d:=b*b-4*a*c;
if d>0 then
begin
x1:=(-b+sqrt(d))/2a;
x2:=(-b-sqrt(d))/2a;
writeln('Дискриминант больше нуля');
writeln('x1= ',x1);
writeln('x2= ',x2);
end
else
begin
if d=0 then
begin
writeln('Дискриминант равен нулю');
x1:=(-b)/2a;
writeln('x= ',x1);
end
else
begin
writeln('Дискриминант меньше нуля, уравнение корней не имеет.');
end;
end;
end.
Sum42, только вместо 2a надо писать (2*a), а то компилятор не поймёт.
krofik, ты бы внимательно посмотрел, правильно ли переписал формулу из учебника.
спасибо больше я бы сам не додумался в книгу за формулой заглянуть)
это у меня такая домашка по инфе перепала. так что ещё увидимся
всем спасибо!
program kvadratnoe;
var
a,b,c,x1,x2,d:real;
begin
write('Введите первый коеффициент а: ');
read(a);
write('Введите второй коеффициент b: ');
read(b);
write('Введите свободеый член c: ');
read©;
d:=sqr(b)-4*a*c;
if d>0 then
begin
x1:=(-b+sqrt(d))/2*a;
x2:=(-b-sqrt(d))/2*a;
writeln('Дискриминант больше нуля');
writeln('x1= ',x1);
writeln('x2= ',x2);
end
else
begin
if d=0 then
begin
writeln('Дискриминант равен нулю');
x1:=(-b)/2*a;
writeln('x= ',x1);
end
else
begin
writeln('Дискриминант меньше нуля, уравнение корней не имеет.');
end;
end;
end.
Ну введи a=2, b=0, c=-2.
program kvadratnoe;
var
a,b,c,x1,x2,d:real;
begin
write('Введите первый коеффициент а: ');
read(a);
write('Введите второй коеффициент b: ');
read(b);
write('Введите свободеый член c: ');
read©;
d:=sqr(b)-4*a*c;
writeln('Дискриминант=',d);
if d>0 then
begin
x1:=(-b+sqrt(d))/(2*a);
x2:=(-b-sqrt(d))/(2*a);
writeln('Дискриминант больше нуля');
writeln('x1= ',x1);
writeln('x2= ',x2);
end
else
begin
if d=0 then
begin
writeln('Дискриминант равен нулю');
x1:=(-b)/2*a;
writeln('x= ',x1);
end
else writeln('Дискриминант меньше нуля, уравнение корней не имеет.');
end;
end.
А если ввести a=2 b=4 c=2 тогда у вас ответ выходит х=-4, хотя должно быть х=-1. Нужно повнимательнее быть, ошибка у вас в моменте когда вы рассматриваете дискриминант=0
program kvadratnoe;
var
a,b,c,x1,x2,d:real;
begin
write('Введите первый коеффициент а: ');
read(a);
write('Введите второй коеффициент b: ');
read(b);
write('Введите свободеый член c: ');
read©;
d:=sqr(b)-4*a*c;
writeln('Дискриминант=',d);
if d>0 then
begin
x1:=(-b+sqrt(d))/(2*a);
x2:=(-b-sqrt(d))/(2*a);
writeln('Дискриминант больше нуля');
writeln('x1= ',x1);
writeln('x2= ',x2);
end
else
begin
if d=0 then
begin
writeln('Дискриминант равен нулю');
x1:=(-b)/(2*a);
writeln('x= ',x1);
end
else writeln('Дискриминант меньше нуля, уравнение корней не имеет.');
end;
end.