Паскаль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

4 Апр 2020 в 19:40
152 +1
0
Ответы
1

Ошибка возникает из-за того, что вы пытаетесь присвоить значение типа 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.

18 Апр 2024 в 14:40
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир