Название: Алгоритмы и программы (Афанасьева Т. В.)

Жанр: Информационные системы и технологии

Просмотров: 1348


2.4. разветвленные алгоритмы

 

Разветвленные алгоритмы в своем составе содержат блок условия и различные конструкции ветвления. Ветвление – это структура, обеспечивающая выбор между альтернативами.

Каждая управляющая структура ветвления имеет один вход и один

выход. Ветвления содержат блок условия, в котором записывают логические условия, такие как А > С, X <= Y. В зависимости от значений переменных А, С в управляющей структуре ветвления на рис. 4, условие А > С принимает значение «истина» или «ложь» и процесс вычислений включает блок действия Z = A или Z = C. Аналогично происходит и в управляющей структуре неполного ветвления (рис. 4, б). Только в этом случае, если условие X <= Y истинно, то выполняется действие С = Х, в противном случае никаких действий не выполняется.

 

 

+

 

Z = A

 

 

А>C

 

_

 

Z = C

 

 

+

 

C = X

 

 

X<=Y

 

 

+

X

 

1:Y=1

 

Y = 0

 

2:Y=2

 

к:Y=к

 

Рис. 4. Структуры разветвленных алгоритмов

а) ветвление;   б) неполное ветвление;   в) многоальтернативный выбор

 

В управляющей структуре многоальтернативный выбор (рис. 4, в)  в блоке  условия  записывается  переменная,  в  данном  случае  Х,  которая может принимать различные значения. Если значение переменной Х совпадет с одним из значений в блоке действия, то выполняются действия, записанные в этом блоке. Например, если Х = 1, то выполнится действие Y = 1. Если значение Х не совпало ни с одним из значений, указанных в блоках справа, то выполняется действие в блоке слева, которого также, как и в неполном ветвлении, может и не быть.

 

Пример 2. Составить алгоритм нахождения минимального значения из 3 чисел.

Решение.  Для  определения  минимального  значения  будем  использовать проверку пары значений. Визуальные  разветвленные алгоритмы приведены на рис. 5,

6,  7.  Эти  алгоритмы  используют  для  обозначения  чисел  переменные  А,  В,  С  и различные подходы для анализа исходных данных.

НАЧАЛО

 

Ввод A, B, C

 

+

A <= B и A <= C

 

Вывод A

 

+

С <= B

 

Вывод C

 

Вывод B

 

КОНЕЦ

 

Рис. 5. Поиск минимального значения из трех чисел A, B, C

при помощи двойного сравнения

НАЧАЛО

 

Ввод

А, В, С

 

+

А < B

 

+

A < C

 

 

Вывод A

 

 

 

+

B > C

Вывод C

 

 

Вывод B

 

КОНЕЦ

 

Рис. 6. Поиск минимального числа из трех А, В, С.

Метод последовательного сравнения

 

Пример           3.         Составить      алгоритм        определения:  находится       ли        точка   М         с координатами Х, Y на окружности радиуса R.

Решение.  Визуальный  алгоритм  приведен  на  рис.  8.  Для  решения  в  нем используется математическая модель в виде формулы окружности  R2  = X2+Y2.

 

НАЧАЛО

НАЧАЛО

 

 

Ввод

A, B, C

 

Ввод M(X,Y), R

 

 

M:= A

 

 

T:= X2+Y2

 

+

M > B

 

M:= B

 

 

+          ДА

T=R2

 

 

M > C

+          M:= C

 

 

НЕТ

 

Вывод

M

 

 

 

КОНЕЦ

KОНЕЦ

 

Рис. 7. Поиск  минимального          Рис. 8. Определение положения числа из  трех А, В, С.              точка М с координатами

Метод сравнения      Х, У на окружности с промежуточной переменной М                 радиуса R

 

Пример 4. Составить алгоритм определения  корней   уравнения X2+B*X+C=0.

Решение. При составлении этого алгоритма надо рассмотреть случаи, когда уравнение не имеет корней и когда имеется только один корень. Обозначим корни уравнения  через  переменные  Х1,  Х2.  D  –  промежуточная  переменная  для вычисления дискриминанта.

Алгоритм вычисления корней уравнения заданного вида приведен на рис. 9.

НАЧАЛО

 

Ввод

B, C

 

D:= B2 - 4*C

 

+

D < 0

 

+

D = 0

 

НЕТ КОРНЕЙ

 

X1:= –B/2

 

 

 

X1:= ( –B+D0,5)/2

Вывод

X

 

 

X2:= (–B–D0,5)/2

 

Вывод

X1, X2

 

КОНЕЦ

 

Рис. 9. Алгоритм вычисления корней уравнения X2+B*X+C=0

 

Задания для самостоятельного выполнения

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

Порядок выполнения. Составить формальные и алгоритмические модели решения следующих задач:

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

большая сумма денег. Вам бы не хотелось сегодня пользоваться пластиковой картой, так как Вы в дальнейшем запланировали крупную покупку. Определите способ покупки.

2. Определите   вариант пути от дома до места учебы, в зависимости от времени выхода из дома и времени начала учебных занятий.

3. В  избирательной  компании  в  органы  власти  участвуют  две  партии: зеленых и прозрачных. Какая информация будет опубликована в СМИ по итогам голосования?

4. Для двух чисел Х, Y определить, являются ли они  корнями уравнения

А*Р4+D*P2+C=0.

5. Составить алгоритм  для  ответов  на  вопросы,  возникающие на  этапе формального решения задачи.

6. Составить алгоритм обобщенного решения задач на основе системного подхода.

7. Определить, является ли точка с координатами X, Y  точкой пересечения диагоналей квадрата со стороной R, одна вершина которого расположена в начале координат.

8. Определить значения функции в зависимости от значения аргумента

 

 

а*х2 ,

 

если х > 10;

У =

1/х,

Sin(х),

если –10  х  10;

если х < 10.

 

Контрольные вопросы

1. Что называют алгоритмом?

2. Определите понятие «исполнитель алгоритмов».

3. Каковы особенности алгоритмов?

4. Перечислите свойства алгоритмов.

5. Каким образом используются алгоритмы при решении задач?

6. Для чего применяют алгоритмы?

7. Укажите способы задания алгоритмов и их соотношения.

8. Каковы средства и  основные блоки визуального представления алго-

ритмов?

9. Сформулируйте     общие правила          при      проектировании        визуальных алгоритмов.

10. Как используется системный подход к построению алгоритмов?

11. В чем заключается метод структурной алгоритмизации?

12. Какие  существуют  базовые  алгоритмические структуры?  Приведите пример.

13. Чем  отличаются  алгоритмические  структуры  композиция  и  альтер-

натива?

14. Чем отличаются алгоритмические структуры альтернатива и итерация?

15. Как классифицируются алгоритмы по структурному признаку?

16. Приведите примеры линейных и разветвленных алгоритмов.