TURBO PASCAL

Новости       

Программы

Turbo Pascal

Игры

Документация

"Странности"

FAQ

Ссылки

Благодарности 

Гостевая книга

Спонсор

От автора

Глава 1. Что такое программа Borland Pascal?

 

Программа_Borland Pascal
Процедуры и функции и функции
Операторы
Выражения
Лексемы
Типы, переменные, константы и типизированные константы
Компоновка частей частей
Модули
Синтаксические Синтаксические диаграммы

 

Следующие несколько глав посвящены формальному определению языка Borland Pascal. В каждой главе обсуждается один из элемен­тов Borland Pascal. Совместно эти элементы образуют программу Borland Pascal.

Однако, изучая части, трудно понять целое. В данной главе дается общий обзор программы Borland Pascal, опуская детали. Здесь приводится краткое описание каждого элемента программы, а затем показывается, как все это компонуется вместе. Подробности элементов языка освещаются в остальных главах.

Программа Borland Pascal

В своей простейшей форме программа Borland Pascal состоит из заголовка программы, который именует программу, и основного прог­раммного блока, выполняющего назначение программы. В основном программном блоке находится секция кода, заключенная между ключе­выми словами begin и end. Приведем простейшую программу, иллюст­рирующую эти принципы:

program Privet;

begin

Writeln('Добро пожаловать в Borland Pascal'); end.

Первая строка - это заголовок программы, который именует данную программу. Остальная часть программы - это исходный код, который начинается ключевым словом begin и заканчивается end. Хо­тя данная конкретная программа содержит только одну строку, их может быть много. В любой программе Borland Pascal все действия выполняются между begin и end.

Возврат в начало

 

Процедуры и функции

Код между последними операторами begin и end программы уп­равляет логикой программы. В очень простой программе в этой сек­ции кода может содержаться все, что вам нужно. В более крупных и сложных программах размещение в этой секции всего программного кода может затруднить чтение и понимание программы. К тому же ее будет труднее разрабатывать.

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

Процедура или функция

Заголовок процедуры или функции

Блок процедуры или функциями

begin

Логика

end;

 

Рис. 1.1 Диаграмма процедуры или функции.

Если вы обнаружите, что в вашей диаграмме одни и те же дейс­твия выполняются многократно, такую логику желательно выделить в процедуру или функцию. Вы можете один раз записать этот код в процедуре или функции, а затем многократно вызывать его в прог­рамме.

Приведем пример функции. Следующая функция GetNumber получа­ет число от пользователя:

function GetNumber: Real;

var

Responce: Real; begin

Write('Введите число: ');

Readln(Response);

GetNumber := Response; end;

Процедура или функция должна содержаться в программе перед секцией основного кода. В основном коде она может затем использо­ваться (вызываться).

Процедура или функция

Заголовок процедуры или функции

Блок процедуры или функциями

Процедуры или функции (0 или более)

begin

Логика

end;

 

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

В следующем примере дается набросок программы, в которой ис­пользуется функция GetNumber. Программист разделил логику прог­раммы на три задачи:

1. Получение числа от пользователя.

2. Выполнение с этим числом необходимых вычислений.

3. Печать отчета.

Основная логика программы заключена в последнем блоке begin..end.

Program Report;

var

A: Real;

 другие описания

.

.

.

function GetNumber: Real;

var

Responce: Real; begin

Write('Введите число: ');

Readln(Response);

GetNumber := Response; end;

procedure Calculate(X: Real);

.

.

.

procedure PrintReport;

.

.

.

begin

A: = GetNumber;

Calculate(A);

PrintReport; end.

Основная логика программы достаточно проста для понимания. Все детали убраны в тела процедур и функций. Использование проце­дур и функций позволяет вам рассматривать программу более удобным и модульным способом.

Возврат в начало

 

Операторы

Исходный код между begin и end содержит операторы, которые описывают выполняемые программой действия. Это называются опера­торной частью программы. Приведем примеры операторов:

A := B + C;                                          присвоить значение

Calculate(Length, Height);                     активизировать процедуру

if X < 2 then                                         оператор условия

Answer := X * Y;

begin                                                    составной оператор

X := 3;

Y := 4;

Z := 5; end;

while not EOF(InFile) do                      оператор цикла

begin

ReadLn(InFile, Line);

Process(Line); end;

В простых операторах можно присваивать значение, активизиро­вать процедуру или функцию или передавать управление на другую часть кода. Структурные операторы могут быть составными и содер­жать несколько операторов, оператор цикла или оператор условия, управляющий логикой программы, а также операторы with, упрощающие доступ к данным в записи.

Возврат в начало

 

Выражения

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

Выражения Паскаля могут состоять из более простых выражений. О комбинации операндов и операций вы можете прочитать в Главе 6. Они могут быть достаточно сложными. Приведем некоторые примеры выражений:

X + Y

Done <> Error

I <= Length

-X

Возврат в начало

 

Лексемы

Лексемы - это наименьшие значащие элементы в программе Пас­каля. Они образуются операндами и операциями выражений. Лексемы - это специальные символы, зарезервированные слова, идентификаторы, метки и строковые константы. Приведем примеры лексем Паскаля:

