logo
Курс лекций по информатике

Структура паскаль - программы.

Программа на языке Паскаль разделяется на две части: заголовок программы и блок (тело программы), за которым следует точка, являющаяся признаком конца текста программы. Заголовок программы отделяется от блока точкой с запятой. В заголовке программы, начинающимся служебным словом PROGRAM, данной программе дается некоторое имя, которое внутри программы не имеет какого-либо смысла. В стандартном Паскале за именем программы в круглых скобках через запятые указываются имена файлов, используемых в программе. Если в программе используются только стандартные файлы ввода и вывода Input и Output, то, как правило, их имена можно не указывать. Заголовок программы в Турбо Паскале не обязателен, имена файлов после него не указываются.

Примеры заголовков программ:

PROGRAM Primer (Input, Output)

PROGRAM Proba

Основной частью программы является блок (тело программы). Блок в Турбо Паскале состоит из семи разделов. Все разделы, кроме раздела операторов, могут быть опущены. Порядок разделов в стандартном Паскале строго определен:

[раздел объявления модулей]

[раздел описания меток]

[раздел определения констант]

[раздел определения типов]

[раздел описания переменных]

[раздел описания процедур и функций]

раздел операторов.

Таким образом, тело программы состоит из двух частей: декларативной - описания обрабатываемых данных и исполняемой - описания алгоритмических действий над данными. Раздел операторов, описывающий алгоритм обработки данных, является основным и обязательно должен присутствовать в любой Паскаль-программе. Разделы отделяются друг от друга точкой с запятой. В Турбо Паскале разделы описаний могут следовать друг за другом в любом порядке и встречаться несколько раз.

РАЗДЕЛ МОДУЛЕЙ. Раздел объявления модулей открывается служебным словом USES за которым через запятые перечислены имена стандартных (Crt, Dos, Printer, Graph, Turbo3, Graph3, Overlay) и пользовательских библиотечных модулей. Например: USES Crt, Dos, Complex;

Модуль System считается предварительно объявленным, поэтому его объявление компилятор расценит как попытку повторного объявления и выдаст сообщение об ошибке.

РАЗДЕЛ МЕТОК. Любой оператор программы может быть помечен. Для этого перед ним через двоеточие ставят метку. Оператор не может быть помечен более, чем одной меткой. Все метки операторов должны быть различны. На помеченные операторы можно сослаться с помощью оператора перехода. В качестве меток используются целые числа от 0 до 9999,

например: 34:х:=1;

В Турбо Паскале меткой может быть любой идентификатор. Любая метка, используемая в программе, должна быть предварительно описана в разделе меток. Этот раздел открывается служебным словом LABEL, за которым через запятые перечислены метки. Завершается раздел меток точкой с запятой. Пример непустого раздела меток:

LABEL 25,34,9,3451;

LABEL A1,A2,345,B;

РАЗДЕЛ КОНСТАНТ. Константой называется конкретное значение того или иного типа, которое зафиксировано в тексте программы и не может изменяться в процессе выполнения программы. Константе можно дать имя и использовать его в качестве синонима константы. При описании константы указывают ее имя знак равенства и саму константу, например: E=2.7818281828,

Имя, использованное для определения константы, можно употреблять при определении последующих констант. Например: NE=-E;

Все описания констант должны содержаться в разделе определения констант. Этот раздел начинается служебным словом CONST и заканчивается точкой с запятой. Если в разделе несколько констант, то они отделяются друг от друга точкой с запятой. Например:

CONST E=2.71828;

NE=-E;

Word='ФУНКЦИЯ';

Maximum=100;

РАЗДЕЛ ТИПОВ. В Паскале имеются стандартные типы значений, которые могут использоваться в программе без каких-либо дополнительных описаний. Наряду с этими типами можно вводить в употребление и другие типы значений. Однако, в отличие от стандартных, каждый такой тип должен быть явно определен в программе. Все описания типов должны быть даны в разделе типов. Этот раздел начинается служебным словом TYPE, за которым следуют описания типов, отделенные друг от друга точкой с запятой, например:

TYPE Index=1..20;

Day=(Mo,Tu,We,Th,Fr,Sa,Su);

РАЗДЕЛ ПЕРЕМЕННЫХ. Каждая переменная, встречающаяся в программе, должна быть описана в разделе описания переменных. Описание переменной предшествует использованию ее в программе. Для описания переменной указывают ее имя и через двоеточие ее тип, например:

I:Integer;

X:Real;

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

I,J,K,L:Integer;

X,Y:Real;

Все описания переменных должны содержаться в разделе переменных, который начинается служебным словом VAR. Описания отделяются друг от друга точкой с запятой. Каждая переменная, используемая в программе, должна быть описана не более одного раза.

Пример раздела переменных:

VAR I,J,K:Integer;

X,Y,Z:Real;

M,N:Integer;

D1,D2:Day;

РАЗДЕЛ ПРОЦЕДУР И ФУНКЦИЙ. Программист может ввести в употребление любые необходимые процедуры и функции. Каждая такая процедура и функция должны быть определены с помощью соответствующего описания. Каждой процедуре и функции дается свое имя. Описание каждой процедуры начинается со служебного слова PROCEDURE, а функции со служебного слова FUNCTION. Раздел процедур и функций не начинается каким-то специальным служебным словом - начало данного раздела определяется по служебным словам PROCEDURE и FUNCTION. Порядок расположения описаний процедур и функций в этом разделе не существенен.

РАЗДЕЛ ОПЕРАТОРОВ. Это основной раздел программы. Здесь задаются те действия, которые должны быть выполнены при работе данной программы. Раздел операторов начинается служебным словом BEGIN, а заканчивается служебным словом END и точкой. Операторы отделяются друг от друга точками с запятыми, перед служебным словом END точка с запятой не ставится.

ПРОСТЕЙШИЕ ПРОГРАММЫ НА ПАСКАЛЕ.

Рассмотрим примеры программ на Паскале.

ПРИМЕР 1. Напишите программу вычисления функции: z=ln(x2+y2+1)

ПРОГРАММА 1.

PROGRAM Primer1; {Программа вычисления функции z=ln(x2+y2+1)}

USES Crt; {Раздел модулей}

VAR X,Y:Real; {Раздел переменных}

BEGIN {Раздел операторов}

ClrScr;

GotoXY(5,2);

Write ('Вычисление функции z=ln(x*х+y*y+1)');

GotoXY(1,5);

Write('Введите Х:');

Readln(X);

Write('Введите Y:');

Readln(Y);

Writeln;

Writeln('Z=',LN(X*X+Y*Y+1))

END.

В фигурных скобках размещены комментарии к программе. Они могут быть опущены, так как при работе компилятора пропускаются. ClrScr - процедура очистки экрана в Турбо Паскале. Процедура GotoXY(N,M) устанавливает курсор в позицию N строки M. Процедура Writeln с пустым списком вывода переводит строку. Процедуры ClrScr,GotoXY описаны в модуле Crt, а процедуры Write, Read, Writeln, Readln в модуле System.

ПРИМЕР 2. Напишите программу, вычисляющую площадь трапеции по заданным длинам оснований и высоты.

ПРОГРАММА 2.

PROGRAM Trap;

USES Crt;

VAR A,B,H,S:Real;

BEGIN

ClrScr;

GotoXY(8,3);

Write ('Вычисление площади трапеции');

GotoXY(1,5);

Write('Введите длину первого основания:');

Readln(A);

Write('Введите длину второго основания:');

Readln(B);

Write('Введите высоту:');

Readln(H);

S:=((A+B)/2)*H;

Writeln;

Writeln('Площадь трапеции равна:',S)

END.