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) // это выделение дробной части числа
–•–•–•––••–••–•–••
–• –•– •––•• –• •–•–••
н к л н
–• –• –•– –• •–•• –•– ••
н н к н л к и
–• –• –• –– •• –••–•–••
н н н м и
2.
>>> 48*40*40
76800
>>> 76800 / 1024
75.0 (кибибайт)
3.
>>> bin(625)
'0b1001110001'
>>> bin(625)[2:].count('1')
5