Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции(ЯВУ)-Паскаль.doc
Скачиваний:
63
Добавлен:
31.03.2015
Размер:
1.08 Mб
Скачать

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

Составной оператор объединяет группу операторов в единое целое, после чего они рассматриваются компилятором как один оператор.

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

Begin<оператор 1>; <оператор 2>; …<операторn>end

Составной оператор используется в тех случаях, когда в программе допускается написать один оператор, а требуется выполнить группу операторов. Составной оператор соответствует алгоритмической структуре “Следование” (см. рис. 7.1).

К условным операторам относятся операторы if и case. Условный оператор if обеспечивает выбор из двух альтернатив в зависимости от условия и имеет следующий синтаксис:

If <логическое выражение> then <оператор 1> else <оператор 2>;

Оператор 1 выполняется, если значение логического выражения – True, а оператор 2 выполняется, если значение логического выражения – False.

Оператор If допускается в неполной форме:

If <логическое выражение> then <оператор >;

Если после then и else необходимо выполнить группу операторов, то они должны быть объединены в составной оператор, например,

If A>B then begin X:=A+B; Y:=A*B end;

Условный оператор соответствует алгоритмической структуре “Разветвление”, блок-схема которой на рис. 7.2.

Оператор 1

Оператор 2

……………..

Оператор n

Рис. 7.1

Рис. 7.2

Оператор выбора case обеспечивает возможность выполнения одного из нескольких действий и имеет следующий синтаксис:

Case <выражение> of

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

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

……

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

else <оператор >

end;

Перед else точка с запятой не ставится. Ветвь else может отсутствовать.

Список констант может содержать одну константу; несколько констант, разделенных запятыми; или интервал значений <значение 1>.. <значение 2>.

Пример.

Var Symbol: Char;

…………………….

Begin

…………………….

Case Symbol of

‘0’..’9’: writeln(‘Это цифра’);

‘A’..’Z’: writeln(‘Это прописная буква’);

‘a’..’z’: writeln(‘Это строчная буква’);

‘=’: writeln(‘Это знак операции сравнения’)

else writeln(‘другой символ’);

end;

Рассмотрим операторы цикла языка Паскаль. Язык Паскаль поддерживает три конструкции цикла:

  • оператор цикла с предусловием while-do;

  • оператор цикла с постусловием repeat-until;

  • оператор цикла с параметром for.

Оператор while-doимеет следующий синтаксис:

While < логическое выражение >

do <оператор>

или

While < логическое выражение >

begin

<операторы>

end

Блок-схема оператора цикла представлена на рис. 7.3. Тело цикла – это оператор или составной оператор. В операторе while-do тело цикла может не выполниться ни разу. Логическое выражение – это условие продолжения цикла. Проверка условия продолжения цикла выполняется перед очередной итерацией. Итерация – это выполнение операторов тела цикла.

Рис. 7.3

Оператор цикла repeat-until имеет следующий синтаксис:

Repeat

<оператор 1>

<оператор 2>

….

<оператор n>

until <логическое выражение>

В операторе repeat-until не требуется использование составного оператора. Блок-схема оператора repeat-until показана на рис. 7.4, где логическое выражение является условием выхода из цикла. Операторы тела цикла repeat-until выполняются хотя бы один раз. Проверка условия выхода из цикла происходит после очередной итерации.

Оператор цикла с параметром используется в тех случаях, когда точно известно число итераций, отсчет числа итераций выполняется с помощью управляющей переменной, которая называется параметром цикла. Перед выполнением цикла известны начальное N1 и конечное N2 значение параметра цикла. Шаг изменения параметра равен 1.

Если N1<N2 (см. рис. 7.5) , то оператор цикла с параметром имеет следующий синтаксис:

For <параметр цикла>:=<выражение N1> to <выражение N2> do <оператор или составной оператор>

Если N1>N2 (см. рис. 7.6) , то оператор цикла с параметром имеет следующий синтаксис:

For <параметр цикла>:=<выражение N1> downto <выражение N2> do <оператор или составной оператор>

В Паскале оператор цикла с параметром имеет два ограничения:

  • Шаг изменения параметра может быть равен только 1, если используется ключевое слово to, или –1,если используется ключевое слово downto.

  • Переменная – параметр цикла должна быть только порядкового типа и должна быть локальной.

Рис. 7.4

Рис. 7.5

Рис. 7.6