Структура программы в языке Pascal
Любая программа на языке Паскаль обладает тремя разделами:
- Заголовок,
- Блок описания переменных и функций,
- Основное тело программы.
Пример:
Program название; // Название программы
// Это раздел описаний переменных функций, модулей и т.п
begin
// Тело функции — сюда записывают основные операторы
end.
Заголовок
Самая первая строчка любой программы является заголовок. Он начинается со слова Program, после которого можно написать любо произвольное имя программы. К примеру: Program My first program. Есть несколько условий для заголовка программы:
- Название не должно начинаться с цифры.
- Не должно совпадать зарезервированным словам языкам языка.
- Не должно совпадать с именами переменных и функций из раздела описаний.
- Не допустимо использование символов(«, /, %, &… и других) кроме подчеркивания.
- Заголовок писать не обязательно.
- Заголовок должен раскрывать смысл программы (желательно, но не обязательно).
Раздел описаний
Это область между заголовком и словом begin. Здесь программист объявляет переменные, структуры, массивы, функции, модули, константы и другие конструкции языка.
Пример:
Program название;
var // Объявление переменных
s, p, f: integer;
t, r: string;
y, c: char;const // Объявление констант
O:=5;
I:=6;procedure add() // Объявление процедуры
begin
p:=O+I;
end;function multy() // Объявление функции
begin
s:=p*I;
end;begin
// Тело функции — сюда записывают основные операторыend.
В разделе описаний также можно подключать различные файлы, библиотеки, классы, модули и т.п. Для этого предусмотрено ключевое слово uses, после которого идет имя подключаемого модуля.
Пример:
Program Hello;
uses crt // подключаем модуль командной строки для использования дополнительных функций// описание переменных
begin
// Основная программа
end.
Тело программы
Сюда записываются основные операторы. Здесь выполняется сама программа. Компилятор, прежде чем выполнить операторы из тела функции сначала распределяет память. Делает он это следующим образом: в разделе объявлений он находит переменные, константы и другое, и отводит для них память.
Если переменным присваиваются значения, то компилятор сохраняет значения в память. То же самое происходит с процедурами или функциями. Компилятор резервирует для них память. Тело функции выполняется только после того, как память распределена в разделе описания.
Пример:
Program название;
var // Объявление переменных разных типов
i, j, z: integer;
a, b: string;
d, e: char;const // Объявление констант
U:=5;
T:=6;procedure sum() // Объявление процедуры
begin
j:=U+T;
end;function multyply() // Объявление функции
begin
z:=j*I;
end;begin
// Тело функции — сюда записывают основные операторы
i:=80;
sum(); // Вызываем процедуру, которая присваивает значение
переменной
multiply(); // вызов функции, которая возвращает z
writeLn(z);
end.
Для блоков кода используются операторы begin end, только в конце ставится точка с запятой. В основном блоке программы после end ставится точка. Блок кода — подпрограмма, поэтому он выделяется отдельным begin end. Блоки используют циклы, функции, процедуры, операторы условия, объекты (object Pascal) и другие конструкции.
Раздел описания меток
Метки указываются в разделе описания. Они служат как обозначение мест, в какой участок программы будет переходить компилятор при попадании на оператор goto. Метки объявляются оператором label.
Пример:
Program Metki;
label
place1; // метки для оператора goto
place2;
place3;var
a, b: string;begin
place1; // Переход программы сюда по имени метки
write(«a»);
write(«b»);
write(«c»);
goto place1; // Указали на какую метку переходить
end.
В примере выше мы создали бесконечный цикл. Программа будут выводить «abc…» до тех пор, пока компьютер не зависнет.
Ограничения тела программы
В теле программы нельзя объявлять переменные, функции, процедуры, константы или другие типы. За это отвечает исключительно раздел описаний. Объявленным переменным можно присваивать значения в теле программы, но не объявлять. Если это сделать, то компилятор выдаст ошибку.
Также в теле программы нельзя использовать uses. Функции и процедуры здесь не объявляются, а только вызываются на выполнение. Это же относится и к меткам. Они должны объявляться в разделе описания.
Модули
Когда мы подключаем посредство оператора uses какой либо модуль, то можно заметить, что его описание отсутствует в программе. Модули — это отдельные файлы, которые обладают своей структурой описания. Модули — это набор переменных, констант, процедур и функций, которые можно использовать в основной программе. Если использовать среду разработки ABCPascal, то мудулями там являются: crt, graphABC и другие.
Модули не записывают в структуру программы, а подключают посредством оператора uses. Обычно модули хранятся в директории проекта. Если они хранятся в другой директории, то после uses нужно написать путь к модулю и его имя.