Выбор заголовка программы подчиняется правилам выбора имени переменной. Заголовок заканчивается точкой с запятой.
За заголовком следуют разделы программы:
Usesраздел используемых модулей
В нем указываются имена стандартных и пользовательских модулей, используемых программой:
Labelраздел описания меток
В нем перечисляются метки, используемые в программе. Любой оператор программы можно выделить, поставив перед ним метку – целое число без знака от 0 до 9999 или идентификатор. Метками снабжаются операторы программы, на которые осуществляется переход операторами GoTo, и отделяются от помеченного оператора двоеточием:
10: f := f + 1;
Метки, объявленные в этом разделе, обязательно должны использоваться в программе. С другой стороны, все имеющиеся в программе метки должны быть обязательно описаны в этом разделе. Метки не должны повторяться. Раздел заканчивается точкой с запятой:
Если в программе нет помеченных операторов, то раздел описания меток опускается,
Constраздел определения поименованных и типизированных констант
в нем задаются константы, используемые в программе, значения которых нужно будет менять в разных вариантах программы. Например, если в программе часто используется константа 2,71, то ее лучше задать в этом разделе:
Const eps = 2.71;
Тип константы определяется типом ее значения. Как правило, в этом разделе определяются размеры массивов, которые далее описываются в разделах Type или Var:
Const row = 2;
col = 3;
Значения констант, описанных в этом разделе, в программе изменять нельзя. Такие константы называются поименованными. В этом же разделе могут быть заданы типизированные константы, значения которых можно далее изменять, например, массивы:
Const mass: Array [1..row,1..col] Of Integer =((5,-2,0),(12,1,-20));
Заданы элементы массива mass, состоящего из двух строк и трех столбцов. Использование констант делает программу наглядной и удобной для отладки и внесения изменений.
Typeраздел определения типов
Этот раздел появляется в программе в том случае, если в ней используются данные нестандартных типов, то есть типов, определяемых самим программистом. Помимо стандартных типов, в Паскале можно использовать еще два типа данных – интервальный (тип-диапазон) и перечисляемый.
Если мы хотим объяснить кому-нибудь новое для него понятие, то в простейшем случае перечисляем реальные объекты, охватываемые этим понятием. Например, как пояснить, что такое время года? Это, говорим мы, весна, лето, осень и зима. А сторона света? Это север, юг, восток и запад. В Паскале такие понятия можно выразить через перечисляемый тип данных:
Type TStorona = (sever, yug, vostok, zapad);
Конкретные значения типа перечисляются в скобках через запятую. Переменные заданного типа описываются далее в разделе Var. По принятому соглашению, имена новых типов начинаются с буквы T.
Таким образом, перечисляемый тип представляет собой упорядоченное множество значений, образуемое перечислением имен, входящих в этот тип. В программе с этими значениями можно оперировать, как с обычными константами, однако к ним нельзя применять арифметические и логические операции, но можно применять операции сравнения (значения считаются упорядоченными по возрастанию в порядке их перечисления), определять их порядковые номера функцией Ord, предшествующее и последующее значения функциями Pred и Succ:
yug > sever = True
Ord(sever) = 0нумерация значений начинается с нуля!
Ord(zapad) = 3
Pred(vostok) = yug
Succ(vostok) = zapad
Если в программе определены несколько перечисляемых типов, то необходимо следить за тем, чтобы одно и то же значение не входило в два типа одновременно.
Как правило, перечисляемый тип используется для описания множества значений какого-нибудь свойства объекта, например, его цвета. Поэтому он повышает понятность, читабельность программы.
Перечисляемый тип относится к упорядоченным типам данных, то есть к типам, у которых для каждого принадлежащего к нему значения (кроме первого) известно предыдущее значение и вместе с тем для каждого (кроме последнего) – последующее значение. Кроме перечисляемого, к упорядоченным типам относятся целый, логический и символьный типы данных.
В ряду значений любого упорядоченного типа можно выделить более узкий диапазон или интервал:
-10 .. 20
‘a’ ..’d’
Эти значения образуют интервальный тип данных – тип, формируемый несколькими подряд идущими значениями одного упорядоченного типа. Границы значений интервального типа определяются наименьшей и наибольшей константами, ограничивающими выделенный интервал:
Type TIndex = 1..10;
TYear = 1970..2000;
TDay = 1..31;
TLitera = ‘a’..’z’;
Внимание! Между границами диапазона (интервала) ставятся две точки.
Описаны пять интервальных типов. Переменные, относящиеся к этим типам, могут принимать любые значения в заданных диапазонах:
для TIndex - от 1 до 10
для TYear - от 1970 до 2000
для TDay - от 1 до 31
для TLitera - от ‘a’ до ‘z’
После определения интервального типа объявляются переменные этого типа в разделе Var, причем в программе эти переменные могут принимать только значения, лежащие в заданном диапазоне.
Внимание! Нельзя определять интервальный тип для вещественных данных.
Если переменной интервального типа данных присваивается значение, не соответствующее диапазону данного типа, то программа прерывается, и выдается ошибка:
Error 201: Range check error – ошибка проверки диапазона возможных значений.
Данное свойство интервального типа используется для ограничения возможных значений переменной, так как в некоторых случаях удобнее прекратить программу с ошибкой, чем продолжать ее выполнение с некорректным значением переменной.
Переменные упорядоченных типов можно использовать так, как и в других алгоритмических языках употребляются только целые числа: в качестве параметра цикла, индекса элемента массива, селектора в операторе выбора Case,
Varраздел описания переменных
В этом разделе перечисляются имена используемых в программе переменных с указанием их типов:
Var i, j : Integer; переменные целого типа
alfa: Real; переменная вещественного типа
b: Boolean; переменная логического типа
n, m: TIndex; переменные типа TIndex
x: TLitera; переменная типа TLitera
st: TStorona; переменная типа TStorona
k: 1..100; переменная интервального типа
В программе эти переменные могут принимать значения констант только своих типов,
Function, Procedureраздел описания функций и процедур
В программе он появляется только тогда, когда в ней используются функции и процедуры, написанные программистом.
Begin . . . Endраздел операторов
В нем записываются операторы программы в соответствии с алгоритмом ее работы. Каждый оператор заканчивается точкой с запятой. На одной строке помещается по одному оператору. Раздел операторов заканчивается словом End, после которого ставится точка – это физический конец программы.
Пример: написать программу, определяющую сумму цифр целого трехзначного числа x = 543: