Объясните, пожалуйста, в чем ошибка 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. Пишет, что нельзя преобра...

Объясните, пожалуйста, в чем ошибка 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, что то значит?
Гость
Ответ(ы) на вопрос:
Гость
В операторе y:=x*x+4/x+3 используется операция деления, которая всегда возвращает вещественный тип. Следовательно, и всё выражение в правой части всегда будет иметь вещественный тип. А в левой части стоит переменная целого типа. Присваивание вещественного значения целочисленной переменной запрещено правилами языка Паскаль. Чтобы избавиться от ошибки, нужно знать алгоритм, который реализует программа. В зависимости от алгоритма может быть использована операция целочисленного деления, может быть использована функция Trunc(), возвращающая целочисленное значение аргумента, либо переменная y должна объявляться вещественной.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы