Алгоритмы циклической структуры

Циклом называют повторение одних и тех же действий (шагов). Последовательность действий, которые повторяются в цикле, называют телом цикла. Существует несколько типов алгоритмов циклической структуры. На рис. 2.1 изображен цикл с предусловием, а на рис. 2.2 — цикл с постусловием, которые называют условными циклическими алгоритмами. Нетрудно заметить, что эти циклы взаимозаменяемы и обладают некоторыми отличиями.

  • в цикле с предусловием условие проверяется до тела цикла, в цикле с постусловием — после тела цикла;
  • в цикле с постусловием тело цикла выполняется хотя бы один раз, в цикле с предусловием тело цикла может не выполниться ни разу;
  • в цикле с предусловием проверяется условие продолжения цикла, в цикле с постусловием — условие выхода из цикла.

Алгоритмы циклической структуры Алгоритмы циклической структуры
Рис. 2.1. Алгоритм циклической структуры с предусловием Рис. 2.2. Алгоритм циклической структуры с постусловием При написании условных циклических алгоритмов следует помнить следующее. Во-первых, чтобы цикл имел шанс когда-нибудь закончиться, содержимое его тела должно обязательно влиять на условие цикла. Во-вторых, условие должно состоять из корректных выражений и значений, определенных еще до первого выполнения тела цикла.

Кроме того, существует так называемый безусловный циклический алгоритм (рис. 2.3), который удобно использовать, если известно, сколько раз необходимо выполнить тело цикла.

Алгоритмы циклической структуры
Рис. 2.3. Алгоритм циклической структуры без условия

Выполнение безусловного циклического алгоритма начинается с присвоения переменной i стартового значения in. Затем следует проверка, не превосходит ли переменная i конечное значение iк. Если превосходит, то цикл считается завершенным, и управление передается следующему за телом цикла оператору. В противном случае выполняется тело цикла, и переменная i меняет свое значение в соответствии с указанным шагомdi. Далее, снова производится проверка значения переменной i и алгоритм повторяется. Понятно, что безусловный циклический алгоритм можно заменить любым условным. Например, так как показано на рис. 2.4.

Алгоритмы циклической структуры
Рис. 2.4. Условный циклический алгоритм с известным числом повторений

Отметим, что переменную i называют параметром цикла, так как это переменная, которая изменяется внутри цикла по определенному закону и влияет на его окончание.

ПРИМЕР 2.1. Найти наибольший общий делитель (НОД) двух натуральных чисел А и В.

Входные данные: А и В.Выходные данные: А — НОД.

Для решения поставленной задачи воспользуемся алгоритмом Евклида: будем уменьшать каждый раз большее из чисел на величину меньшего до тех пор, пока оба значения не станут равными, так, как показано в таблице 2.1.

Таблица 2.1. Поиск НОД для чисел А=25 и В=15.
Исходные данные Первый шаг Второй шаг Третий шаг НОД(А,В)=5
А=25 А=10 А=10 А=5
В=15 В=15 В=5 В=5

В блок-схеме решения задачи, представленной на рис. 2.5, для решения поставленной задачи используется цикл с предусловием, то есть тело цикла повторяется до тех пор, пока А не равно В.

Алгоритмы циклической структуры
Рис. 2.5. Поиск наибольшего общего делителя двух чисел

Контрольные задания

Паскаль с нуля [ч6]. Циклы. While, repeat-until, for.


Похожие статьи.

Понравилась статья? Поделиться с друзьями: