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

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

Синтаксическая диаграмма для оператора goto имеет следующий вид:

goto <метка>

Метка объявляется в разделе описания меток (label) и может содержать как цифровые, так и буквенные символы (в стандартном Паскале – только цифры).

Пример:

goto 999;

goto EndBlock;

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

Использовать этот оператор без особой необходимости не следует, так как способствует создания малопонятных и трудно модифицируемых программ, которые вызывают большие сложности при отладке и сопровождении. Поэтому рекомендуется минимальное использование оператора goto с соблюдением следующих правил:

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

- расстояние между меткой и оператором перехода на нее не должно превышать одной страницы текста (или высоты экрана дисплея).

Оператор вызова процедуры

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

Например:

ClrScr; {Вызов стандартной процедуры очистки экрана}

InitWork( InitParam ); {Вызов пользовательской процедуры }

Пустой оператор

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

label Metka;

Begin

goto Metka; { переход в конец блока }

Metka: { пустой оператор помечен меткой }

end;

Составной оператор

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

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

Комментарии.

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

{ Это пример

длинного комментария,

занимающего несколько строк }

Примечание: Существует альтернативная форма комментария. Начинается " (* " и заканчивается " *) ". Комментарий, начинающийся с " (* " игнорирует все фигурные скобки.

Правила пунктуации

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

1. Точка с запятой не ставится в разделах описаний после зарезервированных слов unit, uses, label, type, const, var и ставится после завершения каждого описания.

Точка с запятой не ставится после begin и перед end, так как эти слова являются операторными скобками, а не операторами.

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

4. В операторах цикла точка с запятой не ставится после while, repeat, do и перед until.

5. В условных операторах точка с запятой не ставится после then и перед else.

Стандартные функции

В языке ПАСКАЛЬ имеется набор стандартных функций и процедур для работы с числовыми переменными:

Abs(N : integer, real) : integer, real - возвращает значение по модулю;

Arctan(N : real) : real - возвращает арктангенс числа (в радианах);

Cos(N : real) : real - возвращает косинус числа (в радианах);

Exp(N : integer) : real - возводит число е в степень;

Frac(N : real) : real - возвращает дробную часть числа;

Int(N : real) : integer - возвращает целую часть числа;

Ln(N : integer, real) : real - возвращает натуральный логарифм числа;

Odd(N : integer) : boolean - возвращает True, если число четное;

Random : real - возвращает случайное число в диапазоне 0…1;

Random(N : integer) : integer - возвращает случайное число в диапазоне 0…N;

Round(N : real) : integer - округляет число до целого с учетом знака;

Sin(N : real) : real - возвращает синус числа (в радианах);

Sqr(N : integer, real) : integer, real - возводит число в квадрат;

Sqrt(N : integer, real) : real - возвращает квадратный корень числа.

Succ(N : <любой упорядоченный тип>) : <тип параметра> - возвращает элемент типа следующий по порядку за элементом параметра.

Pred(N : <любой упорядоченный тип>) : <тип параметра> - возвращает элемент типа предшествующий по порядку элементу параметра.

Лабораторная работа № 1

Процедуры ввода/вывода

Цель работы

Получить начальные навыки работы с системой программирования. Научиться создавать программы и организовывать в программах ввод и вывод информации.

Наши рекомендации