Алфавит языка и структура программы

Словарь языка Pascal

Алфавит любой программы на языке Pascal состоит из букв, цифр и специальных символов. Из последних образуют знаки операций и знаки пунктуации.

Буквы: _, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z.

Обратите внимание, что символ подчеркивания "_" в языке Pascal, как и во многих других языках программирования, является буквой.

Цифры: 1, 2, 3, 4, 5, 6, 7, 8, 9, 0.

Знаки операций: +, -, *, /, <, >, <= (меньше или рано), >= (больше или равно), =, <> (не равно).

Знаки пунктуации:

{ } или (**) Скобки комментариев
  // Комментарий до конца строки, используется только в Delphi
  [ ] Выделение индексов массива, элементов множеств
  '  ' Выделение символа или строковой константы
  ( ) Выделение выражений, список параметров
  := Знак оператора присваивания
   ; Разделение операторов и объявлений
   : Отделение переменной и константы от типа и метки от оператора
  = Отделение имени типа от описания типа или константы от ее значения
   , Запятая для разделения элементов в списке
   .. Разделение границ диапазона
   . Конец программы, отделение целой части от дробной, отделение полей в записи
  ^ Значение величины по ее указателю
  @ Обозначение адреса переменной
  # Обозначение символа по его коду
  $ Обозначение директивы компилятора или знак 16-ричного числа

 

Основные правила грамматики

Любой алгоритм или программа для компьютера состоит из двух разделов: описания данных и описания действий, которые над этими данными необходимо выполнить. В языках программирования действия представляются так называемыми операторами. Данные есть общее понятие для всего того, с чем оперирует компьютер.

Для того, чтобы программа обладала универсальностью, действия в ней должны совершаться не над постоянными, а над переменными величинами.

Под переменной в языках программирования понимают программный объект (число, слово, часть слова, несколько слов, символы), имеющие имя и значение, которое может быть получено и изменено программой.

Если "заглянуть" в компьютер, то переменную можно определить так:

Переменная - это имя физического участка в памяти, в котором в каждый момент времени может быть только одно значение.

Переменная - это область в оперативной памяти компьютера для хранения какой-либо информации.

У каждой переменной есть имя, тип и текущее значение.

В качестве имен переменных могут быть латинские буквы с цифрами. Причем может быть не одна буква, а несколько.

В Pascal не имеет значение в обозначении переменных маленькими или большими (строчными или прописными) буквами они написаны.

Имя переменной должно удовлетворять следующим требованиям:

  1.  - всегда начинаться с буквы, после которой могут быть другие буквы или цифры;
  2.  - в идентификаторе (имени) не должно быть пробелов, запятых или других непредусмотренных знаков;
  3.  - нельзя использовать в качестве переменных слова, которые являются служебными или операторами.

 

Переменные бывают разных типов. Тип определяет размер памяти, отводимой под переменную,  а также допустимое конечное множество значений, которые может принимать та или иная переменная. Типы данных в значительной степени определяют и операции над ними. Некоторые типы являются стандартными (например, целые, символьные, логические, вещественные), а другие создаются пользователем (перечисляемые, множества, записи, ссылочные).

 

 

 

 

 

 

 

 

 

 

 

 

Структура программы на Pascal

В Pascal существует очень важное правило - любое имя (кроме ключевых слов), используемое в программе, обязательно должно быть предварительно описано. Именно такой подход обусловил наличие в каждой программе двух частей - сначала идет описательная, или декларативная часть, а затем - исполняемая часть.

Описать имя - то значит в первую очередь, присвоить ему соответствующий тип.

Программа обычно начинается с заголовка (хотя это не обязательно):

program <имя программы>;

Имя программы выбирается произвольно, но оно не должно совпадать с каким-либо ключевым словом и должно быть уникальным.

Далее следует описательная часть, которая может включать в себя несколько разделов.

