Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы к ПиОА (теория).doc
Скачиваний:
97
Добавлен:
28.10.2018
Размер:
9.91 Mб
Скачать

2.7.3. Оператор вызова процедуры

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

Writeln('Hello!'); // Вызов стандартной процедуры вывода данных

MyProc; // Вызов процедуры, определенной программистом

2.7.4. Составной оператор

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

begin

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

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

<оператор N>

end

Частным случаем составного оператора является тело следующей программы:

program Console;

{$APPTYPE CONSOLE}

uses

SysUtils;

var

X, Y: Integer;

begin

X := 4;

Y := 6;

Writeln(X + Y);

Writeln('Press Enter to exit...');

Readln; // Точка с запятой после этого оператора не обязательна

end.

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

Составной оператор может находиться в любом месте программы, где разрешен простой оператор. Он широко используется с условными операторами и операторами повтора.

  1. Оператор ветвления if Оператор ветвления if

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

if <условие> then

<оператор 1>

else

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

Условие — это выражение булевского типа, оно может быть простым или сложным. Сложные условия образуются с помощью логических операций и операций отношения. Обратите внимание, что перед словом else точка с запятой не ставится.

Логика работы оператора if очевидна: выполнить оператор 1, если условие истинно, и оператор 2, если условие ложно. Поясним сказанное на примере:

program Console;

{$APPTYPE CONSOLE}

uses

SysUtils;

var

A, B, C: Integer;

begin

A := 2;

B := 8;

if A > B then

C := A

else

C := B;

Writeln('C=', C);

Writeln('Press Enter to exit...');

Readln;

end.

В данном случае значение выражения А > В ложно, следовательно на экране появится сообщение C=8.

У оператора if существует и другая форма, в которой else отсутствует:

if <условие> then <оператор>;

Логика работы этого оператора if еще проще: выполнить оператор, если условие истинно, и пропустить оператор, если оно ложно. Поясним сказанное на примере:

program Console;

{$APPTYPE CONSOLE}

uses

SysUtils;

var

A, B, C: Integer;

begin

A := 2;

B := 8;

C := 0;

if A > B then C := A + B;

Writeln('C=', C);

Writeln('Press Enter to exit...');

Readln;

end.

В результате на экране появится сообщение С=0, поскольку выражение А > В ложно и присваивание С := А + В пропускается.

Один оператор if может входить в состав другого оператора if. В таком случае говорят о вложенности операторов. При вложенности операторов каждое else соответствует тому then, которое непосредственно ему предшествует. Например:

program Console;

{$APPTYPE CONSOLE}

uses

SysUtils;

var

A: Integer;

begin

Readln(A);

if A >= 0 then

if A <= 100 then

Writeln('A попадает в диапазон 0 - 100.')

else

Writeln('A больше 100.')

else

Writeln('A меньше 0.');

Writeln('Press Enter to exit...');

Readln;

end.

Конструкций со степенью вложенности более 2–3 лучше избегать из-за сложности их анализа при отладке программ.