Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛЕКЦИЯ 1-9.doc
Скачиваний:
2
Добавлен:
21.11.2019
Размер:
1.13 Mб
Скачать

Лекция №3 разветвляющиеся вычислительные процессы

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

Следует отметить, что разветвляющиеся вычислительные процессы в чистом виде встречаются редко. Чаще всего они являются составной частью других вычислительных процессов (например, циклических).

Для обеспечения разветвления вычислительных процессов в алгоритмизации используется блок, внутри которого указывается условие, необходимое для выполнения разветвления.

Например, требуется найти значение двух операндов и в зависимости от их численного значения передать управление программой по ветви "Да" или "Нет". Эти функции выполняет логический блок:

Все задачи по разветвлению можно условно разделить на:

  1. поиск максимального (минимального) значения (см. приведенный пример);

  2. интервальные задачи, где задаются четкие границы искомой величины. Пример: в какой четверти лежит точка С с координатами (х, у)?;

  3. задачи, где рассматривается взаимосвязь тригонометрических фигур. Пример: заданы два круга- первый круг с радиусом R1, а второй - с диаметром d2. Определить, можно ли вставить первый круг во второй?

  4. смешанные (требуется предварительное вычисление сравниваемых данных). Пример: можно ли доехать из Кривого Рога до Днепропетровска без дозаправки на автомобиле "Таврия", если известно количество бензина в баке, его расход, а также расстояние между городами.

Ниже приведены примеры алгоритмизации.

Пример 1. Из заданных трех чисел выбрать максимальное число и вывести на печать: a, b, c – числа.

Рис. 2.3. Разветвляющийся алгоритм

Упростим эту задачу и используем только один блок вывода данных. Для удобства сокращения количества блоков, при алгоритмизации используют символы логического умножения ( И, - конъюнкция), сложения ( ИЛИ, - дизъюнкция), отрицания ( НЕ, - инверсия) (рис. 2.4).

Пример 2

Рис. 2.4 Разветвляющийся алгоритм

Пример 3. Известно, что в Кривбассе добыча железорудного сырья осуществляется подземным и открытым способами. Известно также, что добыча железной руды подземным способом может осуществляться тремя способами А1, А2, А3.

По известной себестоимости тонны руды определить наиболее выгодный вариант добычи железорудного сырья.

А1 – первый вариант добычи; А2 – второй вариант; А3 – третий вариант.

Таблица исходных данных

Параметры

Варианты

Вариант 1

Вариант 2

Вариант 3

Обозначение

А1

А2

А3

Себестоимость

С1

С2

С3

Рис. 2.5. Алгоритм выбора наиболее выгодного варианта добычи железорудного сырья

В блоках 3, 5, 6 в качестве экономически выгодного варианта приведены символы А1, А2, А3 в кавычках.

Сравнивая примеры 1, 2 и 3 можно заметить, что независимо от текста задачи логика алгоритмизации задач при поиске минимального (максимального) варианта идентична.

В зависимости от конкретной задачи алгоритм может содержать две и более ветвей разветвления (передачи управления).

Рассмотрим характерный пример разветвлений с множеством ветвей. Например, алгоритм пользования междугородним телефоном (рис. 2.6).

Рис. 2.6. Алгоритм пользования междугородним телефоном

Рассмотрим еще один пример разветвляющегося алгоритма. Пример пользования лифтом. Прежде всего, нажимаем кнопку вызова лифта, после чего в зависимости от конкретной ситуации происходит разветвление рассматриваемого процесса.

Из алгоритма, очевидно, что в зависимости от конкретной ситуации возможны различные ветви направления развития рассматриваемого процесса.

Число ветвей в алгоритме равно удвоенному значению количества логических блоков.

Рис. 2.7 Алгоритм пользования лифтом.