Перейти на главную   
  helloworld.ru - документация и книги по программированию  
helloworld.ru - документация и книги по программированию
    главная     хостинг    
Поиск по сайту:  
Смотрите также
Языки программирования
C#
MS Visual C++
Borland C++
C++ Builder
Visual Basic
Quick Basic
Turbo Pascal
Delphi
JavaScript
Java
PHP
Perl
Assembler
AutoLisp
Fortran
Python
1C

Интернет-технологии
HTML
VRML
HTTP
CGI
FTP
Proxy
DNS
протоколы TCP/IP
Apache

Web-дизайн
HTML
Дизайн
VRML
PhotoShop
Cookie
CGI
SSI
CSS
ASP
PHP
Perl

Программирование игр
DirectDraw
DirectSound
Direct3D
OpenGL
3D-графика
Графика под DOS

Алгоритмы
Численные методы
Обработка данных

Сис. программирование
Драйверы

Базы данных
MySQL
SQL

Другое

Хостинг


Друзья
demaker.ru
Реклама

Лучший хостинг. Аренда серверов




helloworld.ru

Введение

             Данное руководство  посвящено используемому в Borland Pascal
        with Objects языку Паскаль. Оно

             * Дает формальное определение языка Borland Pascal.

             * Поясняет,  как использовать и писать динамически компонуе-
               мые библиотеки.

             * Знакомит вас с библиотекой исполняющей системы.

             * Поясняет, как писать программы для защищенного режима DOS.

             * Освещает  такие вопросы Borland Pascal,  как использование
               памяти, форматы данных, соглашения по вызову, ввод и вывод
               и автоматическая оптимизация.

             * Описывает,  как  использовать  Borland Pascal с языком ас-
               семблера.

                   Примечания: Обзор всего набора документации по Borland
              Pascal вы можете найти во введении к "Руководству пользова-
              теля".

             Если вы

             - хотите узнать, как установить Borland Pascal в системе;

             - использовали Turbo Pascal или Turbo Pascal for Windows ра-
               нее и хотите узнать, что нового в этой версии;

             - не  знакомы  с интерактивной интегрированной средой разра-
               ботки программ (IDE) фирмы Borland;

             - хотите познакомиться с введением в  объектно-ориентирован-
               ное программирование;

             - не имеете опыта программирование на Паскале в Windows;

             - хотите познакомиться с ObjectWindows;

        то прочитайте "Руководство пользователя".

             Чтобы найти справочные материалы по следующим темам:

             - библиотеки исполняющей системы;

             - директивы компилятора;

             - сообщения об ошибках;


             - работа с редактором;

        прочтите "Справочное руководство программиста".

О чем рассказывается в данном руководстве

             Данное руководство разбито на четыре части:  грамматика язы-
        ка, библиотеки, вопросы продвинутого программирования и использо-
        вание с Borland Pascal языка ассемблера.

             В Части I "Язык Borland Pascal"  определяется  язык  Borland
        Pascal. Сначала  вы  познакомитесь  с  общей структурой программы
        Borland Pascal; затем о каждом элементе программы будет рассказа-
        но более подробно.

             Часть II  "Библиотеки исполняющей системы" содержит информа-
        цию о стандартных модулях, образующих библиотеку исполняющей сис-
        темы, и о том,  как их использовать.  Здесь рассказывается также,
        как писать программы для защищенного режима DOS.

             В Части III "В среде Borland Pascal" дается техническая  ин-
        формация для продвинутых пользователей. Здесь рассказывается:

             - об использовании памяти в Borland Pascal;

             - о  том,  как в Borland Pascal реализовано управление прог-
               раммой;

             - о деталях по вводу и выводу;

             - об оптимизации вашего кода.

             В Части IV "Использование Borland Pascal с языком  ассембле-
        ра" поясняется,  как использовать встроенный ассемблер и как ком-
        поновать ваши программы Паскаля с кодом Турбо Ассемблера.

Часть I. Язык Borland Pascal

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

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

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

Программа Borland Pascal

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

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

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


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

