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

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


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

Структура условного оператора имеет следующий вид:

If <условие> then <оператор1> else <оператор2>;

If, then, else –зарезервированные слова (если, то, иначе);
<условие> - произвольное выражение логического типа;
<оператор1>, <оператор2>- любые операторы языка Турбо Паскаль.

Выполнение условного оператора начинается с вычисления значения логического выражения, записанного в условии. Простые условия записываются в виде равенств или неравенств. Сложные условия составляют из простых с помощью логических операций, при этом каждое условие берется в скобки. Если условие истинно (true), то выполняется <оператор1>, а <оператор2> пропускается. Если условие ложно (false), то <оператор1> пропускается, а выполняется <оператор2>. Если в качестве оператора должна выполниться серия операторов, то они объединяются в операторные скобки begin - end.

Пример 1. Вычислить значение выражения max(x+y+z, xyz) + 3 при заданных x, y и z:

Program ех_1;
Uses crt;
Var x, y, z, m: integer;
Begin Clrscr;
Writeln(‘Введите x, y и z: ’);
Readln(x, y, z);
If (x + y + z) > x * y * z then
Begin
m:= x + y + z + 3;
Writeln(m);
end
Else writeln(x * y * z + 3);
Readkey;
End.

Ветвь else может отсутствовать, если в случае невыполнения условия ничего делать не надо. Тогда условный оператор называется неполным.

Пример 2. Например, если значение переменной x меньше 0, то заменить x на .

Program ех_2;
Uses crt;
Var x: integer;
Begin Clrscr;
Writeln(‘Введите x: ’);
Readln(x);
If x < 0 then x:=sqr(x);
Writeln(x);
Readkey;
End.

Вложенные операторы условия

Часто приходится выбирать путь решения задачи не из двух, а из нескольких возможных. В программировании это можно реализовать, используя несколько условных операторов. В этом случае после служебных слов then и else записывается новый условный оператор. Если элементами вложенных условных операторов служат неполные условные операторы, то служебное слово else относится к ближайшему if.

Пример 3. Даны целые числа a, b, c. Если a <= b <= c, то все числа заменить квадратами, если a > b > c, то каждое число заменить наименьшим из них, в противном случае сменить знак каждого числа.
Program ex_3;
Uses crt;
Var a, b, c: integer;
Begin Clrscr;
    Writeln(‘Введите числа: ’);
    Readln(a, b, c);
        If (a <= b) and (b <= c) then
            Begin
                a:= sqr(a); b:= sqr(b); c:= sqr(c);
            End
        If (a > b) and (b > c) then
            Begin
                a:=c; b:=c;
            End
        Else
            Begin
                a:=-a; b:=-b; c:=-c;
            End;
    Writeln(‘a =’, a,’ b = ‘,b,’ c = ‘,c);
    Readkey;
End.

Назад

Далее