Пример 3. Следующая программа находит частное q и остаток r от деления натурального числа x на натуральное число y без использования операции деления:
var x, y, q, r: integer;
begin
writeln('Частное и остаток');
write('Введите делимое x>>'); read(x);
write('Введите делитель y>>'); read(y);
r := x;
q := 0;
while r >= y do
begin
r := r - y;
q := q + 1
end;
writeln('Частное q=', q);
write('Остаток r=', r)
end.
Выполните программу при x = 25 и y = 4. Каким будет результат выполнения программы при x = −10 и y = 3? Как вы можете объяснить этот результат?
Переменная r сначала равна делимому, а q равна нулю. Каждый проход вычитает из r одно y и добавляет единицу к q. После прохода сохраняется равенство
При
| Шаг | Действие | q | r |
|---|---|---|---|
| Начало | |||
Теперь
При
При
