Оператор безусловного перехода (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
Процедуры ввода/вывода
Цель работы
Получить начальные навыки работы с системой программирования. Научиться создавать программы и организовывать в программах ввод и вывод информации.