Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
_6.doc
Скачиваний:
9
Добавлен:
07.11.2018
Размер:
494.08 Кб
Скачать
    1. Основные алгоритмические конструкции

Элементарные шаги алгоритма можно объединить в следующие алгоритмические конструкции: линейные (последовательные), разветвляющие­ся, циклические и рекурсивные.

      1. Линейная алгоритмическая конструкция

Линейный называют алгоритмическую конструкцию, реализованную в виде последовательности действий (шагов), в которой каждое действие (шаг) алгоритма выполняется ровно один раз, причем после каждого i-го действия (шага) выполняется (i+1)-ое действие (шаг), если i-е действие – не конец алгоритма.

Пример 6.1.

Опишем алгоритм сложения двух чисел на псевдокоде и виде блок-схемы.

Псевдокод:

  1. Ввод двух чисел a, b.

  2. Вычисляем сумму S = a + b.

  3. Вывод S

  4. Конец.

Рис. 6.1 Блок - схема к примеру 6.1

      1. Разветвляющаяся алгоритмическая конструкция

Разветвляющейся (или ветвящейся) называется алгоритмическую конструкцию, обеспечивающую выбор между двумя альтернативами в зависимости от значения входных данных. При каждом конкретном наборе входных данных разветвляющийся алгоритм сводится к линейному. Различают неполное (если – то) и полное (если – то – иначе) ветвления. Полное ветвление позволяет организовать две ветви в алгоритме (то или иначе), каждая их которых ведет к общей точки их слияния, так что выполнение алгоритма продолжается независимо от того, какой путь был выбран (Рис. 6.2). Неполное ветвление предполагает наличие некоторых действий алгоритма только на одной ветви (то), вторая ветвь отсутствует, то есть для одного из результатов проверки никаких действий выполнять не надо, управление сразу переходит к точке слияния (Рис 6.3).

Пример 6.2.

Вывести значение наибольшего из двух чисел.

Псевдокод:

  1. Ввод двух чисел a, b.

  2. ЕСЛИ a > b, ТО «выводим a»,

ИНАЧЕ «выводим b».

  1. Конец.

Рис. 6.4 Блок-схема к примеру 6.2

В данном примере реализовано полное ветвление. ЕСЛИ значения входных данных таковы, что a > b, ТО выполняется линейный алгоритм:

1. Ввод двух чисел a, b.

2. Вывод a.

ИНАЧЕ, когда a  b, выполняется линейный алгоритм:

1. Ввод двух чисел a, b.

2. Вывод b.

Вывод: алгоритм является разветвляющимся и состоит из двух ветвей.

Рассмотрим стандартный алгоритм поиска наибольшего (наименьшего) значения среди нескольких заданных. Основная идея алгоритма сводится к следующему: за наибольшее (наименьшее) принимаем значение любого из данных. Поочередно сравниваем оставшиеся данные с наибольшим (наименьшим). Если окажется, что очередное значение входного данного больше (меньше) наибольшего (наименьшего), то наибольшему (наименьшему) присваиваем это значение. Таким образом, сравнив все входные данные, найдем наибольшее (наименьшее) среди них. Алгоритм использует неполное ветвление.

Пример 6.3.

Заданы три числа. Найти значение наименьшего из них.

Заданные числа обозначим: a, b, c; результирующее наименьшее – min. На рисунке 6.5 представлена блок-схема алгоритма решения данной задачи.

Рис. 6.5 Алгоритм поиска наименьшего

значения среди трех заданных.

Команда «выбор»

Часто при выборе одного из возможных вариантов действий приходится проверять значение выражения на принадлежность заданному набору данных. Для этого существует команда «Выбор». При ее исполнении сначала вычисляется значение некоторого выражения Z. Затем последовательно проверяются условия V1, V2, …, Vn относительно Z, начиная с первого, до тех пор, пока не встретится условие, принимающее значение ИСТИНА. Далее выполняется соответствующее этому условию действие (или серия действий), после чего команда выбора завершается. Если ни одно из условий не является истинным, то в

Нет

ыполняется действие (или набор действий), идущих по ветви ЛОЖЬ для каждого из условий. Н а рисунке 6.6 представлена блок-схема команды выбор для = 3.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]