Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


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




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

 

UNIT Cmplx;

{————————————————————————}

INTERFACE

{————————————————————————}

type

complex = record

re,im: real

end

Procedure AddC (x,y: complex; var z: complex);

Procedure SubC (x, у: complex; var z: complex);

Procedure MulC (x, у: complex; var z: complex);

Procedure DivC (x, у: complex; var z: complex);

Const: complex = (re: 0.1: im:-1);

{————————————————————————}

IMPLEMENTATION

{————————————————————————}

Procedure AddC;

begin

z.re:= x.re - y.re;

z.im:= x.im + y.im

end; {AddC}

 

Procedure SubC;

begin

z.re:= x.re - y.re;

z.im:= x.im - y.im

end; {SubC}

 

Procedure MulC;

begin

z.re:= x.re * y.re - x.im * y.im;

z.im:= x.re * y.im + x.im * y.re

end; {MulC}

 

Procedure DivC: var zz: real;

begin

zz:= sgr(y.re) + sgr(y.im);

z.re:= (x.re * y.re + x.im * y.im) / zz;

z.im:= (x.re * y.im - x.im * y.re) / zz;

end {DivC}

end.

 

Текст этого модуля следует поместить в файл CMPLX.PAS. Вы можете его откомпилировать, создав TPU-файл, после чего программе станут доступны все процедуры из новой библиотеки. Например, в следующей программе приводится пример выполнения действий над комплексными числами.

Пример. 5.3.

 

Uses Cmplx;

Var f, b, с: complex;

Begin

a.re: = 1; a.im:= 1; b.re:= 1; b.im:= 2;

AddC (a, b, c);

WriteLn (‘Сложение: ‘, c.re:5:1, c.im:5:1,’i’);

SubC (a, b, c);

WriteLn (‘Вычитание: ‘, c.re:5:1, c.im:5:1,’i’);

MulC (a, b, c);

WriteLn (‘Умножение: ‘, c.re:5:1, c.im:5:1,’i’);

DivC (a, b, c);

WriteLn (‘Деление: ‘, c.re:5:1, c.im:5:1,’i’);

End.

 

После объявления Uses Cmplx программе стали доступны все объекты, объявленные в интерфейсной части модуля CMPLX. При необходимости можно переопределить любой из этих объектов, как это произошло, например, с объявленной в модуле типизированной константой С. Переопределение объекта означает, что вновь объявленный объект “закрывает” ранее определенный в модуле одноименный объект. Чтобы получить доступ к “закрытому” объекту, нужно воспользоваться составным именем: перед именем объекта поставить имя модуля и точку. Например, оператор

WriteLn(cmplx.c.re:5:1, cmplx.c.im:5:1,’i’);

выведет на экран содержимое “закрытой” типизированной константы из примера 5.3.

Стандартные модули

В Турбо Паскале имеются восемь стандартных модулей: SYSTEM, DOS, CRT, PRINTER, GRAPH, OVERLAY, TURBO3 и GRAPH3. Модули GRAPH, TURBO3 и GRAPH3 выделены в отдельные TPU-файлы, а остальные входят в состав библиотечного файла TURBO.TPL. Лишь один модуль SYSTEM подключается к любой программе автоматически, все остальные необходимо объявлять, указывая их за словом USES.

Рассмотрим кратко стандартные модули.

Модуль SYSTEM. В него входят все процедуры и функции стандартного Паскаля, а также встроенные процедуры и функции, которые не вошли в другие стандартные модули. Так как этот модуль подключается автоматически, то входящие в него процедуры и функции считаютсявстроенными в Турбо Паскаль. В частности, в модуль входят:

- все стандартные арифметические функции: Аbs, ArcTan, Cos, Sin, Exp, Frac, Int, Ln, Pi, Sqr, Sqrt;

- процедуры для величин порядкового типа: Dec (уменьшение переменной), Inc (увеличение переменной);

- функции для величин порядкового типа: Odd (проверка аргумента на нечетность), Pred (предшествующее значение аргумента),Succ (следующее значение аргумента);

- процедуры работы со строками: Delete (удаление подстроки из строки); Insert (помещение подстроки в строку); Str (преобразование числа в строковую переменную); Val (преобразование символьного представления числа в двоичное);

- функции работы со строками: Concat (объединение строк); Copy (выделение подстроки); Length (длина строки); Pos (поиск подстроки в строке);

- функции преобразования типов: Chr (получение символа по его коду); High (получение максимального значения величины); Low (получение минимального значения величины); Ord (порядковый номер величины перечисляемого типа); Round (округление вещественного числа до целого); Trunc (целая часть числа);

- функции управления вводом-выводом: Eof (конец файла); FileSize (текущий размер файла) и другие функции;

