Студопедия

КАТЕГОРИИ:


Архитектура-(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)

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




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

Базовая структура «ветвление» существует в следующих основных вариантах:

1. если—то;

2. если—то—иначе;

3. выбор — иначе.

Алгоритм на языке Турбо Паскаль Блок-схема алгоритма
1. если—то
begin IF <условие> THEN <оператор1> end
2. если—то—иначе
begin IF <условие> THEN <оператор1> ELSE <оператор2> end
3. выбор—иначе
begin IF <условие1> THEN <оператор1> ELSE(IF<условие2>THEN <оператор2> ... ELSE(IF<условиеN>THEN <операторN>). ELSE <операторN+1>)...) end
     

Рассмотрим примеры разветвляющихся алгоритмов.


Пример 3.5. Составить алгоритм определения наибольшего из двух числовых значений N1 и N2 и присвоить его переменной NB.

Блок-схема алгоритма Алгоритм на языке Турбо Паскаль
Начало

Конец
Вывод ' NB= ', NB,
T:=T+KT
NB:=N1
Ввод данных

  Begin ReadLn(N1,N2); NB:=N1; If N2>NB Then NB:=N2; WriteLn(' NB=',NB) End.

Пример 3.6. Составить алгоритм определения наибольшего из трех числовых значений N1, N2 и N3 и присвоить его переменной NB.

Алгоритм выбора наибольшего, приведенный в примере 3.5, может дать ошибочный результат, т.к. при невыполнении условного оператора из-за синтаксической ошибки в записи оператора результат будет NB:=N1. Чтобы избежать этой ошибки на практике применяют алгоритм, в котором в качестве начального значения переменной NB принимают значение (-1019) заведомо меньшее проверяемых значений элементов списка. Алгоритм на языке Турбо Паскаль имеет вид.

begin

ReadLn(N1,N2,N3);

NB:= -1E+19;

IF N1>NB THEN NB:=N1;

IF N2>NB THEN NB:=N2;

IF N3>NB THEN NB:=N3;

WriteLn(' NB=',NB)

end.

Пример 3.7. Составить алгоритм вычисления значения функции y(x), заданной в виде

y=

Числовые значения x и a заданы.

Проверка на равенство действительных числовых значений производится проверкой выполнением условия где значение x зависит от точности вычислений (например, 10-5). Возведение в произвольную степень (кроме возведения в квадрат и возведения в степень числа e) в языке Турбо Паскаль отсутствует. Для возведения (x-a) в степень (1/3) можно воспользоваться очевидным равенством

Алгоритм на языке Турбо Паскаль имеет вид.

begin

ReadLn(x,a);

IF x>a THEN y:=x*EXP(1/3*LN(x-a)) ELSE

IF x<a THEN y:=EXP

y:=x*SIN(a*x);

WriteLn(' x=',x, ' a=',a' x=',x)

end.

Первый условный оператор проверяет условие x>a и в случае его выполнения (имеет значение TRUE) осуществляется переход к оператору, вычисляющему y:=x*EXP(1/3*LN(x-a)), иначе проверяется условие x<a. Если это условие выполняется, осуществляется переход к оператору, вычисляющему y:=EXP , иначе (при x=a) -.к оператору y:=x*SIN(a*x). После перехода по к вычислениям по любой из формул осуществляется переход в общую ветвь к оператору вывода результатов.




Поделиться с друзьями:


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


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



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




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