Составной и пустой операторы
Методические указания к выполнению лабораторной работы
Программирование разветвленных алгоритмов. Оператор IF
Цель работы: освоить методику программирование разветвленных алгоритмов в АВС Pascal.
Программное обеспечение: система программирования АВС Pascal.
Логические выражения
Логическая константа может принимать только два значения: FALSE (ложь) и TRUE (истина). Переменные логического типа объявляются ключевым словом BOOLEAN в разделе описания переменных VAR и также могут принимать только два значения FALSE или TRUE (FALSE<TRUE).
Для данных логического типа значению FALSE соответствует в компьютере число 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) <метка>: ;