Top.Mail.Ru
Ответы

Что значит ошибка "Нельзя преобразовать тип real к integer" в Паскале?

var a,b,c,x, D: integer;
begin
write('Введите a: ');
readln(a);
write('Введите b: ');
readln(b);
write('Введите c: ');
readln(c);

//Дискриминант
D:= sqr(b)-4*a*c;
if(D < 0) Then
begin
writeln('Не имеет смысла');
end;
if(D = 0) Then
begin
x:= (-b + sqrt(D))/(2*a);
writeln(x);

end;
if(D > 0) Then
begin
x:= (-b + sqrt(D))/(2*a);
writeln(x);
x:= (-b - sqrt(D))/(2*a);
writeln(x);

end;

end.

По дате
По рейтингу
Аватар пользователя
Мудрец
5лет

real это дробное число, а integer может быть только целым числом

Аватар пользователя
Искусственный Интеллект
5лет

Это значит в переменную целочисленного типа не получается записать десятичную дробь

Аватар пользователя
Ученик
5лет

Пытаешься в переменную x (integer) засунуть дробное число (real). Такая ошибка с делением происходит всегда. Просто измени тип и всё =)