Блок программы состоит из шести разделов, следующих в строго определенном порядке:
Раздел действий должен присутствовать всегда, остальные разделы могут отсутствовать.
Каждый из первых 4-х разделов начинается с соответствующего ключевого слова (LABEL,CONST,TYPE,VAR), которое записывается один раз в начале раздела и отделяется от последующей информации только пробелом (либо концом строки либо комментарием).
В приведенном выше примере в блок входят строки от LABEL 15,120; до END.
8.2.1. Раздел меток (LABEL)
Любой выполняемый оператор может быть снабжен меткой - целой положительной константой, содержащей не более 4-х цифр. Все метки, встречающиеся в программе, должны быть
описаны в разделе LABEL.
Общий вид:
В приведенном выше примере программы в разделе LABEL описаны две метки 15 и 120, используемые в программе.
8.2.2. Раздел констант (CONST)
Если в программе используются константы, имеющие достаточно громоздкую запись (например, число я с 8-ю знаками), либо сменные константы (например, для задания варианта программы), то такие константы обычно обозначаются какими-либо именами и описываются в разделе CONST, а в программе используются только имена констант. Это делает программу более наглядной и удобной при отладке и внесении изменений.
Общий вид:
здесь А1 - имя константы, С1 - значение константы.
Пример. CONST PI=3.14; С=2.7531;
В разделе CONST приведенной выше программы вводятся четыре константы, обозначаемые соответственно именами INMAX, PI, OUTMAX и EOL.
8.2.3. Раздел типов (TYPE)
Если в программе вводится тип, отличный от стандартного, то этот тип описывается в разделе TYPE: TYPE Т1 = ><вид типа);
>
где Т1 и Т2 - идентификаторы вводимых типов.
Пример. TYPE COLOR=(RED, YELLOW, GREEN,BLUE); Здесь описан тип COLOR, задаваемый перечислением значений.
В приведенной выше программе вводятся типы FAMILY, LLINE и AR.
8.2.4. Раздел переменных (VAR)
Пусть в программе встречаются переменные V11,V12,...; все они должны быть описаны следующим образом:
здесь Vll, V12, ... - имена переменных; TYPE1 - тип переменных V11,V12,...; TYPE2 - тип переменных V21,V22,.... Пример. VAR K,I,J:INTEGER; A,B:REAL;
Каждая переменная должна быть описана до ее использования в программе и отнесена к одному и только одному типу. Названия разделов (CONST,TYPE,VAR...) указываются только один раз. Пример.
Таким образом, в разделе VAR вводится имя каждой переменной и указывается, к какому типу эта переменная принадлежит. Тип переменной можно задать двумя способами: указать имя типа (например, REAL,COLOR и т. д.) либо описать сам тип, например,
Рассмотрим приведенную выше программу (см. п. 8). В разделе VAR описаны переменные с именами:
Для переменных
указаны имена соответствующих типов (LLINE, AR, INTEGER, REAL, FAMILY). Часть из этих имен - стандартные (INTEGER, REAL), а типы LLINE, FAMILY и AR не являются стандартными. Эти типы должны быть описаны в разделе TYPE.
Тип переменной LINE никаким именем не назван и описан одновременно с описанием переменной.
Точно так же можно было бы поступить и для переменных L, SP, F:
В этом случае в разделе TYPE эти типы не описываются. Но переменные М, В и Z (процедуры RLINE) имеют такие же типы, поэтому повторять громоздкие описания нерационально. Есть еще более существенная причина для описания типов LLINE, AR и FAMILY в разделе TYPE (см. п. 14.4), т. е. таких типов, к которым относятся как переменные PROGRAM, так и переменные процедуры.
О разделе процедур и функций речь пойдет ниже (см. п. 13 и 14).
8.2.6. Раздел действий (операторов)
Эта часть программы начинается с ключевого слова BEGIN и заканчивается словом END, после которого должна стоять точка (END.). Раздел действий есть выполняемая часть программы, состоящая из операторов.