Структурные операторы

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

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

Составной оператор объединяет некоторую последовательность операторов в единый оператор путем заключения этой последовательности в операторные скобки - служебные слова BEGIN и END.

Формат оператора:

BEGIN <оператор 1>;<оператор 2>;..(оператор N> END

Операторы, входящие в составной оператор, выполнятся в том порядке, в котором они записаны.

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

BEGIN I:=0 END

BEGIN Y:=X/2; Х:=Х+H END

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

В Турбо Паскале имеются два условных оператора IF и CASE. Рассмотрим оператор IF. С помощью оператора IF выбирается и выполняется один из операторов, входящих в его состав. Формат оператора: IF <логическое выражение> THEN <оператор1> ELSE <оператор2>

Выполнение такого условного оператора происходит так: если логическое выражение истинно, то выполняется первый оператор, если ложно, то второй.

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

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

В этом случае, если логическое выражение ложно, то не происходит никаких действий.

По синтаксису после THEN и ELSE может стоять только один оператор, поэтому если необходимо выполнить несколько операторов, то их объединяют в составной оператор.

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

IF X<0 THEN I:=I+1 ELSE K:=K+1

IF (X<Y) AND D THEN BEGIN X:=SIN(X); Y:=Y+1 END

Во втором примере D - логическая переменная.

Рассмотрим оператор CASE.

Часто в программе бывает необходимо проверять достаточно много условий и в зависимости от них выполнять те или иные действия. Для этого можно использовать многократно вложенные друг в друга условные операторы. Однако в этом случае программа становится громоздкой и ее трудно понимать. Считается, что число уровней вложения не должно превышать двух-трех. Если же необходимо выбирать из большего числа условий, то целесообразным становится применение оператора варианта.

Формат оператора:

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

<константа варианта 1>:<оператор 1>;

<константа варианта 2>:<оператор 2>;

'...

<константа варианта n>:<оператор n>

END

Селектор варианта может быть любого простого типа, за исключением типа REAL. Константы варианта должны быть того же типа, что и селектор варианта.

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

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

<константа варианта 1>:<оператор 1>;

...

<константа варианта n>:<оператор n>;

ELSE <оператор>

END

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

Для того чтобы пометить оператор в списке выбора, можно использовать несколько констант варианта, а также диапазоны. Например:

CASE CH OF

'A','B','E','I':CH1:=SUCC(CH1);

'K'..'R':CH1:=PRED(CH1)

END;

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

 

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

Приведем примеры программ с использованием рассмотренных выше операторов.

Пример 3.1.

Написать программу вычисления десяти значений функции

y =

Значения х вводятся оператором READ.

Программа 3.1.

PROGRAM PR31;

LABEL 1,2;

VAR I:INTEGER;

X,Y:REAL;

BEGIN

I:=1;

1:IF I>10 THEN GOTO 2;

WRITE('X=');

READ(X);

IF X<0 THEN Y:=ABS(X)

ELSE

IF X<=1 THEN Y:=EXP(X)

ELSE Y:=1/(2*X+1);

WRITELN(' Y=',Y);

I:=I+1;

GOTO 1;

2:END.

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

Программа 3.2.

PROGRAM PR32;

LABEL 1,2,3;

VAR I:INTEGER;

X,S:REAL;

BEGIN

S:=0;

I:=0;

1:READLN(X);

IF X<0 THEN GOTO 2;

IF X=0 THEN GOTO 3;

S:=S+X;

I:=I+1;

GOTO 1;

2:WRITELN ('Недопустимое значение Х');

GOTO 1;

3:IF I>0 THEN WRITELN ('Среднее арифметическое равно',S/I)

ELSE WRITELN ('Пустая последовательность')

END.

 








Дата добавления: 2015-11-06; просмотров: 686;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.