Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КНИГА_Учимся программировать TURBO PASCAL 7.doc
Скачиваний:
32
Добавлен:
19.08.2019
Размер:
1.62 Mб
Скачать

1.3. Операторы языка

Операторы языка описывают некоторые алгоритмические дей­ствия, которые необходимо выполнить для решения задачи. Тело программы представляет собой последовательность таких операто­ров. Идущие друг за другом операторы программы разделяются точкой с запятой.

Все операторы языка Паскаль можно разбить на две группы: простые и структурированные.

Простые операторы

Простые операторы могут быть:

■ операторами присваивания := ;

■ операторами обращения к процедуре;

■ операторами безусловного перехода GOTO;

■ пустыми операторами.

С помощью оператора присваивания какой-либо переменной присваивается значение, например: F := FALSE;

STR := 'QWERTY':

I := (A+B+C)/C;

Для обращения к процедуре необходимо указать ее имя со списком фактических параметров, например TAB_IN(N, M);

Оператор безусловного перехода GOTO нарушает нормальное выполнение программы и переводит его на указанную метку. Все используемые метки должны быть перечислены в разделе объяв­ления меток, начинающемся зарезервированным словом LABEL.

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

Пустой оператор никаких действий не производит и не ото­бражается в программе.

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

К структурированным операторам в PASCAL 7.0 относятся:

■ составной оператор BEGIN END;

■ условный оператор IF ... THEN;

■ оператор выбора CASE ... OF;

■ оператор цикла FOR ... DO;

■ оператор цикла REPEAT ... UNTIL;

■ оператор цикла WHILE ... DO;

■ оператор над записями WITH.

Составной оператор BEGIN END. Составной оператор пред­ставляет собой совокупность последовательно выполняемых опе­раторов, заключенных в операторные скобки BEGIN и END. На­пример, тело программы заключается в такие функциональные скобки.

Условный оператор IF... THEN. Условный оператор позволяет исполнять те или иные действия в зависимости от выполнения логического условия. Предлагается использовать два таких опера­тора: IF F THEN <оператор 1>; и IF F THEN <оператор 1> ELSE <оператор 2>;

В первом случае, при истинности логического условия F, вы­полняется оператор 1. Альтернативная конструкция отсутствует и заменена точкой с запятой, т. е., если условие ложно, ничто не выполняется.

Во втором случае, при истинности логического условия F, так­же выполняется оператор 1, в противном случае - оператор 2.

Например, чтобы определить, являются ли введенные 3 числа А, В, С углами треугольника, нужно записать:

IF (A>0) AND (B>0) AND (C>0) AND (A+B+C = 180)

THEN WRITELN('ЯВЛЯЮТСЯ УГЛАМИ ТРЕУГОЛЬНИКА')

ELSE WRITELN('HE ЯВЛЯЮТСЯ УГЛАМИ ТРЕУГОЛЬНИКА');

Оператор выбора CASE... OF. С помощью оператора CASE можно выбрать любой вариант из допустимых значений перемен­ной. Он имеет следующую структуру:

CASE PARAMETR OF

Р1 : <оператор 1>;

Р1 : <оператор 2>;

…………

Р1 : <оператор N>;

ELSE <оператор N+1>

END;

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

При использовании оператора CASE можно указывать диапа­зон допустимых значений. Например, чтобы определить, введена ли как символьная переменная цифра, можно написать:

CASE I OF

'0'..'9' : WRITELN('ЦИФPA');

ELSE WRITELN('HE ЦИФРА')

END;

Конструкция ELSE необязательна и может быть опущена.

Оператор цикла FOR ... DO. Оператор безусловного цикла имеет следующую структуру

FOR I := N1 ТО N2 DO

<Тело цикла>;

где I - переменная цикла, которая должна быть перечисляемого типа (целая, символьная и т. д.); N1 - начальное значение пере­менной цикла; N2 - конечное значение переменной цикла.

Безусловный цикл выполняется заданное число раз. Чтобы прервать выполнение досрочно, необходимо увеличить I до ко­нечного значения (I := N2) либо использовать процедуру BREAK, которая прерывает выполнение циклов. Процедура CONTINUE начинает новую итерацию цикла, даже если предыдущая не была завершена.

При программировании может быть использован другой ус­ловный оператор цикла, в котором происходит уменьшение зна­чения переменной: FOR I:= N2 DOWNTO N1 DO

<тело цикла>;

Оператор цикла REPEAT... UNTIL. Этот оператор называется циклом с постусловием, т. к. проверка условия осуществляется после каждого выполнения тела цикла:

REPEAT

<тело цикла>

UNTIL <условие>;

Цикл выполняется до тех пор, пока условие не станет истин­ным.

Например, проверка на то, чтобы задать длину последователь­ности, осуществляется следующим образом: REPEAT

WRITE('ВВЕДИТЕ ДЛИНУ ПОСЛЕДОВАТЕЛЬНОСТИ N =');

READLN (N);

UNTIL N>0;

Цикл выполняется до тех пор, пока пользователь не введет по­ложительное число.

Оператор цикла WHILE ... DO. Этот цикл называется с пред­условием, т. к. проверка проводится до начала очередной итера­ции: WHILE <условие> DO

<тело цикла>;

Цикл выполняется, пока условие истинно. Как только условие нарушается, выполнение цикла завершается.

Например, та же проверка вводимой длины последовательно­сти может быть задана как

READLN(N);

WHILE N<= 0 DO

BEGIN

WRITE('BBEДИТE ДЛИНУ ПОСЛЕДОВАТЕЛЬНОСТИ N =');

READLN (N);

END;

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

Процедуры BREAK и CONTINUE используются в условных циклах так же, как и в безусловных.

Оператор над записями WITH. Оператор работы над записями WITH позволяет при обращении к полям указывать не имя пере­менной, а только идентификатор поля:

WITH HUMAN DO

BEGIN

NAME := 'МУХА;

SURNAME := 'ЦОКОТУХА;

DATE := 1924

END;

Этот фрагмент можно было задать иначе:

HUMAN.NAME := 'МУХА';

HUMAN.SURNAME := 'ЦОКОТУХА;

HUMAN.DATE := 1924;