Предмет: Информатика, автор: 13579112

Объясните, пожалуйста, в чем ошибка
program Funk;
uses Crt;
var x,y: integer;
begin
for x:=-8 to 8 do
y:=x*x+4/x+3;
writeln (y);
writeln (x);
if x=0 then writeln ('Функция не определена');
readkey
end.
Пишет, что нельзя преобразовать тип real к integer, что то значит?

Ответы

Автор ответа: Аноним
0
В операторе y:=x*x+4/x+3 используется операция деления, которая всегда возвращает вещественный тип. Следовательно, и всё выражение в правой части всегда будет иметь вещественный тип. А в левой части стоит переменная целого типа. Присваивание вещественного значения целочисленной переменной запрещено правилами языка Паскаль.
Чтобы избавиться от ошибки, нужно знать алгоритм, который реализует программа. В зависимости от алгоритма может быть использована операция целочисленного деления, может быть использована функция Trunc(), возвращающая целочисленное значение аргумента, либо переменная y должна объявляться вещественной.
Похожие вопросы