Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Bilety_Obschie.docx
Скачиваний:
4
Добавлен:
01.03.2025
Размер:
340.76 Кб
Скачать

[Править]Реализация [править]Algol, Pascal

Паскаль унаследовал от Алгола-60 синтаксис, согласно которому в ветвях условного оператора может быть помещена только одна команда. Поэтому для размещения там большего количества команд они группируются в составной оператор с помощью пары ключевых слов begin и end. Ветвь else необязательна. begin и end необходимы, только если операторов несколько (например, из соображений единообразия оформления кода). В примере — оператор выбора в Паскале:

If условие

then

begin

операторы;

end

else

begin

операторы;

end;

28. Оператор выбора (case of). Его параметры, синтаксис.

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

Формат оператора варианта:

case <селектор> of

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

...

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

else

<оператор>

end;

Здесь <селектор> – это выражение любого порядкового типа; <константа> - постоянная величина того же типа, что и селектор, представляет собой различные значения, которые может иметь селектор варианта, называется меткой варианта. После каждой метки располагается оператор. Когда одно и то же действие необходимо выполнить для нескольких различных значений селектора варианта, эти значения можно записать в виде списка.

Выполнение оператора выбора происходит так:

  • вычисляется выражение-селектор;

  • затем в списках констант ищется такое значение, которое совпадает с полученным значением селектора;

  • далее исполняется оператор, помеченный данной константой. Если такой константы не найдено, то происходит переход к выполнению оператора, следующего после else.

Изображение оператора варианта на блок-схеме приведено на рисунке.

Изображение оператора варианта на блок-схеме

Примеры использования

Селектор интервального типа:

case I of

1..10  : writeln('число ', I:4, ' в диапазоне 1 - 10');

11..20 : writeln('число ', I:4, ' в диапазоне 11 - 20');

21..30 : writeln('число ', I:4, ' в диапазоне 21 - 30')

else

writeln('число ', I:4, ' вне пределов контроля')

end;

Селектор целочисленного типа:

case I of

1 : Z := I + 10;

2 : Z := I + 100;

3 : Z := I + 1000

end;

Селектор перечисляемого пользовательского типа:

var

Season: (Winter, Spring, Summer, Autumn);

begin

.

.

.

case Season of

Winter: writeln('Зима');

Spring: writeln('Весна');

Summer: writeln('Лето');

Autumn: writeln('Осень')

end;

end.

Пример программы с использованием оператора case, которая по введенному номеру дня недели выводит на экран его название на русском языке.

program Day_Week;

var

Day: byte;

begin

write('Введите номер дня недели: ');

readln(Day);

case Day of {Вычисление значения селектора и выбор}

1: writeln('Понедельник');

2: writeln('Вторник');

3: writeln('Среда');

4: writeln('Четверг');

5: writeln('Пятница');

6: writeln('Суббота');

else

7: writeln('Воскресенье');

end;

end.

В данном примере на экран выводится приглашение "Введите номер дня недели: ", с клавиатуры считывается целочисленное значение дня недели и присваивается переменной Day. Затем, в зависимости от значения селектора Day, обеспечивается реализация того оператора, константа выбора которого равна текущему значению селектора. Например, если значение Day равно 3, то реализуется оператор writeln('Среда'). Если значение Day равно 7, а ни одна из констант не равна этому значению селектора, то выполняется оператор, стоящий за словом else (на экран выводится текст "Воскресенье"). Если слово else отсутствует, то активизируется оператор, находящийся за словом end, т.е. первый оператор, за границей case. Если значение Day не равно значению ни одной из констант выбора (например, Day=8 или Day=0), то активизируется оператор, находящийся за словом end, т.е. первый оператор за границей case - оператор end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]