Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по информатике.doc
Скачиваний:
3
Добавлен:
05.11.2018
Размер:
212.99 Кб
Скачать

3.2.2 Оператор варианта

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

Пример.

case CurColor of

Red: X:=X+2;

Yellow: X:=Y-2;

Green: X:=Y

end;

CurColor – в примере это переменная перечислимого типа. Сначала вычисляется текущее значение переменной CurColor. Затем это значение сопоставляется (сравнивается) с константами, записанными перед операторами. При совпадении значения переменной с одной из констант будет выполнен оператор, помеченный данной константой. На этом выполнение оператора будет завершено. Если значение переменной CurColor не совпадает ни с одной из констант, то данный оператор не выполняет никаких действий. Для того, чтобы задать некоторые действия для случая такого несовпадения, можно использовать альтернативу else:

Пример.

case (K+1)*2 of

2: Add(A,B);

4: Multiply(A,B);

0: Subtract(A,B)

else

writeln(‘ошибка!’)

end;

Кроме одиночных констант в альтернативах оператора варианта могут быть заданы списки и/или диапазоны значений, которые в этом случае разделяются символом «,».

Пример.

case Switch of

1..2: begin Proc1; Proc2; Proc3 end;

3,4,10..20: Proc4;

5,6: Proc5;

else

Proc6;

Proc7;

end;

При использовании оператора варианта должны выполняться следующие правила:

1. Значения выражения-«переключателя», записанного после служебного слова case, должно принадлежать упорядоченному типу и иметь размер 1 байт или 1 слово.

2. Все константы, предшествующие операторам альтернатив, должны иметь тип, совместимый с типом выражения.

3. Все константы в альтернативах должны быть уникальны в пределах оператора варианта (то есть повторения констант в альтернативах не допускается); диапазоны не должны пересекаться и не должны содержать констант, указанных в данной или других альтернативах.

При необходимости задания нескольких операторов для каких-либо из альтернатив, следует сгруппировать их в составной оператор, в то время как ветвь else допускает последовательность операторов, разделенных символом «;».

3.2.3 Операторы цикла

Задают повторяющееся выполнение некоторых операторов.

3.2.3.1 Оператор цикла с параметром

Предусматривает повторное выполнение некоторого оператора с одновременным автоматическим изменением значения, присваиваемого управляющей переменной (параметру) этого цикла. Управляющая переменная должна быть упорядоченного типа и начальное и конечное ее значения должны быть совместимы с упорядоченным типом. Начальное и конечное значения вычисляются один раз (это выражения), и параметр цикла не должен изменяться внутри цикла с параметром. Если при спецификации to (downto) начальное значение больше (меньше) конечного значения, то цикл не выполняется. При нормальном выходе из цикла с параметром значение параметра остается неопределенным.

Пример {вычисление h(n)=1+1/2+1/3+…+1/n}

Program exfor;

var n,i: integer;

H: real;

begin

read(n); write(n);

h:=0;

for i:=n downto 1 do

h:=h+1/i; n:=n-1;

writeln(h)

end.