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) // это выделение дробной части числа
Поделитесь своими знаниями, ответьте на вопрос:
У исполнителя Умножатель две команды, которым присвоены номера: 1. умножь на 2 2. вычти 1 . Первая из них умножает число на 2, вторая – вычитает из числа 1.Составьте алгоритм получения из числа 5 числа 31, содержащий не более пяти команд. В ответе запишите только номера командНапример, 21121 – это алгоритм:вычти 1 умножь на 2 умножь на 2 вычти 1 умножь на 2, который преобразует число 3 в число 14.) Если таких алгоритмов более одного, то запишите любой из них.
12211
Объяснение:
5*2=10(1)
10-1=9(2)
9-1=8(2)
8*2=16(1)
16*2=32(1)