Составной и пустой операторы

Методические указания к выполнению лабораторной работы

Программирование разветвленных алгоритмов. Оператор IF

Цель работы: освоить методику программирование разветвленных алгоритмов в АВС Pascal.

 

Программное обеспечение: система программирования АВС Pascal.

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

Логическая константа может принимать только два значения: FALSE (ложь) и TRUE (истина). Переменные логического типа объявляются ключевым словом BOOLEAN в разделе описания переменных VAR и также могут принимать только два значения FALSE или TRUE (FALSE<TRUE).

Для данных логического типа значению FAL­SE соответствует в компьютере число 0, значению TRUE – число 1, которые записываются в ячейку памяти длиной 1 байт [6, 7].

Простым логическим выражением называется выражение, содержащее только логические операнды (константы или переменные типа Boolean). В сложных логических выражениях кроме логических операндов используются бинарные и/или унарные логические операции, а также стандартные функции и операции отношений: <, <=, >, >=, =, <> .

Операции отношения также относятся к операциям логического типа. Их можно использовать для проверки соотношений между переменными и константами типов real, integer, char, string. Например: a < b, x>=0, x=y и т.д.

К бинарным операциям относятся логические операции: AND (логическое "И"), OR (логическое "ИЛИ"), XOR ("исключающее ИЛИ"), а к унарным - операция NOT (отрицание "НЕ").

В логических выражениях без скобок согласно приоритету логических операций сначала выполняется операция NOT, затем AND, после неё OR и XOR, а в последнюю очередь - операции отношений.

Логические операции используют понятия алгебры логики (булевой алгебры). Они применяются в задачах, когда нужно проверить какое-либо сложное условие.

Операция конъюнкции and (логическое умножение) в логическом выражении A and B дает результат true (истина), если A и B имеют значение true, иначе во всех остальных случаях – false (ложь).

Операция дизъюнкции or (логическое сложение) в логическом выражении A or B дает результат false, если A и B одновременно имеют значение false, во всех остальных случаях – true.

Операция инверсии not (логическое отрицание) в логическом выражении not A дает результат true, если A = false и, наоборот, при A = true выражение not A примет значение false.

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

Пример:

VAR С, D: REAL;

X, Y, A, B: BOOLEAN;

BEGIN

X :=A OR B;

Y := (C>0) AND (C<D); …

END.

Логический результат дает стандартная функция ODD(x) проверки на нечетность числа x, функции EOLN (f) проверки конца строки и EOF(f) определения конца файла f.

 

Условный оператор IF

Условный оператор позволяет проверить некоторое условие и в зави­симости от результата проверки этого условия выполнить то или иное действие, т.е. создать ветвление в программе.

Структура условного оператора в полной форме имеет следующий вид:

IF <условие> THEN <оператор1> ELSE <оператор2>;

(если) (то) (иначе)

где <условие> - это выражение логического типа, которое может принимать только два значения: TRUE (истина) или FALSE (ложь).

Правило выполнения условного оператора. Вначале вычисляется значение <условия>, стоящего за IF. Если результат условия исти­нен (TRUE), то выполняется только <оператор1>, а <оператор2> пропускается и выполняется следующий оператор. В против­ном случае выполняется <оператор2>, а <оператор1> пропускается и выполняется следующий оператор в программе.

Структура условного оператора в сокращенной форме следующая:

IF <условие> THEN <оператор1>;

Здесь в случае ложности <условия>, стоящего за IF, пропускается <оператор1> и выполняется следующий за ним оператор программы.

В качестве <оператор1> или <оператор2> по синтаксису может выполняться толь­ко один оператор Паскаля. Для выполнения послеTHEN или после ELSE неcколь­ких операторов применяется составной оператор с операторными скобками ( BEGIN END ) .

Несколько условных опеpатоpов могут быть вложены друг в друга. Ниже приведен пример вложения для трёх условных опеpатоpов:

IF <условие1> THEN

IF <условие2> THEN

IF <условие3> THEN <оператор3> ELSE <оператор4>

ELSE <оператор2>

ELSE <оператор1>;

Составной и пустой операторы

Составной оператор используется в том случае, когда по правилам синтаксиса сложного оператора должен стоять только один оператор, а в алгоритме необходимо выполнить некоторую последовательность действий. Составной оператор объединяет эту последовательность в единый по син­таксису оператор путем заключения в операторные скобки begin иend. Например:

ВEGIN

<оператор1>;

<оператор2>;

. . .;

<операторN>

END;

 

 

Для составного оператора допускается любая глубина вложенности:

BEGIN

BEGIN

. . .

BEGIN

. . .

END;

. . .

END;

END ;

Пустой оператор не выполняет никаких действий и может быть исполь­зован для передачи управления в конец составного оператора. Пустой оператор записывается в виде точки с запятой.

Например, пустыми операторами будут следующие записи:

1) ; ; 2) <метка>: ;