пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

pogromirovanie:
» sooqa
Уася:
» History motherfuckers

Модульное программирование. Структура модуля. Использование модулей. Пример с интерфейсной и реализующей частью.

Модуль - это подключаемая к программе библиотека ресурсов. Он может содержать описания типов, констант, переменных и подпрограмм. В модуль обычно объединяют связанные между собой ресурсы: например, в составе оболочки есть модуль Graph для работы с экраном в графическом режиме. 
Модули применяются либо как библиотеки, которые могут использоваться различными программами, либо для разбиения сложной программы на составные части. 
Использование модулей позволяет преодолеть ограничение в один сегмент на объем кода исполняемой программы, поскольку код каждого подключаемого к программе модуля содержится в отдельном сегменте. 
Модули можно разделить на стандартные, которые входят в состав системы программирования, и пользовательские, то есть создаваемые программистом. Чтобы подключить модуль к программе, его требуется предварительно скомпилировать. Результат компиляции каждого модуля хранится на диске в отдельном файле с расширением .tpu. 

Описание модулей

Исходный текст каждого модуля хранится в отдельном файле с расширением .pas. Общая структура модуля: 
unit имя; { заголовок модуля }

interface { интерфейсная секция модуля }
{ описание глобальных
элементов модуля
(видимых извне) }
implementation { секция реализации модуля }
{ описание локальных
(внутренних) элементов
модуля }
begin { секция инициализации }
{ может отсутствовать }
end.
ВНИМАНИЕ Имя файла, в котором хранится модуль, должно совпадать с именем, заданным после ключевого слова unit. 
Модуль может использовать другие модули, для этого их надо перечислить в операторе uses, который может находиться только непосредственно после ключевых слов interface или implementation. 
В интерфейсной секции модуля определяют константы, типы данных, переменные, а также заголовки процедур и функций. 
В секции реализации описываются подпрограммы, заголовки которых приведены в интерфейсной части. Заголовок подпрограммы должен быть или идентичным указанному в секции интерфейса, или состоять только из ключевого слова procedure или function и имени подпрограммы. Для функции также указывается ее тип. 
Кроме того, в этой секции можно определять константы, типы данных, переменные и внутренние подпрограммы. 
Секция инициализации предназначена для присваивания начальных значений переменным, которые используются в модуле. Операторы, расположенные в секции инициализации модуля, выполняются перед операторами основной программы. 
Для сохранения скомпилированного модуля на диске требуется установить значение пункта Destination меню Compile в значение Disk. Компилятор создаст файл с расширением .tpu. 

^ Пример описания модуля. Оформим в виде модуля подпрограмму вычисления среднего арифметического значения элементов массива, приведенную на с. ???$Rp. 
unit Average;
interface
const n = 10;
type mas = array[1 .. n] of real;
procedure average(x : mas; var av : real);
implementation
procedure average(x : mas; var av : real);
var i : integer;
begin
av := 0;
for i := 1 to n do av := av + x[i];
av := av / n;
end;
end.

Использование модулей

Для использования в программе величин, описанных в интерфейсной части модуля, имя модуля указывается в разделе uses. Можно записать несколько имен модулей через запятую, например: 
program example;
uses Average, Graph, Crt;
...

Поиск модулей выполняется сначала в библиотеке исполняющей системы, затем в текущем каталоге, а после этого - в каталогах, заданных в диалоговом окне Options/Directories. 
Если в программе описана величина с тем же именем, что и в модуле, для обращения к величине из модуля требуется перед ее именем указать через точку имя модуля. 
Стандартные модули Паскаля
В Паскале имеется ряд стандартных модулей, в которых описано большое количество встроенных констант, типов, переменных и подпрограмм. Каждый модуль содержит связанные между собой ресурсы. 
Модуль System

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

Модуль Crt

Модуль предназначен для организации эффективной работы с экраном, клавиатурой и встроенным динамиком. При подключении модуля Crt выводимая информация посылается в базовую систему ввода-вывода (ВIОS) или непосредственно в видеопамять. 
В текстовом режиме экран представляется как совокупность строк и столбцов. Каждый символ располагается на так называемом знакоместе на пересечении строки и столбца. Символы хранятся в специальной части оперативной памяти, называемой видеопамятью. Ее содержимое отображается на экране. 
Под каждый символ отводится два байта: один байт занимает ASCII-код символа, другой байт хранит атрибуты символа: его цвет, цвет фона и признак мерцания (рис. 1). Можно получить восемь различных цветов фона и 16 цветов символов. 
Модуль Crt позволяет: 

  • выполнять вывод в заданное место экрана заданным цветом символа и фона;
  • открывать на экране окна прямоугольной формы и выполнять вывод в пределах этих окон;
  • очищать экран, окно, строку и ее часть;
  • обрабатывать ввод с клавиатуры;
  • управлять встроенным динамиком.

27.01.2014; 07:34
хиты: 194
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь