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

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

Оператор Модуль Назначение Пример
IF SYSTEM

Предназначен для ветвления процесса выполнения программы в зависимости от условия. Форма записи:

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

IF, THEN, ELSE — если, то, иначе;
<условие> — произвольное выражение логического типа;
<оператор_1>,
<оператор_2> — любые исполняемые операторы.

VAR
 X, Y, MAX: INTEGER;
BEGIN
 ...
 IF X>MAX THEN
  Y:=MAX
 ELSE
  Y:=X;
 ...

Условный оператор работает по следующему алгоритму. Вначале вычисляется условное выражение <условие>. Если результат есть TRUE (истина, т.е. условие выполняется), то выполняется <оператор_1>, а <оператор_2> пропускается; если результат есть FALSE (ложь, т.е. условие не выполняется), наоборот, <оператор_1> пропускается, а выполняется <оператор_2>.

Часть ELSE <оператор_2> условного оператора может быть опущена, тогда получается краткая форма записи оператора IF. Краткая форма записи:

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

Тогда при выполнении условия выполняется <оператор>, в противном случае этот оператор пропускается.

Пример программы.

Program Oper_If;
 Var
  a, b : Integer;
  c    : Char;
BEGIN
 Write('Введите два числа: ');
 Readln(a,b);
 Write('Сложить их (y/n)? ');
 Readln(c);
 If c='y' Then
  Begin
   a:=a+b;
   Writeln('Результат = ', a);
  End
 Else
  Writeln('Не очень-то и хотелось.');
END.

Блок—схема алгоритма

Знаки отношений.

Логические операции.

NOT — логическое НЕ (логическое отрицание);
AND — логическое И (логическое умножение);
OR — логическое ИЛИ (логическое сложение).

В отличие от многих других языков программирования в Turbo Pascal логические операции имеют более высокий приоритет, чем операции отношения. В связи с этим, в сложных логических выражениях обычно необходимо расставлять скобки. Выражение типа:

IF A = B AND C < D THEN ...

вызовет сообщение о синтаксической ошибке, так как сначала выполнится операция B AND C. Правильным будет выражение:

IF (A = B) AND (C < D) THEN ...

Условие — выражение логического типа (отношение одного значения или выражения к другому), которое можно заменить на логическую переменную (переменная типа Boolean). Приведённые ниже записи равнозначны между собой:

Var
 a, b : Integer;
...
If a > b Then Writeln(a);
 
Var
 a, b : Integer;
 u : Boolean;
...
 u:=a > b;
 If u Then Writeln(a);

Таблица использования логических операций.

Пример применения логических операций.

На числовой оси выделен диапазон значений (от 3 до 10, за исключением 5). Составить условие для этого диапазона.

Математическая форма условия: или .

Запись условий для IF:

((3<=x)and(x<5)) or ((5<x)and(x<=10)) или (3<=x) and (x<=10) and (x<>5)

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

Составной оператор — это группа исполнительных операторов, заключённых между BEGIN и END;, которые воспринимаются компилятором как один <большой> оператор (см. пример программы).