- процедуры управления вводом-выводом: Append (открытие файла для добавления в него информации); Assign (связь файловой переменной с внешним файлом); Close (закрытие файла); Read (чтение информации из файла); Write (запись информации в файл); Reset (открытие существующего файла) и другие функции;

- процедуры управления динамической памятью (6 функций);

- функции управления памятью (12 функций);

- функции управления программой: Break (досрочный выход из цикла); Continue (начало новой итерации цикла); Exit (выход из текущей программы); Halt (прекращение выполнения программы): RunError (прекращение выполнения программы с выдачей сообщения об ошибке);

- процедуры и функции разнообразного назначения: Random (случайное число); Randomize (инициализация генератора случайных чисел) и другие (11 функций);

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

Процедуры и функции модуля CRT:

- задание текстового режима TextMode;

- процедуры управления цветом: HighVideo (задание высокой яркости символов); LowVideo (задание малой яркости символов); NortVideo (задание исходной яркости символов); TextBackground (задание цвета фона); TextColor (задание цвета символов);

- процедуры работы с экраном: CIrEol (удаление символов от курсора до конца строки); CIrScr (очистка экрана); DelLine (удаление строки, в которой находится курсор); GotoXY (перемещение курсора в заданную позицию); InsLine (добавление пустой строки на экране); Window (задание размеров окна);

- функции работы с экраном: WhereX (текущая координата Х курсора); WhereY (текущая координата Y курсора);

- функции работы с клавиатурой: KeyPressed (проверка нажатия клавиши); ReadKey (чтение символа с клавиатуры);

- процедуры управления звуком: Sound (включение звука); NoSound (отключение звука);

- другие процедуры: Delay (задержка выполнения программы); AssignCrt (связь текстового файла с устройством CRT).

Модуль PRINTER. Позволяет управлять выводом информации на печатающие устройства. Модуль связывает файловую переменную LST типа TEXT с логическим устройством PRN. Выводить на печать информацию можно с помощью такой программы:

 

Program Primer;

Uses Printer;

Begin Writeln (LST, ‘Турбо Паскаль’) End.

Модуль GRAPH. Содержит обширный набор типов, констант, процедур и функций для управления графическим режимом работы экрана. С помощью подпрограмм, входящих в модуль, можно создавать разнообразные графические изображения. Специальные драйверы позволяют использовать широкий выбор шрифтов различного размера и стилей начертания. При работе в графическом режиме весь экран разбивается на отдельные “точки” - пиксели, которые можно закрасить в тот или иной цвет. Каждый пиксель имеет две координаты: Х и Y. Количество пикселей зависит от типа адаптера и режима его работы (от 320х200 до 1024х768). В модуле GRAF 81 процедура и функция.

Модуль DOS. В модуль входят 34 процедуры и функции, организующие доступ ко всем средствам дисковой операционной системы MS-DOS.

Модуль OVERLAY. Предназначен для использования при разработке больших программ с перекрытием. Использование программ с перекрытием снимает ограничение 580 кбайт основной памяти для программы на Турбо Паскале. Оверлейные программы перегружаются в оперативную память отдельными частями - секциями. Отдельные оверлейные части программы должны быть оформлены как отдельные модули, причем в них необходимо использовать ключ компилятора 0+. Кроме того, необходимо предусмотреть, чтобы при вызове оверлейных процедур и функций все активные в этот момент подпрограммы имели “дальнюю” адресацию (ключ компилятора {$F+}). Подключение оверлейных модулей к основной программе помимо стандартного использования раздела USES должно содержать ключ компилятора $O unitname с указанием имени оверлейного модуля.

Подробнее о стандартных модулях можно прочитать в рекомендованной литературе [4, с.570-590; 5, с.109-195], а также в специальных разделах документации и пособиях.



Файлы

Данные, обрабатываемые программой, могут находиться не только в оперативной памяти компьютера, но и располагаться на устройствах внешней памяти в файлах. Под файлом понимается либо именованная область внешней памяти ПК (жесткий диск, дискета, CD и т.д.), либо логическое устройство – потенциальный источник или приемник информации. Все, что является файлом в MS DOS, является физическим файлом в Турбо Паскале. Файл является некоторой структурой данных с однородными компонентами, число которых при описании файла жестко не фиксируется. Обращение к внешним устройствам из программы на Паскале дает возможность формировать большие объемы информации, корректировать информацию на всем протяжении времени ее существования, транспортировать данные в другие программы.





Поделиться с друзьями:


Дата добавления: 2016-11-18; Мы поможем в написании ваших работ!; просмотров: 1485 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Своим успехом я обязана тому, что никогда не оправдывалась и не принимала оправданий от других. © Флоренс Найтингейл
==> читать все изречения...

2378 - | 2186 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.