Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика учебник.doc
Скачиваний:
89
Добавлен:
04.11.2018
Размер:
3.46 Mб
Скачать

6.3. Базовые алгоритмические структуры

Таким образом, программирование – это наука о том, как заставить компьютер делать то, что нам нужно, и так, как нам нужно.

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

6.3.1. Последовательная (линейная) алгоритмическая структура

Эта структура – самая простая. Её элементы образуют простую последовательность (цепочку), в которой они и выполняются друг за другом, никогда не нарушая и не прерывая эту цепочку - линейно - от начала к концу (рис.10.2).

Y = x + x3 - 35

Начало Начать выполнение операций

х = 2

Назначить х = 2

Вычислить выражение x + x3 – 35 и присвоить его

переменной Y

x, Y

Напечатать значения x и Y

Конец Закончить выполнение операций

Рис. 6.2. Графическая форма алгоритма, пояснённая псевдокодом

6.3.2. Ветвящаяся (разветвлённая) структура

Иногда её называют "структура с условием (условиями)". Сердцевиной такой структуры действительно является операция проверки некоего условия, в результате которой дальнейшее выполнение алгоритма может идти по одному из предусмотренных путей. Например, такие ветвящиеся структуры:

нет

да

нет

условие условие

да

Опер-р 1

Опер-р 1

Опер-р 2

Ветвящиеся структуры

Рис. 6.3. С одной ветвью Рис. 6.4. С двумя ветвями

Этой структуре соответствует такой псевдокод:

Если результат проверки <условия> "да", то выполнить <оператор1>, если "нет" – то пропустить выполнение <оператора1>, после чего продолжить работу

Этой структуре соответствует такой псевдокод:

Если результат проверки <условия> "да", то выполнить <оператор1>, если "нет" – то выполнить <оператор2>, после чего продолжить работу

В алгоязыке этой структуре соответ-

ствует оператор:

В алгоязыке этой структуре соответ-

ствует оператор:

If <усл-е> THEN <опер1> End If If <усл-е> THEN <опер1> ELSE <опер2> End If

ключ = 20

ключ = 20

Select Case ключ

нет

Case 1

ключ = 1,2,…20 Опер-р 1

Case 2

да

Опер-р 2

Опер-р 1

Опер-р 2

Опер-р 20

<>20

………..

…… Case 20

Опер-р 20

Опер-р N

Case Else Опер-р N

End Select

Рис. 6.5. С несколькими (N) альтернативными ветвями (справа - соответствующий оператор алгоязыка)

В

Пусть ключ = 20 (количество вариантов выбора пути решения)

Если ключ = 1, то выполнить <оператор1>,

если ключ = 2, то выполнить <оператор2>,

дальнейшие проверки значения ключа

если ключ = 20, то выполнить <оператор20>,

если ключ НЕ равен ни одному из значений списка 1,2, … 20,

то выполнить <операторN>

псевдокоде такая варианту разветвлённой структуры соответствует запись:

6.3.3. Циклические структуры (от греч. kiklos – круг)

Договоримся, что "тело цикла" – это некоторый набор операций, которые должны повторно выполняться раз за разом, пока не наступит момент завершения повторов (циклов). Причём, тело цикла может представлять собой любую алгоритмическую структуру, в том числе, и циклическую. Выделяют 3 циклических структуры: цикл с предусловием (условие для выполнения цикла проверяется перед его началом), цикл с постусловием (условие проверяется после первого выполнения цикла) и цикл с заданным (вычисляемым) числом повторов.

нет

условие Do While <условие>

да

тело цикла

тело цикла

Wend

Рис. 6.6. Блок-схема и оператор выполнения цикла с предусловием

В

Проверить <условие>

Если оно несправедливо – не выполняется - ("нет"), то выйти из цикла.

Если оно справедливо ("да"), то выполнить тело цикла,

Вернуться к новой проверке условия

псевдокоде такому варианту циклической структуры соответствует запись:

Заметим: для того, чтобы алгоритм не "зацикливался" до бесконечности, обычно в теле цикла предусматривают изменение значений, входящих в проверяемое <условие>. И в какой-то из проверок это условие, наконец, нарушается, приводя к выходу из цикла.

Do (делай)

тело цикла

тело цикла

нет

Условие Loop (While) <условие> (пока усл-е истинно)

да

Рис. 6.7. Блок-схема и оператор выполнения цикла с постусловием

Этот вариант циклической структуры, вроде бы, мало отличается от предыдущего - условие проверяется не до входа в цикл, а после этого.

Но эта разница, небольшая, на первый взгляд, приводит к разнице принципиальной: в цикле с предусловием вполне может оказаться, что условие сразу будет нарушено и цикл не состоится, а в цикле с постусловием тело цикла, хоть один раз, но всё равно будет выполнено, независимо от результата проверки условия!

Третий вариант организации цикла отличается от первых двух своей изначальной определённостью. Если в тех вариантах трудно заранее определить, когда именно закончится выполнение циклов, то это - цикл, в котором число повторов тела цикла определено (явно или неявно). Он так и называется

"цикл с заданным числом повторов" (см. рис. 6.8) :

В алгоязыке этому соответствует: