Программа на Паскале представляет собой обычный текст. Транслятор воспринимает этот текст как последовательность символов. На этапе лексического анализа текста выделяются слова (разделитель – пробел). Из слов составлены предложения (или операторы), разделителем служит символ «;» – «точка с запятой».
Начинается программа с необязательного оператора program <имя программы> – заголовка программы. Именем программы может быть любой уникальный в данной программе идентификатор.
После заголовка следует секция описаний. Секция описаний состоит из разделов.
Раздел описания имен модулей (в стандарте Паскаля этот раздел отсутствует). Раздел начинается заголовком uses, далее списком через запятую указываются имена используемых в программе модулей.
Раздел описания меток. После заголовка раздела label записывается список используемых в программе меток.
Раздел описания типов данных. После заголовка раздела type следуют операторы описания типов данных, созданных в программе пользователем. Операторы описания типа имеют следующий формат: <имя типа>=<описатель типа>. Имя типа – идентификатор, описатель типа – конструкция, определяющая данный тип.
Раздел описания имен переменных начинается с заголовка var. Далее следуют операторы описания переменных, имеющие следующий формат:
<список имен переменных через запятую>:<имя или описатель типа>
Раздел описания процедур и функций заголовка не имеет. Раздел содержит описания пользовательских процедур и функций.
В стандарте Паскаля перечисленные разделы следуют в строго указанном порядке. В ТР разделы могут следовать в любом порядке и могут повторяться.
Текст программы на Паскале завершает секция действий, представляющая собой составной оператор, – последовательность операторов, заключенная в логические скобки begin end.В секции действий описана последовательность действий, то есть алгоритм решения задачи.
6.2 Процедуры для стандартного ввода/вывода
Для осуществления ввода и вывода данных стандартного типа используются предопределенные процедуры ввода и вывода READ, READLN, WRITE, WRITELN. Эти процедуры, кроме стандартных типов (целочисленные, вещественные, булевский, символьный), могут обслуживать диапазонные типы со стандартным базовым типом и данные типа string (строка). В качестве аргумента эти процедуры получают список элементов ввода или вывода. Список формируется как строка, в которой указываются через запятую имена элементов ввода или вывода, возможно со спецификацией (характеристикой). Спецификации служат для уточнения формата представления данных. Если спецификация не указана, используется формат, принятый по умолчанию для данного типа данных.
Элемент ввода или вывода может принимать одну из следующих форм:
E,{нет спецификации}
E:LEN,{указана характеристика длины}
E:LEN:ACCUR {указана характеристика длины и точности}
Здесь Е – выражение одного из перечисленных выше типов, обслуживаемых процедурами ввода и вывода, LEN и ACCUR – выражения типа INTEGER. Характеристика точности (ACCUR) может применяться только для вывода данных вещественного типа. Использование характеристик при выдаче данных в текстовый файл (или на экран монитора) показано на примерах:
VAR I:INTEGER; C:CHAR; PI:REAL; B:BOOLEAN; A,S:STRING;
I:=1234;
C:='a';
PI:=3.14159;
B:=TRUE;
S:='ABCD';
A:='ABCD';