Основы программирования в паскале

Автор работы: Пользователь скрыл имя, 16 Сентября 2009 в 13:41, Не определен

Описание работы

Учебник по программированию

Файлы: 16 файлов

Pascal процедуры и функции.doc

— 181.00 Кб (Просмотреть файл, Скачать файл)

Pascal динамические структуры данных.doc

— 147.00 Кб (Просмотреть файл, Скачать файл)

Pascal и графика.DOC

— 116.50 Кб (Просмотреть файл, Скачать файл)

Program Graph.doc

— 19.00 Кб (Просмотреть файл, Скачать файл)

Unit GraphApp.doc

— 21.50 Кб (Просмотреть файл, Скачать файл)

Unit GraphObj.doc

— 21.50 Кб (Просмотреть файл, Скачать файл)

Краткие основы Паскаля.doc

— 217.00 Кб (Просмотреть файл, Скачать файл)

Общие понятия программирования.doc

— 80.00 Кб (Просмотреть файл, Скачать файл)

Основные принципы ООП.doc

— 151.00 Кб (Просмотреть файл, Скачать файл)

Основы разработки программ.doc

— 148.00 Кб (Просмотреть файл, Скачать файл)

Паскаль на 5-КУ 85 листов.doc

— 651.50 Кб (Скачать файл)

Модуль CRT.doc

— 30.00 Кб (Просмотреть файл, Скачать файл)

Модуль Graph.doc

— 77.50 Кб (Просмотреть файл, Скачать файл)

Структура модуля.doc

— 38.00 Кб (Скачать файл)

Структура модуля. 

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

     Все объявления   и   описания   модуля  становятся  доступными

программе, использующей его.

     Структура модуля  похожа  на  структуру  программы,  но имеет и

отличия: 

     unit <идентификатор>;

     interface

     uses <список модулей>;

     {общие  объявления}

     implementation

     uses <список модулей>;

     {личные  объявления} 

     {реализация  процедур и функций}

     begin

     {код  инициализации}

     end. 

     Заголовок модуля  -  слово  unit,  за  которым   следует   имя модуля -    идентификатор.

     Следующий    элемент    -    ключевое слово interface.  Это  слово  обозначает начало раздела  интерфейса модуля, доступного для всех других модулей и программ, использующих этот модуль.

     В предложении uses указываются модули,  которые может использовать этот модуль. 

     Слово uses может появляться в двух местах:

     - сразу же после слова interface; в этом случае, константы или типы данных,  объявленные в интерфейсах этих  модулей,  могут  быть использованы в  любых  объявлениях.

     - сразу   же   после  слова  implementation;  в этом  случае, любые объявления этого модуля могут  использоваться  только  внутри раздела реализации.  Это  так  же  допускает   циклические   ссылки модулей; мы покажем как их использовать ниже. 

Раздел  интерфейса. 

     Это "открытая" часть модуля,  она  начинается  ключевым словом interface,  следующим  сразу  за заголовком,  и ограничена ключевым словом imрlеmentation.

     Интерфейс определяет,  что является видимым (доступным)   для   некоторой   программы   (или  других  модулей), использующих  этот  модуль.

       Любая  программа,  использующая   этот модуль, имеет доступ к этим видимым элементам.

     В интерфейсе модуля можно  объявить  константы,  типы  данных,

переменные, процедуры  и функции.  Как и в программе, они могут быть

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

(type...var...<proc>...type...const...var) 

     Процедуры и функции,  доступные  для  программы,  использующей

этот модуль  описываются в разделе интерфейса.  А их действительные

тела  -  операторы,  реализующие  их,  -  в   разделе   реализации.

     Объявление forward  не  разрешается.

     Тела  всех обычных процедур и функций  находятся в разделе реализации после раздела  интерфейса, в котором  перечислены их имена и заголовки.  uses может появиться и в разделе implementation. Если в разделе реализации имеет место uses, то это слово следует сразу же за словом implementation. 

Секция реализации. 

     Раздел  реализации - закрытая,  недоступная  часть -  начинается со слова  implementation.  Все,  что объявлено в части интерфейса видимо  для раздела реализации:  константы,   типы,   переменные, процедуры и функции.  Кроме того,  в разделе реализации могут быть свои собственные дополнительные объявления, недоступные программам, использующим этот модуль.

     Программы не могут обращаться и ссылаться  на них.  Однако эти недоступные элементы могут  использоваться  (и, как правило,   это  делается)  видимыми  процедурами  и  функциями, заголовки которых появляются в разделе интерфейса.

     Предложение uses  может появляться в разделе implementation. В

этом случае  uses  следует  непосредственно  за   ключевым   словом

