Операция неприменима к операндам этого типа (k:real; k:=d mod 1) - Pascal
Формулировка задачи:
Program abcdbc;
var N,M,g:integer;
f,d,c,k:real;
begin
Writeln('bla');
Readln(N);
c:=N*3;
Writeln('bla');
Writeln('bla');
Readln(M);
Writeln('bla', M);
d:=M/3;
k:=d mod 1;
g:=d div 1;
If k=0 then d:=g;
If k>0 then d:=g+1;
f:=d/2;
e:=f mod 1;
If e>0 then writeln('bla');
If e=0 then writeln(d);
end.
Тоже самое и со следующей строчкой...
Решение задачи: «Операция неприменима к операндам этого типа (k:real; k:=d mod 1)»
textual
Листинг программы
uses crt;
var n,m,e:byte;
begin
clrscr;
write('Количество этажей=');
readln(n);
repeat
write('Номер квартиры:');
readln(m);
until m<=3*n;
e:=(m+2) div 3;
if (e=n)and(n mod 2=0)then e:=e-1
else if e mod 2=0 then e:=e+1;
write('Этаж=',e);
readln
end.
Объяснение кода листинга программы
- В первой строке используется библиотека crt, которая является стандартной для языка Pascal.
- Переменные n, m и e инициализируются значением byte.
- Строка clrscr очищает экран.
- В строке write выводится сообщение
Количество этажей=и считывается значение переменной n. - С помощью оператора repeat-until выполняется цикл, пока значение переменной m не станет больше или равным 3*n.
- В строке write выводится сообщение
Номер квартиры:и считывается значение переменной m. - Переменная e инициализируется значением (m+2) div 3.
- Если (e=n) и (n mod 2=0), то значение переменной e уменьшается на 1.
- Если e mod 2=0, то значение переменной e увеличивается на 1.
- В строке write выводится сообщение
Этаж=и значение переменной e. - Цикл завершается, и программа заканчивается.