Программирование разветвляющихся процессов

Цель работы - выработать умение составлять программы, где на определенном этапе производится выбор очередного выполняемого оператора в результате анализа некоторых условий.

Теоретическая часть.

Возможность создать разветвляющуюся программу обеспечивается условными операторами if…then и if…then…else, где if, then и else – служебные слова.

Рассмотрим первый из них. Он имеет краткую форму:

if B then S;

Здесь B- логическое выражение, S– любой оператор.

Поясним понятие «логическое выражение». Простейшим примером логического выражения является логическая переменная. Возможных значений у логического выражения, в частности, у логической переменной всего два, одно из них называется «истина», другое – «ложь». Для этих значений зарезервированы служебные слова true и false.

Другой пример логического выражения – условие, образуемое с помощью операций отношения, например, x<3, где x- некоторая переменная типа real. Если в процессе выполнения программы xприняло такое значение, что неравенство x<3 выполняется, то значением логического выражения является true, в противном случае false.Операций отношения всего шесть: > - больше, < - меньше, = - равно, <> - не равно, >= - больше или равно, <= - меньше или равно.

Вернемся к оператору if BthenS. Когда наступает очередь его выполнения, вычисляется логическое выражение B. Если оказывается, что оно имеет значение true, то далее выполняется оператор S, если же false, то оператор Sпропускается и выполняется оператор, следующий за условным.

Второй условный оператор имеет полную форму:

if B then S1 else S2;

где, как и в первом случае, B- логическое выражение, S1 и S2 - любые операторы.

При выполнении оператора анализируется выражение B.Если оно имеет значение true, выполняется оператор S1, в противном случае выполняется оператор S2.

Операторы S,S1,S2, входящие в условные операторы, в свою очередь могут быть условными, например:

if B1 then if B2 then S

Такие операторы можно назвать вложенными условными операторами. Правила, по которым определяется порядок их выполнения, вытекают из рассмотренных уже правил действия условных операторов.

Предположим, что требуется вычислить функцию:

Приведем программу решения этой задачи:

program func;

var x,y: real;

begin

write (‘x=’);

readln (x);

if x>1 then y:=x-1

else if x<-1 then y:= x+1

else y:= 0;

writeln(‘y(x)=’,y);

end.

Иногда действие вложенных условных операторов можно понимать не единственным образом. Для более наглядной записи возможной интерпретации действия операторов будем использовать так называемые операторные скобки - пару служебных слов – begin и end. Группа операторов, заключенных в операторные скобки, называется составным оператором и выполняется в программе как один оператор. Например, операторы S,S1,S2, входящие в условные операторы, могут быть составными. В таком случае, в зависимости от условия, либо выполняются все операторы внутри составного, либо они все пропускаются. В операторные скобки можно заключить и один оператор, чтобы явным образом обозначить его границы. Рассмотримоператор:

if B1 then if B2 then S1 else S2;

Можно считать, что он действует следующим образом:

if B1 then begin if B2 then S1

else S2

end;

или if B1 then begin if B2 then S1 end

else S2;

Для устранения неоднозначности в понимании вложенных условных операторов считается, что часть else связывается с ближайшей сверху по ходу написания программы частью then, которая не имеет части else. Следовательно, рассмотренный условный оператор интерпретируется по первому варианту его действия.

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

1.Какие формы условных операторов вам известны?

2.Как работает условный оператор?

3.Объясните понятие вложенного оператора.

4. Объясните понятие составного оператора.

Задания

Написать программу, вычисляющую значение следующей функции:

1. w =

2. v =

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

21.

22.

23.

24.

25.

26.

27.

28.

Лабораторная работа №3.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: