Различные типы алгоритмов
Давайте закрепим основы линейных и ветвящихся алгоритмов.
Ты уже знаешь
Линейный алгоритм:
существует одна возможная последовательность инструкций,
действия выполняются одно за другим,
не содержит условных операторов.
Алгоритм ветвления:
алгоритм с условиями,
следующая инструкция в алгоритме может зависеть от выполнения или невыполнения определенного условия,
есть несколько альтернативных последовательностей команд,
блок-схема алгоритма этого типа содержит условные блоки в виде ромба с двумя выходами.
Мы упомянули простой алгоритм подслащивания чая. Напомним его структуру, представленную в виде блок-схемы.
Нажмите, чтобы начать предварительный просмотрНа иллюстрации показана блок-схема. 1 Зеленый кружок Старт. 2 Синий прямоугольник Возьмите ложку сахара. 3 Синий прямоугольник Посыпать сахаром из чайной ложки. 4 Синий прямоугольник Возьмите ложку сахара. 5 Синий прямоугольник Насыпьте сахар из чайной ложки. 6 Синий прямоугольник Насыпьте сахар чайной ложкой. 7 Синий прямоугольник Насыпать сахар из чайной ложки. 8 Красный кружок Стоп.
Источник: Contentplus.pl Sp. z o. o., лицензия: CC BY-SA 3.0.
Одна и та же последовательность инструкций повторяется несколько раз. Повторение одного и того же действия снова и снова называется итерацией .
Задача подсластить чай не очень сложная, использование итераций существенно не влияет на его читабельность. Однако это может сократить нотацию (как в случае псевдокода, блок-схемы, так и языков программирования).
Ты уже знаешь
В итеративном алгоритме мы используем условные блоки, встречающиеся в алгоритмах ветвления. Следующая инструкция зависит от того, выполняется ли определенное условие. Помимо условия, в какой-то момент выполнения алгоритма он вернется к одной из предыдущих инструкций. Этот возврат называется циклом .
Блок-схема итеративного алгоритма
Нажмите, чтобы начать предварительный просмотрНа иллюстрации показана блок-схема. 1 Синий прямоугольник, начальное значение повторяемой переменной. 2 Состояние голубого бриллианта. Если 2 верно 3 Синий прямоугольник оператор1, оператор2. Вернуться к блоку 2 Если 2 неверно Стрелка указывает за пределы диаграммы
Источник: Contentplus.pl Sp. z o. o., лицензия: CC BY-SA 3.0.
В первом рабочем блоке инициализируется начальное значение повторяемой переменной (например, подслащивание чая первой чайной ложкой сахара). Это позволяет нам подсчитать количество итераций. Затем проверяется условие. Если оно ложно, выходим из цикла и не повторяем содержащиеся в нем операции. Однако, если условие выполнено, мы выполняем последовательность соответствующих инструкций. После выполнения последовательности операторов мы возвращаемся к проверке условия. Если это правда, мы снова выполняем те же инструкции и так далее.
Команда 1
Проанализируйте блок-схему алгоритма подслащивания чая с помощью цикла.
Нажмите, чтобы начать предварительный просмотрНа иллюстрации показана блок-схема. 1 Зеленый кружок Старт. 2 Синий прямоугольник ч. л. := 1. 3 Синий ромб ч. л. меньше 3. Неверно на шаге 3, 4 Красный кружок Стоп. Для истинности в шаге 3, 4 Синий прямоугольник Совок сахара по ложке. 5 Синий прямоугольник Насыпать сахар из чайной ложки. 6 Чайная ложка синего прямоугольника := Чайная ложка + 1. Вернуться к блоку 3.
Источник: Contentplus.pl Sp. z o. o., лицензия: CC BY-SA 3.0.
Итеративный алгоритм, который печатает числа из заданного диапазона
Мы будем использовать псевдокод для написания итеративного алгоритма, который отображает целые числа в диапазоне на экране.10, 25.
Мы можем реализовать псевдокод итеративного алгоритма, используя итерационные инструкции. Мы создадим цикл, используя слова dopóki .. wykonuj. Если wyrażenieсодержится между dopókiи wykonujистинно, операторы, перечисленные непосредственно под ними, будут выполнены. Мы напишем эти инструкции, используя отступы. Это должно указать, какие операторы находятся в цикле.
Строка 1. пока выражение не сделает двоеточие. Строка 2. инструкция1. Строка 3. инструкция2.
1
пока выражение не выполнится:
2
инструкция1
3
инструкция2
Напишем в виде псевдокода алгоритм, выводящий на экран целые числа в диапазоне10, 25.
Строка 1 и двоеточие равны знаку 10. Строка 2, пока я не открываю шевронную скобку знака равенства 25, выполняют двоеточие. Строка 3 выводит i Строка 4 i двоеточие знак равенства i плюс 1.
1
и := 10
2
пока я
3
выписать и
4
я := я + 1
В первой строке псевдокода мы инициализируем начальное значениеi := . Это будет первое число, напечатанное алгоритмом. Затем мы создаем цикл, в котором проверяется i , меньше ли оно или равно. Если условие выполнено, мы печатаем значение, iа затем увеличиваем его на , чтобы напечатать следующее целое число. Инструкции будут выполняться до тех пор, пока i не превысит значение.
Словарь
итерационный алгоритм
алгоритм, использующий циклы для многократного повторения последовательности команд
итерация
выполнение одних и тех же действий снова и снова
петля
итеративный оператор, который позволяет циклически выполнять последовательность операторов