Паскальvar a,b,c,D,x1,x2: integer; Begin a:=1; b:=2; c:=1; D:=b*b-4*a*c; if ( d<0) then writeln ('Действительных корней нет') else begin x1:=(B-sqrt(D))/(2*A); x2:=(B+sqrt(D))/(2*A); end; end. Вопрос, что я делаю не так, если выбивает эту ошибку: Program2.pas(9,6): Нельзя преобразовать тип real к integer
Ошибка возникает из-за того, что вы пытаетесь присвоить значение типа real (sqrt(D) - квадратный корень из D) переменной типа integer (x1 и x2). Чтобы исправить это, вам нужно объявить переменные x1 и x2 как real, а не integer. Вот исправленный код:
var a, b, c, D: integer; x1, x2: real;
begin a := 1; b := 2; c := 1; D := bb - 4a*c;
if D < 0 then writeln('Действительных корней нет') else begin x1 := (b - sqrt(D)) / (2a); x2 := (b + sqrt(D)) / (2a); end;
Ошибка возникает из-за того, что вы пытаетесь присвоить значение типа real (sqrt(D) - квадратный корень из D) переменной типа integer (x1 и x2). Чтобы исправить это, вам нужно объявить переменные x1 и x2 как real, а не integer. Вот исправленный код:
var
a, b, c, D: integer;
x1, x2: real;
begin
a := 1;
b := 2;
c := 1;
D := bb - 4a*c;
if D < 0 then
writeln('Действительных корней нет')
else begin
x1 := (b - sqrt(D)) / (2a);
x2 := (b + sqrt(D)) / (2a);
end;
end.