КАТЕГОРИИ: Архитектура-(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) |
Программирование ветвящихся процессов
Вычислительный процесс называется ветвящимся, если для его реализации предусмотрено несколько направлений (ветвей). Каждое отдельное направление процесса обработки данных является отдельной ветвью вычислений. Ветвление в программе – это выбор одной из нескольких последовательностей команд при выполнении программы. Выбор направления зависит от заранее определенного признака, который может относиться к исходным данным, к промежуточным или конечным результатам. Признак характеризует свойство данных и имеет два или более значений. Ветвящийся процесс, включающий в себя две ветви, называется простым, более двух ветвей – сложным. Сложный ветвящийся процесс можно представить с помощью простых ветвящихся процессов. Направление ветвления выбирается логической проверкой, в результате которой возможны два ответа: «да» — условие выполнено и «нет» — условие не выполнено. Следует иметь в виду, что, хотя на схеме алгоритма должны быть показаны все возможные направления вычислений в зависимости от выполнения определенного условия (или условии), при однократном прохождении программы процесс реализуется только по одной ветви, а остальные исключаются. Любая ветвь, по которой осуществляются вычисления, должна приводить к завершению вычислительного процесса. На рисунке 4.1 показан общий вид алгоритма с ветвлением. Рисунок 4.1 – Общий вид алгоритма с ветвлением В качестве линейного участка 1 часто выступает ввод данных, а в качестве линейного участка 2 – вывод результата. На Паскале для реализации ветвления используется условный оператор if. Его синтаксис: if (условие) then оператор1 else оператор2; На рисунке 4.2 показан общий вид алгоритма с ветвлением для случая, когда в ветвях находится более одного оператора. В этом случае ветвь в программе помещается в операторные скобки begin – end. Рисунок 4.2 – Общий вид алгоритма с ветвлением с двумя операторами в ветвях Фрагмент участка с ветвлением для БСА (см. рисунок 4.2) примет вид: if (условие) then begin { Начало ветви ДА } оператор1; оператор2; end { Конец ветви ДА } else begin { Начало ветви НЕТ } оператор3; оператор4; end; { Конец ветви НЕТ } На рисунке 4.3 показан общий вид алгоритма со сложным ветвлением. Рисунок 4.3 – Общий вид алгоритма со сложным ветвлением Фрагмент программы, отражающий сложное ветвление (см. рисунок 4.3) имеет вид: if (условие1) then оператор1; else if (условие2) then оператор2 else оператор3; Задача 2. Вычислить выражение на Паскале. Построить блок-схему алгоритма и написать программу. Решение. Блок-схема алгоритма показана на рисунке 4.4. В первом символе решения проверяется условие первой ветви системы, во втором символе решения – условие второй ветви решения, в третьем символе решении – условие третьей ветви системы. Если все проверки условия дадут ложный результат, то выведется сообщение об отсутствии решения. Рисунок 4.4 – Блок-схема алгоритма решения задачи № 2 Текст программы, написанной по блок-схеме алгоритма (см. рисунок 4.4): Program lab2; uses crt; var x,y:real; begin clrscr; writeln('Vvedite x'); readln(x); if (-1<x) and (x<=0.3) then begin y:=(10*cos(x/2))/(3*sin(x)); writeln('y=',y:5:4); end else if (0.3<x) and (x<1.1) then begin y:=3*x*x*x*x*x*x*x*x*x*x*x*x+7*x*x*x*x*x+6; writeln('y=',y:5:4); end else if (x>=1.1) then begin y:=5; writeln('y=',y:5:4); end else writeln('No solution') end. Блок-схему (см. рисунок 4.4) можно перестроить так (рисунок 4.5), чтобы можно было сократить количество операторов вывода. Рисунок 4.5 – Блок-схема алгоритма решения задачи № 2 Текст программы, написанной по блок-схеме алгоритма (см. рисунок 4.5): Program lab2; uses crt; var x,y:real; begin clrscr; writeln('Vvedite x'); readln(x); if (x<=-1) then writeln('No solution') else begin if (x<=0.3) then y:=(10*cos(x/2))/(3*sin(x)); else if (x<1.1) then y:=3*x*x*x*x*x*x*x*x*x*x*x*x+7*x*x*x*x*x+6; else y:=5; writeln('y=',y:5:4); end end. Результаты работы программы показаны на рисунке 4.6. Рисунок 4.6 – Результаты работы программы для задачи № 2
Дата добавления: 2014-11-07; Просмотров: 1521; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |