Основные понятия программирования
.pdfБазовые структуры алгоритмов: следование, ветвление, повторение
Базовая структура «ветвление»
Ветвление – это выполнение действий по одной из возможных ветвей решения задачи. Эта структура обеспечивает, в зависимости от результата проверки условия (истина или ложь), выбор одного из альтернативных путей работы алгоритма, причем каждый из путей ведет к общему выходу. Возможные пути выполнения алгоритма помечают соответствующими метками: истина/ложь, да/нет, и т.д.
Алгоритм, в состав которого входит базовая структура «ветвление», называется разветвляющимся. В разветвляющемся алгоритме в зависимости от выполнения или невыполнения условия выполняется та или иная последовательность операторов.
Виды ветвлений:
•обход (если-то)
•разветвление (если-то-иначе)
•множественный выбор (если-то-иначе-если)
11
Базовые структуры алгоритмов: следование, ветвление, повторение
Базовая структура «ветвление» (продолжение)
Разветвление (если-то-иначе) |
Обход (если-то) |
• применяется, когда в зависимости |
• частный случай разветвления, |
от результата проверки условия |
когда одна ветвь не содержит |
требуется выполнить либо одно |
никаких действий. |
действие, либо другое действие.
|
|
|
Если |
|
|
Если |
|
|
|
|
|
|
Проверка |
Нет |
Да |
|
|
|
|
Проверка |
Нет |
условия |
|
|
|
|
|||
|
|
|
|
|
то |
условия |
иначе |
|
|
|
|
|
||
Оператор 1 |
|
Оператор 2 |
Да |
|
|
|
|
||
|
|
|
то |
|
|
|
|
Оператор |
|
12
Базовые структуры алгоритмов: следование, ветвление, повторение
Базовая структура «ветвление» (продолжение)
Множественный выбор |
|
Если-то-иначе-если |
|
|||||||||||
• обобщение разветвления, когда в |
|
• Организация множественного |
|
|||||||||||
зависимости от значения |
|
|
|
|
|
выбора с помощью нескольких |
|
|||||||
переменной условия выполняется |
|
|
структур «если-то-иначе» |
|
||||||||||
одно из нескольких действий. |
|
|
|
|
|
|
||||||||
Такую структуру всегда можно |
|
|
|
|
|
|
||||||||
представить в виде совокупности |
|
|
|
Если |
|
|
||||||||
|
|
|
|
|
|
|||||||||
нескольких базовых структур |
Да |
|
Проверка |
Нет |
|
|||||||||
«если-то-иначе». |
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
Условия 1 |
|
|
||||||
|
|
|
|
|
|
|
|
|
то |
иначе |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
если |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Оператор 1 |
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
I |
|
|
|
|
|
|
|
Да |
Проверка |
Нет |
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
I1 |
I2 |
|
|
Ii |
In |
|
|
|
|
Условия 2 |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
2 |
i |
n |
то |
иначе |
|
|
||||
|
|
|
|
Оператор 2 |
Оператор 3 |
13
Базовые структуры алгоритмов: следование, ветвление, повторение
Базовая структура «повторение»
Повторение (цикл) – некоторая часть операций выполняется многократно. Эта последовательность операций называется телом цикла.
Цикл, тело которого выполняется бесконечно много раз, называется бесконечным. Однако, организация таких циклов, никогда не приводящих к остановке в выполнении алгоритма, является нарушением требования его результативности (получения результата за конечное число шагов).
Циклы могут содержать внутри себя другие циклы. Такие структуры называются вложенными циклами.
Алгоритм, в состав которого входит базовая структура «повторение»,
называется циклическим.
14
Базовые структуры алгоритмов: следование, ветвление, повторение
Базовая структура «повторение» (продолжение)
Существуют три типа циклов:
•Цикл с предусловием (цикл-пока) - тело цикла расположено после проверки условия (пока результат проверки условия истинен, выполняется тело цикла)
•Цикл с параметром (разновидность цикла с предусловием) - в нем имеется параметр, начальное значение которого задается в заголовке цикла, там же задается условие продолжения цикла и закон изменения параметра цикла.
Механизм работы полностью соответствует циклу с предусловием, за исключением того, что после выполнения тела цикла происходит изменение параметра по указанному закону и только потом переход на проверку условия.
•Цикл с постусловием (цикл-до) - тело цикла расположено перед проверкой условия.
Tело цикла выполняется до тех пор, пока результат проверки условия не станет ложным. Цикл с постусловием можно определить и по-другому: тело цикла выполняется до тех пор, пока результат проверки условия не станет истинным. Таким образом, в трактовке условия цикла с постусловием в разных языках есть различия. В Паскале и языках, произошедших от него, условие такого цикла трактуется как условие выхода (цикл завершается, когда условие истинно), а в Си и его потомках — как условие продолжения (цикл завершается, когда условие ложно).
•
15
Базовые структуры алгоритмов: следование, ветвление, повторение
Базовая структура «повторение» (продолжение)
Цикл с предусловием (цикл-пока)
•пока результат проверки условия (блок 3) остается истинным, тело цикла (блок 2) выполняется. При этом может случиться, что при определенных условиях тело цикла не выполнится ни разу
1
Нет
3
Да
2
Цикл с постусловием (цикл-до)
•тело цикла (блок 2) выполняется по крайней мере один раз и будет повторяться до тех пор, пока результат проверки условия (блок 3) не станет ложным (а). Другой вариант формулировки: пока результат проверки условия не станет истинным (б).
а) |
б) |
1 |
|
|
1 |
|
|
|
|
|
|
2 |
|
2 |
Да |
Нет |
|
3 |
|
3 |
Нет |
Да |
|
|
|
16 |
Принципы простого алгоритма
Простой алгоритм - алгоритм, для которого:
•Существует единственный вход и единственный выход.
• Для каждого элемента алгоритма существует путь от входа к выходу через этот элемент (т.е. алгоритм не содержит бесконечных циклов и не содержит бесполезных (недостижимых) фрагментов).
Бесконечный цикл
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Простой алгоритм |
|
Недостижимый фрагмент |
17
Язык псевдокода
Некоторые операторы внешнего синтаксиса псевдокода
Следование. Операции записываются последовательно одна за другой.
Разветвление. Если…то…иначе. Используются операторы if (если) … then (то) … else (иначе) end-if (конец-если). Происходит проверка if-условия. Если результат проверки истинен, то выполняется then-
часть; если результат проверки ложен, то выполняется else-часть.
Индексная последовательность (цикл по счетчику с заранее определенным числом шагов ). Используются операторы for (для) … do (выполнять) …end-do (конецвыполнять). Do-часть составляет тело цикла.
Цикл-Пока. Do-часть выполняется пока while-условие имеет значение истина. Do-часть модифицирует условие while для того, чтобы окончить вычисления. Используются операторы while (пока) … do (выполнять) … end-do (конецвыполнять). Do-часть составляет тело цикла.
первая операция вторая операция третья операция
if
if-условие then
then-часть else
else-часть end-if
for
индексный список
do
do-часть end-do
while while-условие
do
do-часть end-do
18