ОПЕРАТОР ВЫБОРА
ЛАБОРАТОРНАЯ РАБОТА №7
ОСНОВНЫЕ КОНСТРУКЦИИ ЯЗЫКА PASCAL
ПРОГРАММИРОВАНИЕ РАЗВЕТВЛЯЮЩИХСЯ АЛГОРИТМОВ
ОПЕРАТОР ВЫБОРА
Цель работы:
Изучение принципов написания программ с использованием сложных логических условий. Изучение принципов написания программ с использованием оператора варианта.
Знакомство с работой оператора безусловного перехода.
Основные теоретические сведения
1. Оператор варианта
Кроме оператора условного выполнения и циклов в Турбо Паскале имеется ещё одна управляющая конструкция, одно из названий которой - оператор выбора. На самом деле это усложнённый оператор if, он позволяет программе выполняться не двумя способами, в зависимости от выполнения условия, а несколькими, в зависимости от значения некоторого выражения. В общем виде этот оператор выглядит так:
case <Выражение> of
Вариант1: Оператор1;
Вариант2: Оператор2;
...
ВариантN: ОператорN;
[else ОператорN1;]
end;
(Пояснение: квадратные скобки означают то, что часть else может отсутствовать).
Выражение в простейших случаях может быть целочисленным или символьным.
В качестве вариантов можно применять:
1. Константное выражение такого же типа, как и выражение после case. Константное выражение отличается от обычного тем, что не содержит переменных и вызовов функций, тем самым оно может быть вычислено на этапе компиляции программы, а не во время выполнения.
2. Интервал, например: 1..5, 'a'..'z'.
3. Список значений или интервалов, например: 1,3,5..8,10,12.
Выполняется оператор case следующим образом: вычисляется выражение после слова case и по порядку проверяется, подходит полученное значение под какой-либо вариант, или нет. Если подходит, то выполняется соответствующий этому варианту оператор, иначе - есть два варианта. Если в операторе case записана часть else, то выполняется оператор после else, если же этой части нет, то не происходит вообще ничего.
2. Оператор безусловного перехода
В практике программирования задач иногда возникает необходимость безусловного перехода для выполнения нужной последовательности операторов. Например, необходимо обойти участок программы, а вернуться к нему позже. Для этого предназначен оператор безусловного перехода, который имеет следующую форму записи:
goto метка;
Метка представляет собою число без знака в диапазоне 1-9999 либо последовательность латинских букв и цифр.
Перед использованием метка должна быть объявлена в разделе описания меток, который сразу следует за разделом описания используемых модулей:
Uses
Crt, Graph;
Label
Metka1,
Metka2;
Const
P=3.14;
Var
x: integer;
После описания метки ее можно использовать в программе. Метка записывается перед помечаемым оператором и отделяется от него двоеточием. А оператор goto должен быть помещен в то место программы, откуда выполняется переход. Оператор goto передает управление на оператор с заданной меткой. Оператор goto можно вставлять в любое место программы, где могут располагаться операторы языка.
В простых программах этот оператор не вызывает затруднений. При написании сложных и объёмных программ могут быть затруднения, поэтому программисты стараются не использовать этот оператор. Возникает вопрос: где должен использоваться безусловный переход? На этот вопрос следует ответить – “нигде”. Любая программа, написанная с goto, может быть запрограммирована без этого оператора.
Следует ли вообще использовать оператор перехода? Ответить трудно. В основном применение оператора безусловного перехода оправдано в двух случаях: при преждевременном завершении цикла или программы. Но даже в этих случаях можно обойтись некоторой стандартной управляющей структурой.