Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Разветвляющиеся структуры.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
352 Кб
Скачать
☆

2.2 Логические выражения

Логические выражения строятся из логических констант и переменных, логических операций и операций отношения. В операциях отношения могут участвовать арифметические и логические выражения, а также символьные данные. Результатом логического выражения является значение True (истинно) или False (ложно). Для записи логических выражений используются следующие логические операции (табл. 2) и операции отношения (табл. 3).

Таблица 2 - Логические операции

Операция

Действие

Пример

Not

Отрицание

not A

And

Логическое “и”

A and B

Or

Логическое “или”

A or B

Xor

Исключающее “или” (сложение по модулю два)

A xor B

Таблица 3 - Операции отношения.

Операция

Действие

Пример

=

Равно

A=B

<>

Не равно

A<>B

<

Меньше

A<B

>

Больше

A>B

<=

Меньше или равно

A<=B

>=

Больше или равно

A>=B

При вычислении арифметических и логических выражений принят следующий приоритет операций:

not;

*, /, div, mod, and;

+, -, or, xor;

операции отношения.

Логические операции not, and, xor могут выполняться не только над логическими операндами (А, В), но и над целыми числами. В этом случае выполняется соответствующие побитовые операции с учетом двоичного представления операндов. При выполнении операций отношения оба операнда (А, В) должны быть одного и того же типа. Допускается лишь одно исключение: А - целого типа, В -вещественного (и наоборот). В логическом выражении допускается использование круглых скобок. При наличии скобок сначала выполняются действия в скобках (в первую очередь в самых внутренних), а затем вне скобок. В круглые скобки обязательно заключаются части выражения, стоящие слева от логических операций AND и OR.

Составим программу для вычисления логического выражения.

Пример 2. Вычислить логическое выражение

А=(B or C) and (D or E or F);

program log1;

const

B=False;

C=True;

D=True;

E=False;

F=True;

var

A: boolean;

begin

A: =(B or C) and ((D or E )or F);

Write('A=', A)

end.

3 Операторы передачи управления

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

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

3.2 Оператор безусловного перехода

Оператор безусловного перехода вызывает передачу управления оператору, которому предшествует метка. Общий вид такой:

goto метка;

Метка должна быть описана в разделе label. Объявление метки имеет вид: label метка;

Допускается объявить список меток:

label метка1, метка2, метка3;

Между меткой и данным оператором можно включить один или несколько пробелов.

Пример.

label 10, М2

goto М2;

10: A:=2;

. . . . . . . .

32: Y: =X/A;

Оператор, следующий непосредственно после оператора goto, всегда должен иметь метку (иначе он никогда не будет выполнен).

Между словами go и tо пробел не допускается.

При использовании элементов перехода должны соблюдаться следующие правила:

Все метки, используемые в блоке, должны быть описаны, причем каждая не более одного раза.

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

Переход внутрь структурного оператора может вызвать непредсказуемые эффекты, хотя компилятор не выдает сообщения об ошибке. Использование безусловных передач управления в программе считается теоретически избыточным и подвергается серьезной критике, так как поощряет создание малопонятных и трудно модифицируемых программ, которые вызывают большие сложности при отладке и сопровождении. При использовании операторов перехода рекомендуется соблюдать следующие правила:

следует стремиться применять операторы перехода (если кажется невозможным обойтись без них) для передачи управления только ВНИЗ по тексту программы (вперед); при необходимости передачи управления “назад” следует использовать операторы цикла.

расстояние между меткой и оператором перехода на нее не должно превышать одной страницы текста (или высоты экрана дисплея).