Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика 3-4(ЯП)+.doc
Скачиваний:
133
Добавлен:
10.06.2015
Размер:
681 Кб
Скачать
☆

Структурные операторы в алгоритмических языках программирования

Программная логика всех языков программирования строится таким образом, что выполнение программы происходит «слева направо» при обработке выражений и операторов в строках программы и «сверху вниз» по ходу строк программы. Тогда как простейшие программы могут быть написаны с использованием такого однонаправленного последовательного выполнения, то большинство сложных реальных программ и алгоритмов требует возможности изменения порядка следования операторов с помощью специальных программных управляющих структур(сontrol structures) – операторов управления потоком программы. Как уже упоминалось, теоретический анализ ЯП показывает, что любой сколь угодно сложный алгоритм программы может быть реализован с помощью трех фундаментальных управляющих структур:

 управляющая структура следованияили так называемый линейный алгоритм. Этой структуре соответствует естественный порядок однонаправленного исполнения;

 управляющая структура ветвления(decision structure) или структура выбора, которой соответствует такой порядок выполнения операторов, при котором в зависимости от условия (некоторого логического выражения) блок операторов может, быть либо выполнен, либо нет;

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

Основным признаком структурного оператора является возможность размещать внутри себя другие операторы (отсюда и такое название – структурный). Простейшим структурным оператором является составнойоператор (compound) или так называемыеоператорные скобки(statementbrackets).

В языках C/C++ иOPдекларируется, что в том месте, где может быть поставлен одиночный оператор, может быть поставлен и операторный блок, состоящий из операторных скобок и расположенных внутри них других операторов. Такой операторный блок может рассматриваться как неделимое целое со сложной внутренней структурой. Операторный блок вC/C++ ограничивается фигурными скобками «{ }», между которыми находится последовательность одиночных операторов:

{

int x;

double y;

x = 1;

y = 0.1;

x = x + y; y = y + 0.1;

};

Операторные скобки в OP реализованы с помощью ключевых слов BEGINиEND, которые открывают и закрывают операторный блок:

begin

x := 1;

y := 0.1;

x := x + y; y := y + 0.1;

end;

Операторные скобки могут быть вложены одна в другую:

begin

x := 1;

begin

y := 2;

end;

end;

причем в С/С++ операторные скобки ограничивают область видимости переменных. Так, в следующем примере показаны вложенные операторные скобки с объявлением двух различных, но одноименных переменных:

{

int x = 1;

{

int x = 2; // это другая переменная х

}

}

  1. Управляющие структуры выбора

  1. Основным элементом любого оператора ветвления, реализующего структуру выбора, является логическое выражение, которое строится с использованием операторов сравнения (relational operators) и логических операторов (logic operators). Во всех ЯП определен схожий набор операторов сравнения и логических операторов. К основным из них относятся операторы сравнения:

 равенство – =;

 неравенство – <>;

 меньше – <;

 больше – >;

 меньше или равно – <=;

 больше или равно – > =.

Во всех выражениях с использованием операторов сравнения участвует два операнда и результатом такого выражения является значение логического(булевского) типа, т.е истина или ложь. В следующем примере переменной логического типаbRes присваивается значениеFALSE соответствующее ложному результату выполнения оператора сравнения:

x = 10

bRes = x < 10

Истинное значение булевского типа в ЯП обозначается ключевым словом TRUE, а ложное –FALSE.

К выражениям и переменным, возвращающим логическое значение применимы логические операторы:

 NOT – логическое отрицание;

 AND – логическое умножение;

 OR – логическое сложение;

 XOR– логическое сложение по модулю 2 (исключающее ИЛИ);

Оператор NOT является однооперандным оператором, изменяющим значение логического выражения на противоположное. В следующем примере булевская переменная принимает значение FALSE:

x := 100;

bSwitch := not (x < 10);