function                                              зарезервированное слово

(                                                         специальный символ

:=                                                       специальный символ

Calculate                                            идентификатор процедуры

9                                                        число

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

Операторы (1 или более)

  Выражения (1 или более)

Лексемы (1 или более)

  Рис. 1.3 Диаграмма оператора.

Возврат в начало

 

Типы, переменные, константы и типизированные константы

Переменная может содержать изменяемое значение. Каждая пере­менная должна иметь тип. Тип переменной определяет множество зна­чений, которые может иметь переменная.

Например, в следующей программе описываются переменные X и Y, имеющие тип Integer. Таким образом, X и Y могут содержать только целые значения (числа). Если в вашей программе предприни­мается попытка присвоить этим переменным значения другого типа, Borland Pascal сообщает об ошибке.

program Example;

const

A = 12;                        константа A не изменяет значения

B: Integer = 23;  типизированная константа B получает начальное значение

var

X, Y: Integer;                 переменные X и Y имеют тип Integer

J: Real;                           переменная J имеет тип Real

begin

X := 7;                           переменной X присваивается значение

Y := 7;                           переменной Y присваивается значение

X := Y + Y;                    значение переменной X изменяется

J := 0.075;                      переменной J присваивается значение

с плавающей точкой

end.

В этой простой и не очень полезной программе X первоначально присваивается значение 7; двумя операторами ниже ей присваивается новое значение: Y + Y. Как можно видеть, значение переменной мо­жет изменяться.

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

B представляет собой типизированную константу. Ей присваива­ется значение при описании, но дается также тип Integer. Типизи­рованую константу можно рассматривать как переменную с начальным значением. Позднее программа может изменить первоначальное значе­ние B на какое-то другое значение.

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

Возврат в начало

 

Компоновка частей

Теперь, когда вы познакомились с основными компонентами программы Borland Pascal, давайте посмотрим, как все это работает вместе. Приведем диаграмму программы Borland Pascal:

Программа на Паскале

 Заголовок программы

 Необязательные операторы uses

 Основной блок программы

Описания

Процедуры или функции (0 или более)

 Описания

begin

 Операторы (1 или более)                       

end;

 begin

 Операторы (1 или более)                           

 Выражения (1 или более)                        

 Лексемы (1 или более)                         

 end.

 

Рис. 1.4 Расширенная диаграмма программы на Паскале.

Программу на Паскале составляют заголовок программы, необя­зательный оператор uses (о нем будет рассказано позднее) и основ­ной блок программы. В основном блоке могут присутствовать более мелкие блоки процедур и функций. Хотя на диаграмме это не пока­зано, процедуры им функции могут быть вложенными в другие проце­дуры или функции. Другими словами, блоки могут содержать другие блоки.

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

Возврат в начало

 

Модули

Программа Borland Pascal может использовать блоки кода в программных модулях. Модуль (unit) можно рассматривать как ми­ни-программу, которую может использовать ваша прикладная програм­ма. Как и программа, он имеет заголовок (который называется заго­ловком модуля) и основной блок, ограниченный begin и end.

Основной блок любой программы Borland Pascal может включать в себя строку, позволяющую программе использовать один или более модулей. Например, если вы пишете программу DOS с именем Colors и хотите изменять цвета выводимого на экран текста, то ваша прог­рамма может использовать стандартный модуль Crt, являющийся частью библиотеки исполняющей системы Borland Pascal:

program Colors;

uses Crt;

begin

.

.

.

end.

Строка uses Crt сообщает Borland Pascal, что нужно включить модуль Crt в выполняемую программу. Кроме всего прочего, модуль Crt содержит весь необходимый код для изменения цвета в вашей программе. Путем простого включения uses Crt ваша программа может использовать весь код, содержащийся в модуле Crt. Поэтому опера­тор uses называют также оператором использования. Если бы вы по­местили весь код, необходимый для реализации функциональных воз­можностей Crt, в свою программу, это потребовало бы огромных уси­лий и отвлекло бы вас от основной цели программы.

Библиотеки исполняющей системы Borland Pascal включают в се­бя несколько модулей, которые вы найдете весьма полезными. Напри­мер, благодаря использованию модулей Dos или WinDos, ваша прог­рамма может получить доступ к нескольким подпрограммам операцион­ной системы и подпрограммам работы с файлами.

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

Возврат в начало

 

Синтаксические диаграммы

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

Имена в прямоугольных рамках с текстом должны быть заменены действительными конструкциями. Некоторые рамки содержат зарезер­вированные слова, знаки операций и знаки пунктуации, то есть фак­тические термы, используемые в программе. Имена в блоках - это конструкции языка. Имена, написанные по-английски (например, procedure), представляют собой зарезервированные слова и операции Borland Pascal.

 

На первую страницу

Rambler's Top100 PROext: Top 1000
Rambler's Top100

(с) Все права защищены.

По всем интересующим вопросам прошу писать электронный адрес

Hosted by uCoz