Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Алгоритмы разветвляющейся структуры

Пример 2. Составить схему алгоритма вычисления значения y=(2x+3)/(3x-4).

На первый взгляд, алгоритм нахождения значения y кажется линейным, но это не так. Приведём схему алгоритма.

 

начало ввод x d=3x-4 d=0 да невозможно

вычислить y

нет

. у=(2x+3)/d вывод y конец

 

Рис.3.Схема алгоритма решения примера 2.

В блоке 3 осуществляется проверка условия: равен ли нулю знаменатель при данном значении x. Если это условие выполняется, то переходим по стрелке "да" на блок 4 и выводим сообщение о невозможности вычисления y. Если условие не выполняется, то переходим по стрелке "нет" к блоку 5, где вычисляется y.

Это пример разветвляющегося процесса.

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

Фрагмент схемы алгоритма с разветвлением задается так:

 

 

нет условие да

       
 
   

 


ветвь 1....................... ветвь 2

       
   

 

 


Рис.4.Схема разветвления.

Если условие выполняется, то проработает ветвь 2, иначе - ветвь 1. Возможны ситуации, когда одна из ветвей не содержит никаких действий. Такое разветвление называют обходом. Схематично это выглядит так:

нет

условие

 

да

 
 

 


ветвь 1.

 

 
 

 

 


Рис.5.Схема разветвления-обхода.

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

Пример 3.Вычислить

x + a, если x = 3

y = x - a, если x > 3

x2 + a2, если x < 3

Имеется три формулы для вычисления y. Выбор той или иной формулы зависит от заданных условий.

Предлагается следующая блок-схема решения этой задачи.

начало ввод x,a x>3 да y=x-a

нет

x=3 да y=x+a

нет

y=x2 +a2 Вывод y Конец

 


Рис.6.Схема алгоритма решения примера 3.

Пример 4. Даны различные x,y,z.. Вычислить u=min(x,max(y,z)).

Схема алгоритма выглядит так:

начало ввод x,y,z y>z да r= y

нет

r=z

 
 


x<r да u=x

нет

u=r вывод u конец

 

Рис.7.Схема алгоритма решения примера 4.

Была введена дополнительная переменная для хранения максимального значения r=max(y,z).

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

Такими наборами, например, для данной задачи будут

1) x=1, y=2, z=3 2) x=1, y=3, z=2

3) x=5, y=2, z=3 4) x=5, y=3, z=2

Нетрудно найти ответы для этих исходных данных. Искомое u будет равно соответственно 1,1,3,3.

 

<== предыдущая лекция | следующая лекция ==>
Алгоритмы линейной структуры | Алгоритмы циклической структуры
Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 1104; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.013 сек.