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) // это выделение дробной части числа
116
Объяснение:
d = 100
для k от 5 до 12 выполнить
Действия в цикле:
1) d = d - 6
2) d = d + 8
Вывод d
Цикл выполнится 8 раз
количество повторов в цикле равно конечное значение (12) переменной счётчика (k) минус начальное значение (5) переменной счётчика (k) плюс 1
количество повторов в цикле = 12 - 5 + 1 = 7 + 1 = 8
В цикле переменная d сначала уменьшается на 6, а затем увеличивается на 8.
В сумме эти действия (
) увеличивают переменную d на 2.
Следовательно за весь цикл переменная d увеличится на 2 * 8.
Т.к. в начале программы d = 100, то
d = 100 + 2 * 8 = 100 + 16 = 116