implementation.

     Если  процедуры были объявлены как  внешние, то в исходном файле

должна быть директива {$L имя файла} в любом  месте до  конца модуля

end. Обычные процедуры  и функции,  объявленные в разделе  интерфейса

- которые   не  являются  встроенными  - должны  появляться в разделе

реализации.

     Заголовок procedure  (function)  в  разделе  реализации должен быть  такой  же,  как  и в разделе интерфейса,  или  же иметь короткую форму.  В краткой  форме за ключевым словом (procedure  или function) следует  идентификатор (имя).  Подпрограмма содержит свои собственные   локальные   объявления   (метки,   константы,   типы, переменые,  процедуры  и  фукции).  За  ними  следует  тело главной программы. 

     Например, в разделе интерфейса объявлены: 

procedure  ISwap (var v1,v2: integer);

function   IMax  (v1,V2:integer); 

     Раздел  реализации может быть: 

procedure  ISwap;

var

Temp : integer;

begin

Temp := V1;V1:= V2;V2 := Temp;

end;  {процедуры  ISwap} 

function IMax (v1,v2:integer):integer;

begin

if V1 > V2 then

IMax := V1

else IMax := V2

end;  {функции IMax} 

     Подпрограммы  раздела    реализации   (неописанные   в   секции интерфейса), должны иметь полный заголовок procedure/funсtion. 
 

Раздел инициализации. 

Раздел реализации модуля заключен между словами implementation и end.  Но если присутствует слово begin  перед  end,  и  операторы между этими словами, то получившийся составной оператор, похожий на тело главной программы, становится разделом инициализации модуля.

     В разделе  инициализации инициализируются  структуры данных (переменных),  используемые  модулем  или   доступные   программам, использующим этот  модуль.  Вы  можете использовать этот раздел для открытия файлов.  Например,  стандартный модуль Printer  использует этот раздел  для  открытия на вывод текстового файла Lst.  Файл Lst впоследствии можно использовать в программах,  в  операторах  Write или Writeln.

При выполнении  программы,  использующей   некоторый   модуль, раздел инициализации  вызывается  перед  выполнением  тела  главной программы. Если в программе используется несколько  модулей, раздел инициализации каждого  модуля  вызывается  (в порядке,  указанном в операторе uses программы) до выполнения тела главной программы. 
 

Как используются модули?

     Модули, которые использует Ваша программа, уже откомпилированы

и хранятся в  специальном машинном коде;  это  не файлы типа Include.

Даже  раздел  интерфейса  хранится  в специальном  двоичном формате, который использует Turbo Pascal.  Более  того,  стандартные  модули хранятся  в специальном файле TURBO.TPL и автоматически загружаются в память с Turbo Pascal.

     В результате  подключения  модулей  к  программе увеличивается

время и компиляции программы (незначительно,  приблизительно  на  1 секунду). Если  модули  загружаются  из  отдельных  дисковых файлов может потребоваться дополнительное время из-за чтения с диска.

Для использования   модулей   необходимо,   чтобы   в   начале присутствовало предложение uses,  за которым  следует  список  имен всех модулей, разделенных запятыми. 

program  MyProg;

uses  thisUnit,thatUnit,theotherUnit; 

     При компиляции этой информации к таблице  символов прибавляется

информации из  раздела интерфейса,  а из раздела  реализации к самой программе машинный код. Порядок описания модулей в предложении uses не имеет большого значения.  Если thisUnit использует thatUnit,  то можно объявить  их  в  любом  порядке.  Компилятор  сам  определит, который из них должен следовать первым.

     Иначе говоря,  если thisUnit использует thatUnit,  а программа MyProg не вызывает какие-либо программы в подпрограмме thatUnit, то можно "спрятать"подпрограммы в программу  thatUnit,  опуская  их  в операторе uses: 

unit   thisUnit

uses   thatUnit

...

program   MyProg;

uses   thisUnit,theotherUnit;

... 

     В этом примере thisUnit может вызвать подпрограмму thatUnit, а MyProg -  подпрограммы  thisUnit  и thеоtherUnit.  MyProg не может вызвать thatUnit, т.к эта подпрограмма не описана в его предложении uses.

     Если  предложение uses отсутствует,  Turbo  Pascal  подсоединяет стандартный  модуль  System.  Этот  модуль  обеспечивает выполнение некоторых стандартных  подпрограмм   Turbo   Pascal   и   программ, специфичных для Turbo Pascal.

Практичесое занятие по работе с модулем граф.doc

— 52.00 Кб (Просмотреть файл, Скачать файл)

Целочисленная арифметика TURBO PASCAL.doc

— 92.00 Кб (Просмотреть файл, Скачать файл)

Информация о работе Основы программирования в паскале