Пример простой программы

Приведем пример простой программы, написанной на языке Паскаль.

Задача. Найти сумму чисел 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 логического типа.

Различные подразделы могут располагаться в произвольном порядке, одни и те же разделы могут повторяться. Однако при описании действует одно неукоснительное правило: в любом месте программы могут использоваться только те элементы (типы, константы, метки или переменные), которые определены ранее в ее тексте.