Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Оператор перехода




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

Понятие составного оператора

Составные операторы задают порядок выполнения операторов, являющихся их элементами.

Составные операторы представляют собой набор обычных операторов, разделенных между собой символами «;», заключенных в ограничители begin и end.

Составные операторы обрабатываются, как один оператор, поэтому их можно применять там, где синтаксис Паскаля допускает использование только одного оператора (например, после ключевых слов then и else).

Пример: отсортировать числа x1 и x2 по возрастанию.

if x1>x2 then

begin

temp:=x1;

x1:=x2;

x2:=temp;

end;

Оператор выбора case позволяет заменить большую вложенность условных операторов. Записывается оператор следующим образом:

CASE <выражение> OF

<значение_1>: <оператор_1>;

<значение_2>: <оператор_2>;

<значение_n>: <оператор_n>;

[ ELSE

<оператор_если_1>;

<оператор_если_m>; ]

END;

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

После вычисления Выражения его результат ищется в списке Значение_1, Значение_2, …, Значение_N. Если результат найден в списке Значений, то выполняется соответствующий Оператор. Если имеется несколько подходящих значений, то выполняется Оператор, найденный первым. Если искомое значение не найдено, то выполняются операторы, записанные в ветви else.

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

Ветвь else может отсутствовать.

Пример: вывести на экран день недели

case day of

1: writeln(‘понедельник’);

2: writeln(‘вторник’);

3: writeln(‘среда’);

4: writeln(‘четверг’);

5: writeln(‘пятница’);

6: writeln(‘суббота’);

7: writeln(‘воскресенье’);

else

writeln(‘некорректная дата’);

end;

Пример: вывести на экран, будний это день недели или выходной

case day of

1..5: writeln(‘будний’);

6, 7: writeln(‘выходной’);

else

writeln(‘некорректная дата’);

end;

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

Пример: goto 218; {переход к оператору, помеченному меткой 218}

Все используемые в программе метки предварительно должны быть перечислены в разделе label в блоке описаний:

LABEL <МЕТКА_1>, <МЕТКА_2>, …, <МЕТКА_N>;

В качестве метки может выступать идентификатор или целое число в диапазоне от 0 до 9999.

В программе описанная метка ставится перед каким-либо оператором. Между меткой и оператором ставится двоеточие.

Для перехода к оператору, помеченному меткой, пишут goto и далее указывают имя метки, установленной перед оператором.

Пример: что будет напечатано на экране в результате выполнения программы:

label 1, 2, e;

begin

writeln(1);

goto 1;

2: writeln(2);

writeln(3);

goto e;

writeln(4);

1: writeln (5);

writeln(6);

goto 2;

e: end.

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

1

5

6

2

3

Метки и оператор перехода следует использовать аккуратно. Они могут привести к тому, что программа «зависнет» или не будут выполнены некоторые операторы (в предыдущем примере не выполнился оператор writeln(4);).

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




Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 262; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.