Пример простой программы
Приведем пример простой программы, написанной на языке Паскаль.
Задача. Найти сумму чисел 1265 и 3679.
program summa;
{Программа находит сумму чисел 1265 и 3679}
{описание переменных}
var
a,b,sum : integer;
begin
{присвоение переменным данных значений}
a:=1265;
b:=3679;
{нахождение суммы}
sum:=a+b;
end.
Рассмотрим текст программы. Каждая программа на языке Паскаль, как правило состоит из заголовка, раздела описаний (объявлений) и раздела операторов. Раздел описаний называют еще описательной частью, а раздел операторов — исполнительной частью.
Первая строка
program summa;
представляет собой заголовок программы. Слово program — зарезервированное, а summa — идентификатор, обозначающий имя данной программы. Заканчивается заголовок точкой с запятой. Заголовок программы является необязательным и компилятором игнорируется.
Далее следует строка, заключенная в фигурные скобки. Это комментарии. Компилятор комментарии игнорирует. Комментарии — это пояснения к программе, содержащие указания о методах решения и обозначениях переменных. Они облегчают чтение программы и ее изменение, если это требуется. Необходимыми считаются комментарии к сложным программам, содержащим более 15—20 операторов. Комментарии могут располагаться в любом месте программы и заключаются в парные фигурные скобки {} или сочетание соответствующей круглой скобки и звездочки: (* *).
Зарезервированное слово var открывает раздел описаний переменных: слагаемых а, b и их суммы sum.
Зарезервированное слово begin открывает раздел операторов (тело программы), который заканчивается зарезервированным словом end, за которым следует точка.
Между begin и end располагаются операторы программы, которые отделяются друг от друга точкой с запятой. После последнего оператора точку с запятой ставить, вообще говоря, необязательно. Если она стоит, то следующим будет являться так называемый пустой оператор, который ничего не выполняет. Так, например, в нашем примере программа содержит пять операторов, последний из которых является пустым.
Три первых оператора являются операторами присваивания. Оператор присваивания содержит знак присваивания :=, справа от которого стоит выражение, значение которого будет помещено в переменную, идентификатор которой стоит слева от знака присваивания.
Программа на языке Паскаль имеет следующую структуру:
<заголовок программы>
<раздел описаний>
<раздел операторов>
Некоторые из разделов могут отсутствовать, но раздел операторов обязательно присутствует в любой программе.
Структура заголовка:
<заголовок программы> ::= program <идентификатор>;
Структура раздела операторов:
<раздел операторов> ::= begin <оператор> {; <оператор>} end .
Скалярные типы данных
Каждая переменная или константа имеет значение определенного типа. Тип данных определяет множество допустимых значений, которые могут принимать переменные этого типа, а также возможные над ними операции.
Сначала рассмотрим только скалярные типы данных. К ним относятся целые, вещественные, символьный, логический, перечисляемые и интервальные типы. Среди скалярных типов принято выделять порядковые. Все порядковые типы имеют конечное число допустимых значений, которые могут быть определенным образом упорядочены. К ним относятся все скалярные типы за исключением вещественных.
Целые типы. Целых типов данных в Паскале шесть: integer, shortint, longint, comp, byte, word. Первоначально для целых чисел в Паскале существовал лишь тип integer, остальные были включены в более поздние версии.
Вещественные типы. Вещественные типов в языке Паскаль четыре: real, single, double и extended.
Символьный тип в Паскале только один — char. К нему относятся все ASCII-символы. Под каждую переменную или константу этого типа отводится 1 байт памяти.
Логический тип. Данные логического типа (boolean) могут принимать два возможных значения — true (истина) или false (ложь), и во внутреннем представлении занимают 1 байт.
Раздел описаний
Как уже упоминалось, любая переменная или константа, используемая в программе, написанной на языке Паскаль, должна быть сначала указана в разделе описаний, который делится на следующие подразделы:
q меток;
q констант;
q типов;
q переменных;
q процедур и функций.
Об описании меток, процедур и функций будет сказано позже.
Подраздел констант начинается с зарезервированного слова const.
<подраздел констант> ::= const <описание константы>; {<описание константы>;}
Описание константы выглядит следующим образом:
<описание константы>::=<имя константы> = <значение> |
<имя константы> : <тип> = <значение>
Например, возможны следующие описания констант:
const
a = 12;
g = 9.8;
b: integer = 128;
x: real = 134.6;
cr = #13;
word = 'Hello!';
Константы, для которых указан тип, называются типизированными. Такими константами являются, например, b и x.
Подраздел переменных начинается с зарезервированного слова var.
<подраздел переменных>::=var <описание переменных>;{<описание переменных>;}
Описание переменных выглядит следующим образом:
<описание переменных> ::= <имя переменной>{,<имя переменной>} : <тип>
Например, описания:
var
radius, length, distance: Real;
i,j : integer;
symb : char;
f : boolean;
задают переменные radius, length и distance типа real; i и j типа integer; symb типа char; f логического типа.
Различные подразделы могут располагаться в произвольном порядке, одни и те же разделы могут повторяться. Однако при описании действует одно неукоснительное правило: в любом месте программы могут использоваться только те элементы (типы, константы, метки или переменные), которые определены ранее в ее тексте.