8 класс 5. Программирование циклических алгоритмов § 3. 5. Программирование циклических алгоритмов

ГДЗ по информатике, 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. Программирование циклических алгоритмов.

Можно ли списать ответ без решения?

Лучше сначала решить самостоятельно, а разбор использовать для проверки хода и поиска ошибки.

Соседние задания

Автор решения: Дмитрий Орлов, преподаватель информатики Шпаргача.

Дата обновления: 12 сентября 2026.

Источник решения: оригинальное решение редакции Шпаргач.

Номер как в учебнике. Условие — полный пересказ редакции (те же пункты, числа и факты). Решение не копирует текст книги.