Студопедия

КАТЕГОРИИ:


Архитектура-(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; Просмотров: 1452; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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