Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 5_Операторы ТР.doc
Скачиваний:
1
Добавлен:
24.08.2019
Размер:
163.33 Кб
Скачать
  1. Условный оператор

Условный оператор используется для программирования развил­ки, если условие сформулировано как логическое выражение.

IF <логическое выражение> THEN<оператор 1>

[ ELSE <оператор 2>] ; <следующий оператор >;

Оператор выполняется таким образом: если результат вычисления логического выражения TRUE, то выполняется <оператор 1>, затем <следующий оператор >; если - FALSE, то выполняется <оператор 2>, затем <следующий оператор>. Операторы 1 и 2 могут быть простым или составным оператором. Если часть оператора, начинающаяся ELSE, от­сутствует, то при логическом выражении равным FALSE, будет выпол­няться <следующий оператор>. При вложенности условных операторов ELSE всегда относится к ближайшему предшествующему IF. Следует избегать большой глубины вложенности условных операторов, так как при этом теряется наглядность и возможно появление ошибок.

Пример: ………….

IF A > 0 THEN P := P + 1

ELSE

IF A < 0 THEN O := O + 1

ELSE N := N + 1 ;

……….

IF A > 0 THEN

BEGIN

S := S+ A ; K := K + 1

END ;

Примеры полных условных операторов:

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;

Примеры использования условного оператора в сокращенной форме:

IF x>y THEN Max:=x;

IF x<>0 THEN begin a:=y/x; Writeln('A= ', a:6:2) end;

  1. Оператор выбора

Оператор выбора CASE может быть использован вместо услов­ного оператора, если требуется сделать выбор более, чем из двух воз­можностей.

CASE <селекторное выражение> OF

<метка1> : <оператор 1> ;

<метка2> : <оператор 2> ;

…………..

<меткаN> : <операторN>

[ ELSE <оператор>]

END;

Селекторное выражение (селектор, переключатель) и метки-константы (метки варианта, метки выбора) должны иметь один и тот же простой тип (кроме вещественного). Метки-константы в отличие от ме­ток программы не требуется описывать в разделе описания меток. Но на них нельзя ссылаться в операторе GOTO. Метки варианта могут быть перечисляемого и интервального типа.

Оператор выбора выполняется следующим образом. Сначала вы­числяется селекторное выражение; затем выполняется оператор, метка варианта которого равна текущему значению селектора; после этого происходит выход из оператора CASE на следующий оператор. Если значение селектора не совпадает ни с одной из меток варианта, будет выполнен оператор после ELSE. Если ветвь ELSE отсутствует, то управление передается следующему за CASE оператору.

Пример:Вычислено значение К. Если К=0, то Z= ln x, при K=1 Z=ln x , при K=2 Z=sin x, при K=3 Z=cos x, в остальных случаях Z=0.

………..

CASE K OF

0: Z := LN(X) ;

1: Z := EXP(X) ;

2: Z := SIN(X) ;

3: Z := COS(X)

ELSE

Z := 0 END ; ...

В этом примере результат вычисляется по одной из стандартных функций в зависимости от параметра К, который получает свое значение перед выполнением этого оператора.

В следующем примере переменная OTVET получает значение YES или NO в зависимости от введенного значения символьной пере­менной V. Здесь метки варианта задаются перечислением.

VAR V CHAR;

OTVET : STRING;

………….

CASE V OF

'D', 'd', 'Д', 'д' : OTVET := 'YES';

'N', 'n', 'Н', 'н' : OTVET := 'NO'

ELSE

OTVET := ' '

END; .

В следующем примере метки выбора заданы интервалом.

VAR V CHAR;

OTVET : STRING;

………….

CASE V OF

'A' . . 'Z','a' . . 'z' : OTVET := 'буква';

'0' . . '9' : OTVET := 'цифра'

ELSE

OTVET := 'специальный символ'

END;