Раздел описания констант начинается с ключевого слова const, за которым следуют сами описания. (Константы не меняют своих значений в процессе работы программы). Например:

const { заголовок раздела описания констант }
f=15; { целочисленная константа }
a='&'; { символьная константа }
lg='Computer'; { строковая константа}
s12_a=3.8521254; { вещественная константа }
tt=TRUE; { булевская (логическая) константа }

 

Обратите внимание, что комментарии заключаются в фигурные скобки. Их можно размещать в программе везде, где есть пробелы. Это часто оказывается полезным для документирования программы, да и просто в качестве памятки. На работу программы комментарии никак не влияют.

Раздел описания переменных начинается с ключевого слова var, за которым следуют сами описания. Например:

var { заголовок раздела описания переменных }
i: integer; { целая переменная типа Integer }
yt: byte; { целая переменная типа Byte }
s: real; { вещественная переменная типа Real }
b67: char; { символьная переменная }
str: string; { строковая переменная }
R_T: boolean; { булевская (логическая) переменная }

 

Обратите внимание: после имени переменной всегда ставится двоеточие, а ее описание в языке Pascal заканчивается точкой с запятой.

Раздел описания типов начинается с ключевого слова type и включает в себя описания нестандартных (пользовательских) типов данных. Например, пусть нам для создания картотеки нужно описать такой тип данных, который включал бы поля avt (автор), nazv (название) и god (год издания). Такого типа среди стандартных явно нет, поэтому опишем свой тип. (Такие структуры называются записями - record.)

type { заголовок раздела описания типов}
bibl=record { называем новый тип "bibl" и указываем, что это запись}
avt: string; { поле записи, хранящее фамилию автор }
nazv: string; { поле записи, хранящее название }
god: word; { поле записи, хранящее год издания }
end; { описание этого типа заканчивается ключевым словом "end" }

 

Когда нужный тип описан, мы можем использовать его наряду со стандартными. Например:

var
sw: integer;
poi: char;
z: bibl;
a123: longint;

 

Это означает, что переменная z будет иметь тип bibl, т.е. состоять из полей: z.avt, z.nazv и z.god.

Раздел описания меток начинается с ключевого слова label, за которым перечисляются все имеющиеся метки. Они ставятся в программе перед теми операторами, на которые осуществляется переход. Например, если есть оператор: Z:=X+Y; и на него предполагается переход, то его нужно предварить меткой - любым именем, заканчивающимся двоеточием, например M11:. Тогда оператор будет иметь вид: M11:Z:=X+Y;

Эта метка должна быть описана в разделе описания меток:

Label
M11;

 

Если в программе имеется несколько меток, то они могут быть описаны в одной строке:

Label
M11, F15, D, G123, INV;

 

Если программа использует подпрограммы (процедуры и функции), созданные пользователем, то они тоже должны быть описаны до начала исполняемой части (которая, как для процедур и функций, так и для основной программы, начинается со слова begin).

Для процедуры:

procedure < имя процедуры> [ параметры ];
{ описательная часть процедуры }
begin
{ исполняемая часть процедуры }
end;

 

Для функции:

function <имя функции> [ параметры ]: тип возвращаемого значения;
{ описательная часть функции }
begin
{ исполняемая часть функции }
end;

 

Итак, в описательной части, помимо описания подпрограмм, могут содержаться четыре раздела: const, var, type и label. Нужно помнить, что точка с запятой после названия раздела не ставится. В описательной части может быть несколько разделов с одним и тем же заголовком. В этом случае они рассматриваются как один соответствующий раздел.

Главное, чтобы все описания, в том числе описания подпрограмм (процедур и функций), предшествовали началу исполняемой части программы. Однако совершенно не обязательно стремиться в самом начале работы, до написания исполняемой части, описать все это. Лучше уже в процессе написания программы по мере создания новых констант, переменных, типов, меток и подпрограмм возвращаться к описательной части программы и дописывать в ней все необходимое.