Пример составного оператора
Begin (обмен значений переменных X и Y )
Z:=X;
X:=Y;
Y:=Z;
End
Оператор процедуры
Этот оператор, называемый также вызовом процедуры, задает выполнение операторов, определенных в теле процедуры. После завершения выполнения процедуры управление передается на оператор, следующий за оператором процедуры.
Вызов процедуры может сопровождаться передачей значений фактических параметров, если в определении процедуры был указан список соответствующих формальных параметров. Диаграмма для оператора процедуры выглядит следующим образом
Примеры операторов процедуры
Exit Program
Multiply_Matrixes (A,B)
Контрольные вопросы
- Понятие оператора, перечислите известные вам операторы?
- Простые и составные операторы, примеры?
- Оператор ввода-вывода, структурная схема, примеры
- Оператор присваивания, структурная схема, примеры?
- Составной оператор, структурная схема, примеры?
- Оператор процедуры, структурная схема, примеры?
Самостоятельная работа
Тема 2.2.2. Операторы условного и безусловного перехода.
Оператор безусловного перехода. Условный оператор. Оператор варианта.
После изучения темы студент должен
знать:
- Оператор безусловного перехода;
- Условный оператор;
- Оператор варианта
Уметь
- Составлять программы с использованием операторов ветвления.
Оператор перехода
Оператор безусловного перехода вызывает передачу управления оператору, которому предшествует метка. Синтаксическая диаграмма для оператора перехода имеет следующий вид:
В авторской версии языка метка представляет собой целое десятичное число в диапазоне от 1 до 9999. TurboPascal допускает использование в качестве меток также и идентификаторов. В любом случае при использовании операторов перехода должны соблюдаться следующие правила:
- Все метки используемые в блоке, должны быть описаны, причем каждая не более одного раза. Описание меток имеет следующий вид:
- Метка, указанная в операторе перехода, должна помечать оператор, находящийся в том же блоке, что и сам оператор перехода. Таким образом НЕ ДОПУСКАЮТСЯ переходы вовне процедур (функций) или внутрь них.
- переход внутрь структурного оператора может вызвать непредсказуемые эффекты, хотя компилятор не выдает сообщение об ошибке.
Использование безусловных передач управления в программе считается теоретически избыточным и подвергается серьезной критике, так как поощряет создание малопонятных и трудно модифицируемых программ, которые вызывают большие сложности при отладке и сопровождении. При использовании операторов перехода рекомендуется соблюдать следующие правила:
- Следует стремиться применять операторы перехода для передачи управления только вниз по тексту программы; при необходимости передачи управления «назад» следует использовать операторы цикла
- Расстояние между меткой и оператором перехода на нее не должно превышать одной страницы текста
Условный оператор
Условные операторы предназначены для выбора к исполнению одного из двух возможных действий (операторов) в зависимости от некоторого условия (при этом одно из действий может быть пустым, то есть отсутствовать). В качестве условия выбора используется значение логического выражения. Синтаксическая диаграмма для условного оператора представлена ниже (полная развилка).
Данный оператор выполняется следующим образом. сначала вычисляется значение, стоящее после служебного слова if. Результат вычисления должен иметь булевский тип. Если значение есть true, то выполняется оператор указанный после служебного слова then. Если результат вычисления есть false, выполняется оператор, следующий за служебным словом else. Если при этом часть условного оператора, начиная со слова else, отсутствует, то управление немедленно передается оператору, следующему за условным.
Поскольку развилка может быть неполной, то возможна и неполная форма записи условного оператора:
IF <логическое выражение> THEN серия;