Циклический алгоритм

Материал из «Знание.Вики»
Программный код

Цикли́ческий алгори́тм — это алгоритмическая конструкция, которая подразумевает повторение определённого блока действий. Циклические алгоритмы чаще называют «цикл» или алгоритм «повторение».

Циклические алгоритмы делятся на 3 вида: цикл со счётчиком, цикл с предусловием и цикл с постусловием. Впервые циклический алгоритм как фундаментальное понятие был введён Адой Лавлейс в 1842-1843 годах для представления чисел Бернулли[1].

Виды циклических алгоритмов

Цикл со счётчикомпараметром) цикл, в котором количество итераций (повторений) определяется заранее и контролируется с помощью автоматически переключающегося счётчика. После окончания выполнения тела цикла счётчик переключается заданным образом (чаще всего прибавлением единицы). Его же называют «цикл с параметром»[1].

Цикл с предусловием цикл, в котором условие выхода из цикла проверяется перед выполнением тела цикла. Выход из цикла осуществляется при ложном результате проверки условия.

Цикл с постусловием цикл, в котором условие выхода из цикла проверяется после выполнения тела цикла. Данный вид цикла подразумевает выполнение тела цикла хотя бы один раз. Выход из цикла осуществляется при истинном результате проверки условия[2].

Способы записи циклического алгоритма

Словесный способ

Способ записи циклического алгоритма. Способ, в котором каждый шаг алгоритма представлен в произвольном изложении на естественном языке. Данным способом передают суть алгоритма исполнителю. Такие алгоритмы могут допускать неоднозначность толкования отдельных шагов алгоритма, что может привести к неправильным результатам[3].

Вид цикла Задача Пример алгоритма
цикл со счётчиком вывести на экран квадраты чисел от 1 до 20
  1. Начало алгоритма.
  2. Возьмем переменную i в качестве счётчика
  3. Повторить 20 раз выведи на экран i*i
  4. Конец алгоритма
цикл с предусловием
  1. Начало алгоритма
  2. Присвоим k значение 1
  3. Пока k меньше или равно 20 выполняй:
    1. выведи на экран k*k
    2. прибавь к k единицу
  4. Конец алгоритма
цикл с постусловием
  1. Начало алгоритма
  2. Присвоим k значение 1
  3. Выполняй:
    1. выведи на экран k*k
    2. прибавь к k единицу
    3. если k меньшее или равно 21 повтори пункты 1 и 2

Конец алгоритма

Графический способ

Для наглядного представления алгоритма используется графический способ. Одним из самых распространённых вариантов и часто используемых является блок-схема. Суть представления алгоритма с помощью блок-схем заключается в том, что каждый шаг алгоритма представляет собой геометрическую фигуру (блочный символ), условно обозначающий шаг алгоритма, который записывается внутри блока. Блок-схема циклического алгоритма обычно состоит из блока начала/конца, блока ввода/вывода, блока выбора действий и блока действий[2].

Программный способ

Он представляет собой запись алгоритма на формальном языке, а именно на языке программирования, позволяющем на основе строго определённых правил (синтаксиса, семантики и т.д.) формировать последовательность команд, однозначно отражающих смысл и содержание алгоритма для последующего выполнения его на компьютере. Программный способ подразумевает написание компьютерной программы[3][2].


Вид цикла Задача Пример программы на языке Pascal Пример программы на языке Python
цикл со счётчиком вывести на экран квадраты чисел от 1 до 20

var i, k: integer;

begin

for i:=1 to 20 do

begin

k:=i*i;

write(i,' ');

end;

end.

for x in range (1, 19):

y = x**2

print(y)

цикл с предусловием определить количество чётных цифр в числе

var n: longint; k: integer;

begin

readln(n);

k:=0;

while n<>0 do

begin

if n mod 10 mod 2=0 then inc(k);

4n: =n div 10;

end;

writeln(k);

end.

n = int(input(«Введите конечное число »))

a = 1

s = 0

while a < n:

s = s + a

a = a + 1

print(«Сумма чисел = », s)

цикл с постусловием вычислить факториал числа

var F,N,I:integer;

begin

F:=1;

I:=0;

readln(N);

Repeat

I:=I+1;

F:=F*I;

until I=N;

writeln('N! = ',F);

end.

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

while True: 

k = int(input(«Введите N (не более 20): »))

if k<=20: break 

p = 1 

i = 1 

while True: 

p = p*i 

i = i+1 

if i>k: break 

print(«N!», p)

Литература

  1. Кнут Дональд Эрвин. Искусство программирования. Том 1. Основные алгоритмы. — Вильямс, 2020. — 720 с. — ISBN 978-5-907144-23-1.
  2. Стивен С.Скиена. Алгоритмы. Руководство по разработке. — БХВ. — 878 с. — ISBN 9785977567992.
  3. Вирт Никлаус. Алгоритмы и структуры данных / с англ. Ф. В. Ткачев. — ДМК Пресс, 2013. — 272 с. — ISBN 978-5-97060-230-0.

Примечания

  1. Перейти обратно: 1,0 1,1 Тюгашев А. А. Основы программирования. Часть I. — СПб.: Университет ИТМО, 2016. — С. 16—17. — 160 с.
  2. Перейти обратно: 2,0 2,1 2,2 Прохорский Г. В. Интернет-курс по дисциплине Информатика. Московский финансово-промышленный университет "Синергия". Дата обращения: 21 декабря 2024.
  3. Перейти обратно: 3,0 3,1 Алгоритмы. Способы записи алгоритмов. Турбо. Учебный центр (25 марта 2013). Дата обращения: 20 декабря 2024.