Типовые виды алгоритмов
Действия в алгоритме могут следовать последовательно друг за другом. Однако очередность выполнения этих действий может быть изменена, если в алгоритме предусмотрен анализ некоторого условия. Путем включения условий создаются алгоритмы с различной структурой, в которой всегда можно выделить несколько типовых конструкций:
-
линейную;
-
разветвляющуюся;
-
циклическую.
Линейная алгоритмическая структура - описание
последовательности действий, которые выполняются однократно и в заданном порядке. Это такие алгоритмы, в которых все действия совершаются одно за другим, независимо ни от чего. Такие алгоритмы называются линейными; характерная для них форма организации действий – последовательное выполнение.
Разветвляющаяся алгоритмическая структура (ветвление) - описание действий, последовательность выполнения которых зависит от истинности или ложности условий. Алгоритм, в котором используется условие, получил название разветвляющегося, так как в зависимости от значения условия выбираются те или иные действия. Словесная формулировка: «Если <условие>, то <действие2> иначе <действие1>». Главная задача - проверить условие, а затем, в зависимости от результата проверки, выполнить соответствующее действие. Условие – выражение, находящееся между словами «если» и «то» и принимающее значение «истина» или «ложь». В зависимости от значения условия выполняется либо действие указанное после слова «то», либо действие, указанное после слова «иначе». Виды ветвлений:
Полное ветвление: |
Неполное ветвление: |
|
Использование ветвлений со сложными условиями и вложенными конструкциями бывает трудоемким. Когда вариантов операторов намного больше, чем два, целесообразно использовать конструкцию выбора. Конструкция выбора позволяет выбрать любой вариант из множества допустимых значений.
Блок – схема конструкции «выбор»: |
Циклическая алгоритмическая структура – описание действий, которые для решения задачи должны повторяться указанное число раз или пока не выполнено заданное условие. Перечень повторяющихся действий называется телом цикла. Основные виды циклов.
1. Цикл «ПОКА» (цикл с предусловием). Словесная формулировка: «Пока условие истинно, выполнять тело цикла ».
Блок – схема цикла 1: |
2. Цикл «ДО» (цикл с постусловием). Словесная формулировка: «До тех пор, пока условие не станет истинным, выполнять тело цикла».
Блок – схема цикла 2: |
3. Цикл «ДЛЯ» (цикл с параметром) является частным случаем цикла с предусловием. Словесная формулировка: «Для каждого значения параметра I, изменяющегося от A до B c шагом С, выполнять тело цикла ».
Блок – схема цикла 3: |
Вывод: Существует три типа алгоритмических структур: линейный, ветвление и циклический. Самый простой - алгоритм линейной структуры, где каждое действие в заданном порядке выполняется однократно. При появлении в алгоритме условия последовательность действий становится не однозначной и зависит от значения условия. Такой алгоритм называется разветвляющимся. При использовании цикла алгоритм решение задачи будет заключаться в многократном повторении одного или нескольких действий.
Вопросы к Лекции 1:
-
Что собой представляет язык высокого уровня Фортран? Когда и кем он был создан?
-
Перечислите основные преимущества изучения языка Фортран для научных и инженерных задач.
-
Какие из стандартных версий современного Фортрана вы знаете?
-
Возможно ли использование Фортрана для параллельных вычислений на высокопроизводительных кластерах?
-
Что такое алгоритм?
-
Перечислите основные свойства алгоритма.
-
Объясните, что означает детерминированность алгоритма.
-
Что подразумевается под конечностью алгоритма?
-
Как вы объясните свойство «понятность» алгоритма?
-
Что вы понимаете под результативностью алгоритма?
-
Что значит массовость алгоритма?
-
Какие вы знаете способы записи алгоритмов?
-
Приведите пример словесного способа записи алгоритма.
-
Приведите пример графического способа записи алгоритма.
-
Перечислите основные блоки, используемые в блок-схемах.
-
Приведите пример словесно-формульного способа записи алгоритма.
-
Приведите пример блок-схемы линейного алгоритма.
-
Как обозначают ветвления в блок-схемах?
-
Что такое ветвление в полной и неполной формах?
-
Приведите пример блок-схемы разветвляющегося алгоритма.
-
Виды алгоритмов (определение линейного, разветвляющегося, циклического алгоритма).
-
Циклический алгоритм с предусловием (цикл «ПОКА»). Обозначение на блок-схемах.
-
Циклический алгоритм с предусловием (цикл «ДЛЯ»). Обозначение на блок-схемах.
-
Циклический алгоритм с постусловием (цикл «ДО»). Обозначение на блок-схемах.
-
В чем различие структуры разных циклических алгоритмов «ДО», «ПОКА» и «ДЛЯ»?