В pascal операции mod и div к вещественным типам недоступны, поэтому округляем их через Round. Можно поменять на Trunc - он возвратит только целую часть.
Однако правильнее будет делать через case:var a, b: real; s: string; begin readln(a); readln(b); readln(s); case s of char.ToString('+'): write(a + b); char.ToString('-'): write(a - b); char.ToString('/'): if b <> 0 then write(a / b) else write('Деление на 0!'); char.ToString('*'): write(a * b); 'mod': if b <> 0 then write(Round(a) mod Round(b)) else write('Деление на 0!'); 'pow': write(power(a, b)); 'div': if b <> 0 then write(Round(a) div Round(b)) else write('Деление на 0!'); end; end.Пояснение:В case '+', '-', '/', '*' воспринимаются как char, поэтому переводим их в string через стандартный метод класса char: char.ToString( )
Примеры работ: