Информация к уроку 2

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

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

1. Понятие об условном операторе

    Программы, составленные исключительно из операторов присваивания и ввода-вывода, могут иметь только линейную структуру:
Рисунок 1. Блок-схема линейного алгоритма
    Между тем, часто бывает нужно, чтобы какой-нибудь блок программы выполнялся или не выполнялся в зависимости от задаваемого условия. Для подобного разветвления вычислительного процесса служат условные операторы. В Паскале имеется 2 формы условного оператора: полная и сокращенная.
Рисунок 2.  Блок-схема разветвленного алгоритма.

2. Полный условный оператор

   Блок-схему полного условного оператора можно представить так: полной формы.
Рисунок 3. Блок-схема условного оператора
   В общем виде полный условный оператор выглядит следующим образом:
IF
Логическое выражение
THEN
Оператор1
ELSE
Оператор2
;
   Эта запись читается следующим образом: "если логическое выражение справедливо, то выполняется первый оператор, если ложно - второй оператор". Операторы 1 и 2 могут быть простые или составные. Точка с запятой перед словом ELSE не ставится.
   Примеры полных условных операторов:
IF x<0 THEN i:=i+1 ELSE j:=j+1;
IF (x<y) AND (x<>0) THEN begin x:=y/x; y:=y+k end ELSE begin x:=x+0.01; y:=y-k end;

3. Сокращенный условный оператор

   Блок-схему сокращенного условного оператора можно представить так:
Рисунок 4. Блок-схема условного оператора сокращенной формы.
   В общем виде сокращенный условный оператор выглядит следующим образом:
IF
Логическое выражение
THEN
Оператор
;
   Эта запись читается следующим образом: "если логическое выражение справедливо, то выполняется указанный оператор, в противном случае никаких дополнительных изменений в вычисления не приносится".
   Примеры использования условного оператора в сокращенной форме:
IF x>y THEN Max:=x;
IF x<>0 THEN begin a:=y/x; Writeln('A= ', a:6:2) end;

4. Создание сложных разветвлений алгоритма

   Операторы, включаемые в условный оператор, в свою очередь также могут быть условными:
IF
Логическое выражение
THEN
Оператор 1
ELSE
Оператор 2
;
   Использование таких условных операторов, "вложенных" один в другой, требует осторожности, чтобы не запутаться в их структуре. Например, условный оператор
IF условие 1 THEN IF условие 2 THEN оператор 1 ELSE оператор 2;
можно истолковать двояко:
1) IF условие 1 THEN
begin IF условие 2 THEN оператор 1 end
ELSE оператор 2;
2) IF условие 1 THEN
begin IF условие 2 THEN оператор 1 ELSE оператор 2 end;
   По правилам языка Паскаль имеет место 2-я трактовка, т.е. считается, что каждое слово ELSE соответствует первому предшествующему ему слову THEN. Во избежание ошибок рекомендуется четко выделять желаемую форму условного оператора с помощью операторных скобок begin ... end :
IF j<>0 THEN
begin IF x<0 THEN x:=x-1 end
ELSE
begin IF x<y THEN x:=x+0.5 ELSE y:=y+0.5 end;
   Приведем пример программы, использующей условный оператор.
Program Primer1;
Uses Crt;
Var x,y,z:Real;
Begin
        TextColor(Yellow); TextBackGround(Blue);
        ClrScr;
        Write('x= '); Readln(x);
        Write('y= '); Readln(y);
        IF x<0 THEN
                IF x>y THEN z:=x ELSE z:=y
        ELSE 
                IF x<y THEN z:=x ELSE z:=y;
        Writeln('z= ',z:6:2);
        Readln
End.
           

Комментариев нет:

Отправить комментарий