Код между последними операторами begin и end программы уп- равляет логикой программы. В очень простой программе в этой сек- ции кода может содержаться все, что вам нужно. В более крупных и сложных программах размещение в этой секции всего программного кода может затруднить чтение и понимание программы. К тому же ее будет труднее разрабатывать. Процедуры и функции позволяют разделить логику программы на более мелкие и управляемые фрагменты и аналогичны подпрограммам в других языках. Как и в основном блоке программы, все действия в процедурах и функциях заключаются в begin и end. Каждый из этих сегментов кода выполняет конкретную задачу. ----------------------------------------------------------- ¦ Процедура или функция ¦ ¦---------------------------------------------------------¦ ¦¦ Заголовок процедуры или функции ¦¦ ¦L---------------------------------------------------------¦ ¦---------------------------------------------------------¦ ¦¦ Блок процедуры или функциями ¦¦ ¦¦ begin ¦¦ ¦¦-------------------------------------------------------¦¦ ¦¦¦ Логика ¦¦¦ ¦¦L-------------------------------------------------------¦¦ ¦¦ end; ¦¦ ¦L---------------------------------------------------------¦ L----------------------------------------------------------- Рис. 1.1 Диаграмма процедуры или функции. Если вы обнаружите, что в вашей диаграмме одни и те же дейс- твия выполняются многократно, такую логику желательно выделить в процедуру или функцию. Вы можете один раз записать этот код в процедуре или функции, а затем многократно вызывать его в прог- рамме. Приведем пример функции. Следующая функция GetNumber получа- ет число от пользователя: function GetNumber: Real; var Responce: Real; begin Write('Введите число: '); Readln(Response); GetNumber := Response; end; Процедура или функция должна содержаться в программе перед секцией основного кода. В основном коде она может затем использо- ваться (вызываться). ----------------------------------------------------------- ¦ Процедура или функция ¦ ¦---------------------------------------------------------¦ ¦¦ Заголовок процедуры или функции ¦¦ ¦L---------------------------------------------------------¦ ¦---------------------------------------------------------¦ ¦¦ Блок процедуры или функциями ¦¦ ¦¦-------------------------------------------------------¦¦ ¦¦¦ Процедуры или функции (0 или более) ¦¦¦ ¦¦L-------------------------------------------------------¦¦ ¦¦ begin ¦¦ ¦¦-------------------------------------------------------¦¦ ¦¦¦ Логика ¦¦¦ ¦¦L-------------------------------------------------------¦¦ ¦¦ end; ¦¦ ¦L---------------------------------------------------------¦ L----------------------------------------------------------- Рис. 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 или более) ¦¦¦ ¦¦L-------------------------------------------------------¦¦ ¦L---------------------------------------------------------¦ L----------------------------------------------------------- Рис. 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: ----------------------------------------------------------- ¦ Программа на Паскале ¦ ¦---------------------------------------------------------¦ ¦¦ Заголовок программы ¦¦ ¦L---------------------------------------------------------¦ ¦---------------------------------------------------------¦ ¦¦ Необязательные операторы uses ¦¦ ¦L---------------------------------------------------------¦ ¦---------------------------------------------------------¦ ¦¦ Основной блок программы ¦¦ ¦¦-------------------------------------------------------¦¦ ¦¦¦ Описания ¦¦¦ ¦¦L-------------------------------------------------------¦¦ ¦¦-------------------------------------------------------¦¦ ¦¦¦ Процедуры или функции (0 или более) ¦¦¦ ¦¦¦-----------------------------------------------------¦¦¦ ¦¦¦¦ Описания ¦¦¦¦ ¦¦¦L-----------------------------------------------------¦¦¦ ¦¦¦ begin ¦¦¦ ¦¦¦ -------------------------------------------------¦¦¦ ¦¦¦ ¦ Операторы (1 или более) ¦¦¦¦ ¦¦¦ L-------------------------------------------------¦¦¦ ¦¦¦ end; ¦¦¦ ¦¦L-------------------------------------------------------¦¦ ¦¦ begin ¦¦ ¦¦ -----------------------------------------------------¦¦ ¦¦ ¦ Операторы (1 или более) ¦¦¦ ¦¦ ¦---------------------------------------------------¦¦¦ ¦¦ ¦¦ Выражения (1 или более) ¦¦¦¦ ¦¦ ¦¦-------------------------------------------------¦¦¦¦ ¦¦ ¦¦¦ Лексемы (1 или более) ¦¦¦¦¦ ¦¦ ¦¦L-------------------------------------------------¦¦¦¦ ¦¦ ¦L---------------------------------------------------¦¦¦ ¦¦ L-----------------------------------------------------¦¦ ¦¦ end. ¦¦ ¦L---------------------------------------------------------¦ L----------------------------------------------------------- Рис. 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, ваша прог- рамма может получить доступ к нескольким подпрограммам операцион- ной системы и подпрограммам работы с файлами. Вы можете также писать свои собственные модули. Применяйте их для разделения больших программ на логические связанные фраг- менты. Программный код, который вы помещаете в модуль, может ис- пользоваться любой программой. Вам нужно написать исходный код только один раз, а затем вы сможете много раз его использовать.

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

----------------------------------------------------------------- При изучении глав 2 - 11, где определяется язык Borland Pascal, вы встретите синтаксические диаграммы, например: ---- --------------- ---- константа-массив --->¦ ( +---->¦типизированная+--T->¦ ) +--> L---- ^ ¦ константа ¦ ¦ L---- ¦ L--------------- ¦ ¦ ---- ¦ L------+ , ¦<--------- L---- Чтобы прочитать диаграмму, следуйте по стрелкам. Часто встречаются альтернативные пути: путь, начинающийся слева и за- канчивающийся стрелкой справа, является допустимым. Путь пересе- кает блоки, содержащие имена элементов, используемых для построе- ния этой части синтаксиса. Имена в прямоугольных рамках с текстом должны быть заменены действительными конструкциями. Некоторые рамки содержат зарезер- вированные слова, знаки операций и знаки пунктуации, то есть фак- тические термы, используемые в программе. Имена в блоках - это конструкции языка. Имена, написанные по-английски (например, procedure), представляю собой зарезервированные слова и операции Borland Pascal.

[ Оглавление | Далее ]










helloworld.ru © 2001-2021
Все права защищены