Учительница начальных классов Мария Александровна готовит примеры По математике для своих учеников. Ей надо Приготовить много примеров, и она осваивает информационные технологии, а именно, функцию random. При помощи этой функции она случайно выбирает 2 числа в интервале от 0 до 1000 включительно иодну из четырёх арифметических операций : сложение, вычитание, умножение, деление. Но возникло одно затруднение - её дети уже знают, что такое ноль и умеют с ним работать, но пока не прошли ни отрицательных, ни дробных чисел, поэтому, некоторые примеры могут показать я некорректными. Напишите программу, которая определит, Является ли пример корректными и найдите ответ к этому примеру.
На вход поступают 2 числа и символ арифметической операции. Каждое число и символ записаны в отдельной строке. Числа принадлежат интервал от 0 до 1000 включительно. Возможно один из 4 символов операций: (+, -, *, /).
Если пример корректен, то вывести в первой строке слово yes, а во второй - ответ к примеру. Если пример некорректен, то вывести только слово no. Обращайте внимание на регистр, например, вывод No NO будет расцениваться как ошибка.

Ответы
Ответ:
const
AOper: array [0..3] of string = ('+', '-', '*', '/');
var
a, b, Oper: Integer;
r: Real;
begin
Randomize; // инициализация датчика случайных чисел
a := Random (1001);
b := Random (1001);
Oper := Random (4);
case Oper of
0: r := a + b;
1: r := a - b;
2: r := a * b;
3:if b <> 0 then begin
r := a / b;
end else begin
WriteLn ('Произошла ошибка при делении на ноль');
Exit;
end
else r := -1;
end;
WriteLn (a);
WriteLn (b);
WriteLn (Aoper [Oper]);
if (r >= 0) and (r - Trunc (r) = 0) then begin // если в результате получилось положительное целое число
WriteLn ('yes');
WriteLn (r :6 :0);
end else
WriteLn (' no');
ReadLn;
end.
Объяснение:
r - Trunc (r) // это выделение дробной части числа