Оператор безусловного перехода GoTo

Оператор безусловного перехода GoTo означает «перейти к» и применяется в случаях, когда после выполнения некоторого оператора надо выполнить не следующий по порядку, а какой-либо другой, отмеченный меткой оператор.

Формат:

GoTo <метка>;

Метка в Pascal – это произвольный идентификатор, позволяющий именовать некоторый оператор программы и таким образом ссылаться на него. В качестве метки можно использовать целое число без знака (исключение в правилах написания идентификаторов). Метка располагается непосредственно перед помечаемым оператором и отделяется от него двоеточием. Оператор можно помечать несколькими метками, которые в этом случае отделяются друг от друга двоеточием. Перед тем как появится в программе, метка должна быть описана (в разделе описания меток). За словом Label (метка) следуют имена меток, разделенные запятыми. За последним именем ставится точка с запятой. Максимальная длина метки ограничена 127 символами.

Формат: Label <имя1, имя2,... >;

Label lb1, lb2;

Begin

<операторы>

GoTo lb1;

lb2:<операторы>;

lb1: <операторы>;

<операторы>;

GoTo lb2;

<операторы>

End.

Действие оператора GoTo состоит в передаче управления соответствующему меченному оператору.

При использовании меток необходимо руководствоваться следующими правилами:

ü метка, на которую ссылается оператор GoTo, должна быть описана в разделе описаний и она обязательно должна встретиться где-нибудь в теле программы;

ü метки, описанные в процедуре (функции), локализуются в ней, поэтому передача управления извне процедуры (функции) на метку внутри нее невозможна.

Например, в результате выполнения программы:

label 1,2; //метки

var i:integer;

begin

i:=6;

2: if i<0 then goto 1; //условие перехода к метке 1

write(i); //выводим значение i

Dec(i); //увеличиваем i на 1

goto 2; //переходим к метке 2

1: //метка 1

end.

будет выведено 6543210.


ТЕМА 7. Оператор выбора Case

Цель лабораторной работы: изучить оператор выбора, применять его в программировании для организации алгоритмов с ветвлениями наряду с условным оператором.

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

Case <параметр: порядковая переменная> OF

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

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

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

[ELSE <оператор N+1>];

END; {для Case}

В этой структуре: < параметр: порядковая переменная> – порядковая переменная, значение которой проверяется; <значение *> – константы, с которыми сравнивается значение порядковой переменной; <оператор *> – операторы, из которых выполняется тот, с константой которого совпадает значение порядковой переменной.

Ветвь оператора else является необязательной. Если она отсутствует и значение порядковой переменной не совпадает ни с одной из перечисленных констант, весь оператор рассматривается как пустой. В отличие от оператора If перед словом else точку с запятой можно ставить.

Если для нескольких констант нужно выполнять один и тот же оператор, их можно перечислить через запятую, сопроводив их одним оператором. Существует возможность указать диапазон возможных значений. Например, диапазон от 1 до 100 включительно указывается так:
1.. 100.

Пример

CASE i of

0, 2, 4, 6, 8: Writeln('Чётная цифра');

1, 3, 5, 7, 9: Writeln('Нечётная цифра');

10.. 100: Writeln('Число от 10 до 100');

ELSE

Writeln('Отрицательное число или больше 100');

END;

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

CASE <порядковая переменная> OF

<значение 1>:

begin

<оператор 1_1>;

<оператор 1_n>

end;

<значение 2>:

begin

<оператор 2 _1>;

<оператор 2_n>

end;

<значение N>:

begin

<оператор N­­_1>;

<оператор N_n>

end;

ELSE

begin

<оператор Е_1>;

<оператор Е_n>

end;

END;

Необходимо заметить, что из всех возможных ветвей операторов управляющей конструкции выбор, выполняется только одна ветвь, даже если значение порядковой переменной совпадает с несколькими возможными значениями, отвечающими за разные ветви операторов. Выполняется та ветвь, которая расположена раньше. Значение порядковой переменной сравнивается последовательно со всеми возможными значениями, и как только найдётся значение, которому равна порядковая переменная, выполняется ветвь операторов, сравнения прекращаются и управляющая конструкция прекращает свою работу. Поэтому при составлении программ с использованием управляющей конструкции выбор, раньше необходимо располагать более «строгие» последовательности операторов.


ТЕМА 8. Циклические программы

Цель лабораторной работы: закрепить практические навыки работы с системой PascaABC, научиться правильно использовать различные операторы циклов; научиться составлять программы решения задач с использование циклических структур.

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

В практике программирования часто встречаются циклические программы. В циклических программах какой-либо алгоритм повторяется многократно, при этом один или несколько параметров изменяются. Операторов цикла (повтора) в Паскале три: for, repeat, while.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: