Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КОМП. НАУКИ_1сем.doc
Скачиваний:
6
Добавлен:
05.11.2018
Размер:
902.14 Кб
Скачать
      1. Составной оператор

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

begin оператор1; оператор2; … end

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

If x>y

then begin max:=x; writeln(‘Первое больше’) end

else if y>x

then begin max:=y; writeln(‘Второе больше’) end

else begin max:=y; writeln(‘Числа равны’) end

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

Оператор выбора позволяет выбрать одно из нескольких продолжений программы, причем выбор осуществляется по значению выражения любого порядкового типа.(integer, char, boolean, перечислимого типа, но не real и не string).

CASE выражение_выбора OF

константа_выбора1 : оператор1;

константа_выбора2 : оператор2;

. . . . . . . .

ELSE операторы

END

В качестве константы_выбора можно использовать список констант и диапазон константа1 .. константа2. Тип всех констант выбора должен совпадать с типом значения выражения.

Вычисляется значение выражения_выбора, затем выполняется оператор, соответствующий этому значению.

Если значению выражения_выбора не соответствует ни одна из альтернатив, выполняется оператор, следующий за словом else; при отсутствии ELSE никакие альтернативы не выполняются.

Пример из п. 2.12.4 с помощью CASE решается нагляднее:

CASE x OF

a..b : y: = f1(x);

c..d : y: = f2(x);

ELSE y := f3(x);

END;

      1. Оператор цикла с предусловием while

Оператор цикла WHILE многократно выполняет одни и те же действия, пока истинно условие, являющееся логическим выражением. Этот цикл является самым универсальным из всех операторов цикла.

WHILE условие_продолжения DO

оператор

//заголовок цикла

//тело цикла

WHILE условие_продолжения DO

BEGIN оператор1; оператор2; ... END

//тело цикла – составной оператор

Значение условия вычисляется заново при каждом повторении цикла. Если оно истинно, выполняется тело цикла, если ложно, цикл завершается. Поэтому условие в цикле WHILE – это условие продолжения цикла. Особенности цикла:

  • Тело цикла не выполнится ни разу, если условие ложно при первой проверке.

  • Цикл выполняется бесконечно («зацикливание»), если условие истинно всегда. Во избежание этого в теле цикла должны изменяться переменные, входящие в условие.

Пример. Выдать цифры произвольного целого числа.

var x : word; {x – исходное число}

d : byte; {очередная цифра}

begin

write(‘x=’); readln(x); {ввод числа с клавиатуры}

while (x<>0) do

begin

d:=x mod 10; {очередная цифра: при первом выполнении цикла – единицы,}

write(d:3); {при втором выполнении – десятки и т.д.}

x:=x div 10; {удаление из числа очередной цифры}

end

end.

      1. Оператор цикла с постусловием repeat

Оператор цикла REPEAT многократно выполняет одни и те же действия, пока ложно условие, являющееся логическим выражением.

REPEAT оператор; … оператор UNTIL условие_окончания

В теле цикла после REPEAT может быть несколько операторов, причем операторные скобки BEGIN и END не нужны. Выполняется тело цикла. Затем вычисляется значение условия. Если оно ложно, цикл продолжает работу. Если же значение условия истинно, цикл завершается. Поэтому условие в цикле REPEAT – это условие окончания цикла.

Пример: Ввести число, не равное нулю.

repeat

write(‘Введите число, не равное 0:’);

readln(x)

until x<>0

Особенности цикла REPEAT:

  • Тело цикла выполняется по крайней мере один раз, поэтому цикл REPEAT менее универсальный по сравнению с циклом WHILE.

  • Цикл выполняется бесконечно («зацикливание»), если условие всегда ложно. Во избежание этого в теле цикла должны изменяться переменные, входящие в условие.