Определение циклического алгоритма

Циклический алгоритм (или цикл)
— алгоритм, в котором многократно посторяется одна и та же последовательность действий.

Рассмотрим примеры:

В показанном выше линейном алгоритме первое действие:

x = 2

второе действие:

x = x + 1 = 2 + 1 = 3

далее результат показывается пользователю (например отображается значение в ячейке электронной таблицы).

На этом алгоритм заканчивается.

В показанном выше циклическом алгоритме первое действие такое же:

x = 2

второе действие такое же:

x = x + 1 = 2 + 1 = 3

дальше результат также показывается пользователю. Но после этого стрелка идёт не к блоку Конец, а к блоку x = x + 1. Поэтому это действие повторяется:

x = x + 1 = 3 + 1 = 4

после чего результат отображается и действие повторяется вновь. x = 5, x = 6, x = 7 и так далее до бесконечности.

В этом примере блоки x = x +1 и Вывод x вместе составляют тело цикла. Другими словами, тело цикла - действия, которые повторяются многократно.

Самостоятельное задание

Нарисуйте блок-схему алгоритма изменения календарного года.

Условие остановки цикла

В примере выше цикл никогда не заканчивается. Но настоящие алгоритмы, особенно реализуемые на компьютере, должны заканчиваться.

Циклический алгоритм (или просто цикл) заканчивается, если выполнилось заранее заданное условие.

Например, студент посещает на занятия, пока не закончится учебный курс. В данном случае многократно повторяющимся действием является посещение занятия, а условием остановки является окончание курса.

Рассмотрим математический пример цикла с условием остановки:

Рассмотрим работу алгоритма. Например при вводе

n = 4

следующие действия:

r = 1
r = r * n = 1 * 4 = 4
n = n - 1 = 4 - 1 = 3

Дальше проверяем условие:

n=3 <= 1 ? 

Так как условие не выполняется, то переходим к шагу:

r = r * n = 4 * 3 = 12
n = n - 1 = 3 - 1 = 2

ещё раз проверяем условие:

n=2 <= 1 ? 

Так как условие опять не выполняется, то переходим к шагу:

r = r * n = 12 * 2 = 24
n = n - 1 = 2 - 1 = 1

ещё раз проверяем условие:

n=1 <= 1 ? 

В данном случае условие выполнилось. Поэтому выводим результат:

r = 24

и алгоритм заканчивается.

С помощью указанного алгоритма считается факториал:

Самостоятельное задание

  1. С помощью указанного алгоритма распишите вычисление , , .
  2. Ответьте на вопрос, что является телом цикла в данном примере.
Дополнительное (необязательное) задание
  1. Данный факториал неправильно считает выражение 0!, результат которого должен быть 0! = 1. Как нужно изменить цикл, чтобы он правильно считал это выражение?

Реализация алгоритма в электронных таблицах

  1. Переключитесь на новый лист электронных таблиц.
  2. В ячейке A1 введите текст n, в ячейке B1 введите текст n!.
  3. В ячейках A2:A21 введите последовательность чисел .
  4. В ячейке B2 введите формулу =ПРОИЗВЕД(A$2:A2)
    Данная формула будет находить произведение чисел от первого в ячейке A2 до текущего. Заполните с помощью этой формулы ячейки B2:B21

Набор чисел в ячейках A2:A21 представляет собой одномерный массив данных с именем n. Набор чисел в ячейках B2:B21 представляет собой одномерный массив данных с именем n!.

Массив называется одномерным, так как любой его элемент можно найти по его номеру. Например, первый элемент массива n равен , второй , пятый . Первый элемент массива n! равен , второй , третий .

Самостоятельное задание

Определите, чему равен восьмой элемент массива n!.

Вычисление суммы последовательности

Рассмотрим математическое выражение (сумму последовательности):

Это выражение вычисляется с помощью циклического алгоритма.

Символ – знак суммы. выражение обозначает первое значение переменной величины . В процессе алгоритма увеличивается на единицу каждый шаг, пока не достигнет значения , которое написано над знаком суммы. Таким образом, будет использоваться последовательность чисел

Справа от знака суммы написано выражение, которое считается для каждого числа указанной последовательности, то есть

или

В итоге выражение будет равно cумме этих чисел:

Самостоятельное задание

  1. Нарисуйте блок-схему алгоритма вычисления суммы .

  2. Реализуйте вычисление суммы в электронных таблицах.

  3. На новом листе посчитайте:

  4. На новом листе посчитайте:

  5. На новом листе посчитайте:

Самостоятельное задание

Рассмотрим задачу:

Спортсмен-лыжник начал тренировки пробежав в первый день 20 км. Каждый следующий день он увеличивал длину пробега на 50 процентов от пробега предыдущего дня. Какого значения достигнет дневной пробег лыжника в день, когда его суммарный пробег за все дни превысит целевой суммарный пробег 200 км?

Для решения данной задачи:

  1. Нарисуйте блок-схему алгоритма решения задачи.
  2. Реализуйте решение задачи на новом листе электронных таблиц.

Ключевые слова

Добавьте слова и словосочетания в свой глоссарий:

Ключевое слово
циклический алгоритм
цикл
условие остановки
шаг цикла
тело цикла
последовательность
сумма последовательности
одномерный массив данных
элемент массива
номер элемента массива