Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Паскаль.doc
Скачиваний:
58
Добавлен:
07.06.2015
Размер:
1.21 Mб
Скачать

7.3. Оператор case

Оператор If позволяет выбрать один из двух возможных путей решения. В ряде случаев таких путей бывает гораздо больше. При этом также необходимо выбрать один из них. Применение оператора If для таких задач неэффективно.

В Паскале для выбора одного из нескольких путей решения используется оператор Case (вариант из) – обобщение условного оператора. В общем виде он записывается так:

Case выражение Of

Значения1 : Оператор1;

Значения2 : Оператор2;

. . . . . . . . . .

ЗначенияN : ОператорN;

End; { Конец списка выбора }

Выражение записывается относительно специальной переменной выбора (селектора), которая может быть любого перечисляемого типа (Integer, Char).

Значения1, . . . , Значения N – значения выражения, при которых выполняются Оператор1, . . . , Оператор N соответственно.

Если селектор принял значение, не принадлежащее ни одному из перечисленных, то оператор Case пропускается и выполняется следующий за ним оператор (как при неполном If).

Пример.

Case Num Mod 2 Of

0 : Writeln('Четное');

1 : Writeln('Нечетное');

End;

или

Case Month Of

1,2,3 : Writeln('Первый квартал');

4,5,6 : Writeln('Второй квартал');

End;

Если после Значений i необходимо выполнять несколько операторов, они заключаются в блок:

Значенияi: Begin

операторы_i

End;

Рассмотрим еще одну задачу, демонстрирующую эффективность применения оператора Case.

Пример. Перевести цифру римской системы счисления в ее десятичный эквивалент. Римская цифра вводится c клавиатуры (в виде похожей на нее латинской буквы), а затем на экране должен появиться ее десятичный эквивалент.

Программа будет иметь вид

Program Rim;

Var

R : Char;

N : Integer;

Begin

Writeln('Введите римскую цифру');

Readln(R);

Case R Of

'M': N:= 1000;

'D': N:= 500;

'C': N:= 100;

'L': N:= 50;

'X': N:= 10;

'V': N:= 5;

‘I': N:= 1

End; { Case }

Write ('Десятичное число:', N);

End.

8. Циклические алгоритмы и программы

8.1. Общая схема цикла

Основными задачами, решаемыми на ЭВМ являются такие, в которых необходимо выполнять одни и те же операции над различными данными. Программы таких задач содержат гораздо меньше операторов, чем в действительности выполняет ЭВМ. Это достигается за счет того, что некоторые операторы выполняются много раз.

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

Количество повторений цикла определяется значением некоторой управляющей переменной.

Определение 2. Переменная, управляющая повторением цикла, называется параметром цикла.

Общая схема циклического участка программы (алгоритма) может быть представлена в следующем виде (рис. 2.4).

Рис. 2.4. Общая схема цикла

В блоке "Подготовка" задаются начальные значения переменных, используемых в вычислениях, и, в первую очередь, параметра цикла.

Блок "Условие выполнения" в зависимости от значения параметра либо начинает (продолжает) выполнение цикла, либо прекращает его (выход из цикла).

В блоке "Рабочая часть" содержатся многократно повторяемые операторы, которые и выполняют необходимые вычисления.

В блоке "Изменение параметра цикла" задается способ изменения параметра и выполняется переход к его новому значению.

Блоки 1, 2 и 4 являются необходимыми и типовыми для циклических алгоритмов и реализуются специальными операторами цикла. Блок 3 (Рабочая часть) - индивидуален для каждой задачи.

По типу параметра и условию окончания циклы делятся на:

1) циклы со счетчиком;

2) итерационные.

В циклах со счетчиком количество повторений заранее известно, а в итерационных – нет. В последних выход из цикла осуществляется при определенном условии (достижении заданной точности, появлении некоторой ситуации).