ГДЗ по информатике, 8 класс, Босова, номер 3.9: 5. Программирование циклических алгоритмов
Информатика: 8-й класс: базовый уровень: учебник; 5-е издание, переработанное — Босова Л.Л., Босова А.Ю.
Дмитрий Орлов, преподаватель информатики Шпаргача обновлено 12 сентября 2026
Условие
Написать программу вычисления наибольшего общего делителя двух целых чисел
а) с использованием оператора repeat
б) с использованием оператора while.
Номер как в учебнике. Условие — полный пересказ редакции: те же пункты, числа и факты, не цитата из книги.
Пошаговое решение
Для решения задачи нам понадобится алгоритм Евклида. Он основан на том, что наибольший общий делитель (НОД) двух чисел равен НОД меньшего числа и остатка от деления большего на меньшее. Процесс повторяется до тех пор, пока один из операндов не станет равным нулю.
Шаг 1. Алгоритм с использованием оператора repeat
В языке Паскаль оператор repeat...until выполняет тело цикла как минимум один раз, а проверка условия выхода происходит в конце. Для вычисления НОД мы будем заменять большее число остатком от деления на меньшее, пока одно из чисел не обратится в ноль.
program GCD_Repeat;\nvar
a, b, r: integer;\nbegin
write('Введите два целых числа: ');
readln(a, b);
// Если одно из чисел равно 0, то НОД - другое число.
// Но обычно предполагаем ввод ненулевых положительных чисел.
repeat
r := a mod b; // Находим остаток от деления a на b
a := b; // Присваиваем a значение b
b := r; // Присваиваем b значение остатка
until b = 0; // Цикл продолжается, пока b не станет 0
writeln('НОД = ', a);\nend.Пояснение: Переменная r хранит промежуточный остаток. Когда b становится равным 0, цикл завершается, и в переменной a остается искомый НОД.
Шаг 2. Алгоритм с использованием оператора while
Оператор while...do проверяет условие перед каждой итерацией. Если условие ложно изначально, тело цикла может не выполниться ни разу. Логика работы та же: делим с остатком, меняем переменные местами, пока второе число не станет нулем.
program GCD_While;\nvar
a, b, r: integer;\nbegin
write('Введите два целых числа: ');
readln(a, b);
while b <> 0 do
begin
r := a mod b;
a := b;
b := r;
end;
writeln('НОД = ', a);\nend.Пояснение: Условие b≠0 гарантирует, что деление amodb будет корректным (на ноль делить нельзя). Как только b станет 0, цикл прерывается, и ответ находится в a.
а) Программа использует цикл repeat-until для последовательного замены пары чисел (a, b) на пару (b, a mod b) до тех пор, пока b не станет равным 0. Ответом является значение a.
б) Программа использует цикл while-do с тем же условием продолжения (b <> 0), выполняя аналогичные операции присваивания внутри тела цикла.
Обе программы реализуют классический алгоритм Евклида. Разница лишь в синтаксисе циклических конструкций. Важно помнить, что при использовании mod нужно следить за порядком аргументов или использовать обмен значений, чтобы избежать ошибок при a < b (хотя в данном варианте кода это обрабатывается автоматически на первой итерации).
Как решение?
Двойная оценка: понятность и подробность. Можно выбрать одно или оба.
У вас другое условие?
Загрузите фото — учтём ваши числа и редакцию.
Частые вопросы
Это точный номер 3.9 из моего учебника?
Номер совпадает с учебником «Информатика: 8-й класс: базовый уровень: учебник; 5-е издание, переработанное», Босова Л.Л., Босова А.Ю.. Формулировка — пересказ редакции, не дословная цитата. Если в вашей редакции другие числа — загрузите фото.
Какой ответ в задании 3.9?
Краткий ответ: а) Программа использует цикл repeat-until для последовательного замены пары чисел (a, b) на пару (b, a mod b) до тех пор, пока b не станет равным 0. Ответом является значение a. б) Программа использует цикл while-do с тем же условием продолжения (b <> 0), выполняя аналогичные операции присваивания внутри тела цикла.
Как пользоваться этим разбором?
Сначала прочитайте условие и чертёж, затем шаги решения по порядку и сверьте свой ход с кратким ответом внизу.
Какой учебник имеется в виду?
«Информатика: 8-й класс: базовый уровень: учебник; 5-е издание, переработанное», Босова Л.Л., Босова А.Ю.. Проверьте часть, год и автора на обложке. Тема в учебнике: § 3. 5. Программирование циклических алгоритмов.
Можно ли списать ответ без решения?
Лучше сначала решить самостоятельно, а разбор использовать для проверки хода и поиска ошибки.