с программой в Pascal ABC, нельзя преобразовать real в integer.

Программа:
Var
a,b,c,d,e,f:real;
n:integer;
Begin
a:=0; b:=0; c:=0; d:=0; e:=0; f:=0; n:=0;
Write('Введите ваш уровень - ');
Readln(a);
Write('Введите желаемый уровень - ');
Readln(b);
Write('Введите уровень спавнера - ');
Readln(n);
If b>a then begin;
if a<16 then c:=17*a;
if (a>15)and(a<31) then c:=1.5*a*a-29.5*a+360;
if a>30 then c:=3.5*a*a-151.5*a+2220;
if b<16 then d:=17*b-c;
if (b>15)and(b<31) then d:=1.5*b*b-29.5*b+360-c;
if b>30 then d:=3.5*b*b-151.5*b+2220-c;
end
else Writeln('Желаемый уровень должен быть больше вашего');
e:=d/n/5; e:=int(e);
if e mod 1=0 then e:=e
else e:=trunc(e)+1;
f:=d/n/10;f:=int(f);
if f mod 1=0 then f:=f
else f:=trunc(f)+1;
Writeln('Вам потребуется ',d,' опыта, для чего потребуется убить ',e,' скелетов/зомби/криперов или ',f,' ифритов');
end.

Ошибка здесь
e:=d/n/5; e:=int(e);
if e mod 1=0 then e:=e
else e:=trunc(e)+1;
f:=d/n/10;f:=int(f);
if f mod 1=0 then f:=f
else f:=trunc(f)+1;

samirdebilGost samirdebilGost    2   26.04.2020 19:15    1

Ответы
denis181203 denis181203  13.10.2020 22:01

Переменная e объявлена как real, после чего Вы используете над ней операцию mod вот здесь:

if e mod 1=0 then e:=e

Что недопустимо, поскольку mod используется только с целыми числами. Заменив эту строку на следующую, ошибка исчезнет:

if trunc(e) mod 1=0 then e:=e

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика