Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Для универа / Информатика / Uch_posobie_INFORMATIKA_2010isprav.doc
Скачиваний:
311
Добавлен:
15.02.2016
Размер:
13.32 Mб
Скачать

7.5.4. Безусловный оператор перехода Goto

В программах, рассмотренных нами в предыдущих разделах пособия, операторы либо выполнялись друг за другом последовательно (линейные программы) либо при наличии в программе условного оператора ход выполнения программы зависел от выполнения или невыполнения некоторого условия. Однако бывают и такие ситуации, когда требуется нарушить линейный ход выполнения программы без выполнения какого-либо предварительного условия. Такая ситуация возникает, например, если в определенном месте программы требуется перейти в конец программы для того, чтобы досрочно завершить ее выполнение.

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

Общий вид оператора безусловного перехода имеет вид:

goto <имя_метки>;

где goto – служебное слово, означающее в переводе с английского «перейти к», а <имя_метки> – имя метки, ранее описанное в разделе label. Имя метки это идентификатор или целое число без знака.

Описание метки должно находиться в самом начале раздела описаний перед описанием переменных и констант.

В общем виде, описание метки выглядит следующим образом:

label <имя_метки>;

где label – служебное слово, означающее в переводе «метка»,

Строка, содержащая метку должна выглядеть следующим образом:

<имя_метки>:  оператор ;

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

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

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

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

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

В общем виде цикл состоит из двух основных блоков:

1. Заголовок цикла. В заголовке цикла содержится некоторое условие, которое определяет число повторений цикла.

2. Тело цикла. Телом цикла называется простой или составной оператор (составным оператором называется группа операторов, заключенная в операторные скобки), который может многократно повторяться в ходе работы цикла. В теле цикла могут содержаться операторы различных типов. Это могут быть операторы ввода и вывода, операторы присваивания, условные операторы, а также другие операторы цикла. Оператор цикла, находящийся в теле другого циклического оператора, называется вложенным.

Всего в языке Паскаль используется три типов циклов:

Цикл с заранее заданным числом повторений. Его также называют циклом со счетчиком. (цикл for..to);

Цикл с предусловием (цикл while);

Цикл с постусловием (цикл repeat..until).

Каждый из этих видов цикла имеет свои особенности и область применения, которые мы и рассмотрим ниже.

Общим для всех этих операторов является то, что они включают в себя управляющие конструкции (в операторах for..to и while – это строка заголовка, а в операторе repeat..until – строка заголовка и завершающая строка) и тело цикла.

Если количество повторений тела цикла заранее известно, то рекомендуется использовать оператор цикла for..to. В другом случае нужно использовать оператор repeat..until (если для решения поставленной задачи требуется, чтобы тело цикла выполнялось хотя бы один раз), либо оператор while (в этом случае перед выполнением тела цикла проверяется, есть ли вообще необходимость в его выполнении). Рассмотрим подробно каждый из этих видов цикла.