Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Turbo Pascal / Stud_1_1 / LecRus / MainPart.doc
Скачиваний:
117
Добавлен:
03.03.2016
Размер:
5.03 Mб
Скачать

Interface

Uses Crt;

Procedure Proc1;

Implementation

Procedure Proc1;

Begin

Writeln('Работает модуль Unit1');

End { Proc1 };

End.

{O+,F+}

Unit Unit2;

Interface

Uses Crt;

Procedure Proc2;

Implementation

Procedure Proc2;

Begin

Writeln('Работает модуль Unit2');

End { Proc2 };

End.

Так как при компиляции оверлейной программы создаются два файла - с расширением exe и с расширением ovr, то компиляция такой программы должна осуществляться на диск, а не в память.

Оверлейные модули не должны содержать секции инициализации (в том числе и пустые): при старте программы вначале выполняются секции инициализации всех модулей, что возможно лишь в случае нахождения этих модулей в памяти. Если это условие не выполнено, то после запуска программы происходит ее прерывание с выдачей сообщения "Runtime Error 208: Overlay manager not installed" (Не установлена подсистема управления оверлеями).

Использование сопроцессора

В сопроцессоре аппаратно реализуется выполнение операций с плавающей запятой, при его наличии в ПЭВМ можно значительно увеличить скорость вычислений и повысить их точность. Для использования сопроцессора программа в самом начале должна иметь директиву компилятора {$N+}:

Сопроцессор предоставляет возможность использовать дополнительные типы вещественных данных. Полный список вещественных типов:

Длина,

байт

Название типа

Количество

значащих цифр

Диапазон деся-

тичного порядка

4

6

8

10

8

Single

Real

Double

Extended

Comp

7 .. 8

11 .. 12

15 .. 16

19 .. 20

19 .. 20

-45 .. +38

-39 .. +38

-324 .. +308

-4951 .. +4932

-263 - 1 .. 263 - 1

Введем следующие обозначения для составных частей вещественных типов данных:

s - знак числа;

u - мантисса;

r - характеристика.

Тогда машинное представление вещественных типов имеет вид:

а) Тип single.

1

8

23

s r u

Здесь 1,8,23 - количество бит, отводимых соответственно для знака, характеристики и мантиссы числа.

б) Тип real.

1

39

8

s u r

в) Тип double.

1

11

52

s r u

г) Тип extended.

1

15

64

s r u

д) Тип comp.

1

63

s u

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

Тип real по структуре отличается от типов single, double, extended: в real мантисса находится перед характеристикой, в остальных типах - после характеристики.

Непосредственно в сопроцессоре операции выполняются только для типа extended. Остальные вещественные типы при обращении к сопроцессору преобразуются в тип extended, при получении результата от сопроцессора производится обратное преобразование. Преобразования для типов single и double выполняются просто, так как последовательность составных частей числа здесь одинакова. Для типа real необходимо переставить местами мантиссу и характеристику, что требует дополнительного машинного времени.

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

Для включения режима эмуляции перед заголовком основной программы нужно поставить директиву компилятора {$E+}.

Директива {$N+, E+} означает, что программа работает с сопроцессором, если он имеется, и в режиме эмуляции при его отсутствии. Наличие в машине сопроцессора определяется автоматически.

Следует отметить, что тип real оптимизирован для работы без сопроцессора. При наличии сопроцессора дополнительное машинное время, затрачиваемое на перестановку мантиссы и порядка числа, сводит на нет преимущества сопроцессора; при этом время выполнения операций для типа real может в 2-3 раза превышать время выполнения операций для других вещественных типов. Поэтому при использовании сопроцессора, а современные компьютеры практически всегда обеспечивают аппаратную обработку чисел с плавающей запятой, рекомендуется применять лишь типы single, double, extended .

Если в разработанной программе везде объявлен тип real, то для перехода, например, к типу double достаточно в начале программы установить глобальное объявление

Type real = double .

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

Если для вычисления в сопроцессоре длинного выражения требуется запомнить свыше восьми промежуточных результатов, то возникает переполнение его стека. Такая же ситуация имеет место, когда при обращении к процедуре или функции требуется передать свыше восьми параметров-значений (без слова Var) типов single, double, extended или comp. При переполнении стека сопроцессора сообщение об ошибке не генерируется, но результат вычислений будет неправильным. Для исключения такой ситуации длинные арифметические выражения следует разделить на части, а в заголовках соответствующих процедур или функций часть параметров-значений преобразовать в параметры-переменные или параметры-константы, добавив к ним соответственно слово Var или слово Const.

Л И Т Е Р А Т У Р А

  1. Джонс Ж., Харроу К. Решение задач в системе Турбо Паскаль. М.: Финансы и статистика, 1991. - 720 c.

  2. Поляков Д.Б., Круглов И.Ю. Программирование в среде Турбо Паскаль. М.: Изд-во МАИ, 1992. - 576 c.

  3. Немнюгин С.А. Turbo Pascal. – СПб: «Питер», 2001. – 496 с.

  4. Немнюгин С.А. Turbo Pascal: практикум. – СПб: «Питер», 2001. – 256 с.

  5. Турбо Паскаль 7.0. - К.: Изд.группа BHV, 1996. - 448 c.

  6. Фаронов В.В. Турбо Паскаль 7.0. Начальный курс. Учебное пособие. - М.: "Нолидж", 1997. - 616 c.

  7. Фаронов В.В. Турбо Паскаль 7.0. Практика программирования. - М.: "Нолидж", 1997. - 432 c.

  8. Марченко А.И., Марченко Л.А. Программирование в среде Turbo Pascal 7.0. - К.: ВЕК+, М.: Бином Универсал, 1998. - 496 с.

  9. Милов А.В. Основы программирования в задачах и примерах. – Харьков: Фолио, 2002. – 397 с.

  10. Программирование на языке Паскаль: задачник / под ред. Усковой О.Ф. – СПб.: Питер, 2003. – 336 с.

  11. Ускова О.Ф. и др. Программирование алгоритмов обработки данных. – СПб.: БХВ-Петербург, 2003. – 192 с.

  12. Вирт Н. Алгоритмы и структуры данных. – М.: мир, 1989. – 360 с.

  13. Фигурнов В.Э. IBM PC для пользователя. - M.: Финансы и статистика, 1994. - 368 c.

  14. Богумирский Б. Эффективная работа на IBM PC. - СПб: Питер, 1995. - 688 c.

262

Соседние файлы в папке LecRus