Смекни!
smekni.com

Модули и объекты в языке Турбо Паскаль 7.0 (стр. 1 из 5)

Министерство образования Российской Федерации

Таможенный колледж

Оренбургский Государственный Аграрный Университет

Бузулукское представительство

КУРСОВАЯ РАБОТА

по дисциплине "Основы алгоритмов и программирования"

Модули и объекты в языке Турбо Паскаль 7.0

Руководитель работы

________________Симонова С.В.

"______"________________2002г.

Исполнитель

Студент гр. 34 АСОИ и У

______________Кислинский С.В.

"______"________________2002г.

Бузулук 2002

Содержание

Введение….............................................................................................стр. 3

1 Модули…………………………………………………...……..........стр. 4

1.1 Структура модулей………………………………………...........стр. 6

1.2 Заголовок модулей и связь модулей друг с другом……….…стр. 8

1.3 Интерфейсная часть……………………………………………стр. 9

1.4 Исполняемая часть………………………………………...…...стр. 10

1.5 Инициирующая часть………………………....…………...…стр. 11

1.6 Компиляция модулей………………………………….......…стр. 12

1.7 Доступ к объявленным в модуле объектам……………..........стр. 14

1.8 Стандартные модули…………………………………………стр. 15

2 Объекты……………………………………………………………..стр. 17

2.1 Основные принципы ООП……………………………………стр. 19

2.2 Инкапсуляция………………………………………………….стр. 20

2.3 Наследование…………………………………………………стр. 22

2.4 Полиморфизм…...……………………………………………стр. 24

Заключение……………………………………………………………стр. 26

Список используемых источников…………………………………..стр. 27

Приложение А………………………………………………………...стр. 28


Введение

В 1992 году фирма Borland International выпустила два пакета программирования на использовании языка Паскаль, - Borland Pascal 7.0 и Turbo Pascal 7.0.

Пакет Borland Pascal 7.0 учитывает многие новейшие достижения в программировании и практике создания программ и включает в себя три режима работы: в обычном режиме операционной системы MS DOS, в защищенном режиме MS DOS и в среде Windows. Обладая расширенными возможностями, пакет Borland Pascal 7.0 тем не менее требует для использования всех своих возможностей довольно большую память – примерно 30 Мбайт на жестком диске и не менее 2 Мбайт оперативной памяти.

Пакет Turbo Pascal 7.0 обладает ограниченными возможностями и позволяет работать только в обычном режиме MS DOS. Начинающему программисту, по-видимому, целесообразно начать изучение языка и среды именно с этого пакета.

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

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

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

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

Паскаль – гибкий и развитый в отношении типов данных язык. Привлекательны его рекурсивные возможности, а также поддержка технологии объектно-ориентрованного программирования.


1 Модули

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

Наличие модулей в Turbo Pascal позволяет программировать и отлаживать программу по частям, создавать библиотеки подпрограмм и данных, воспользоваться возможностями стандартных модулей, практически неограниченно увеличивать кодовую (содержащую коды команд) часть программы.

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

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

Доступ к описаниям, функциям и процедурам модуля обеспечивает оператор использования Uses, в котором указывается имя модуля. Этот оператор размещается в разделе описаний программы, сразу после заголовка. Если в программе используется не один модуль, а несколько, необходимо указать имена всех модулей, перечислив их через запятую. Исключением является модуль System, ссылка на который необязательна. Этот модуль содержит, в частности, процедуры файлового ввода/вывода, процедуры и функции для работы со строками и некоторые другие.

Модуль начинается заголовком

unit unit_name;

где unit_name – имя модуля, которое выбирается в соответствии с правилами Паскаля. Файл, содержащий модуль, обязан иметь то же имя, что и модуль.

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

{$N+}

unit hyp_fun;

interface

type

Float = Extended;

function sinh(x: Float): Float;

function cosh(x: Float): Float;

function tanh(x: float): Float;

implementation

var

t: Float;

function sinh(x: Float): Float;

begin

t := Exp(x);

sinh := 0.5*(t – 1.0/t);

end;

function cosh(x: Float): Float;

begin

t := Exp(x);

cosh := 0.5*(t + 1.0/t);

end;

function tanh(x: Float): Float;

begin

t := Exp(2.0*x);

tanh := (t – 1.0) / (t + 1.0);

end;

end.

Зарезервированные слова interface и implementation здесь играют важную роль. Каждый модуль имеет части (секции), озаглавленные этими словами. Секция interface (она называется интерфейсной секцией) содержит описания констант, типов, переменных и процедур, доступных из вызывающей программы или модуля. Секция implementation (секция реализации) содержит исходный код программы. Она может также содержать локальные описания, такие как var t: Real; из нашего примера.

Каждый модуль начинается с зарезервированного слова unit и заканчивается словом end, за котором следует точка. Для этого end не требуется соответствующего слова begin, хотя можно и поставить его непосредственно перед end. Оператор type в начале нашего модуля определяет тип Float, который в данном случае эквивалентен типу Extended. Указав, справа от знака равенства любой другой эквивалентный тип, можно изменить точность вычисления гиперболических функций.

1.1 Структура модулей

Модуль имеет следующую структуру:

Unit module_name

Interface

Интерфейсная секция

Implementation

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

Секция инициализации

Рис. 1. Структура модуля

Здесь Unit - зарезервированное слово (единица), начинает заголовок модуля; name - имя модуля (правильный идентификатор). Interface – интерфейсная секция – содержит те описания типов, переменных и других объектов данных, которые можно использовать в других программах или модулях. Секция реализации начинается с зарезервированного слова implementation. Все описания, содержащиеся в секции реализации, являются локальными, их область действия – данный модуль. Здесь же содержаться полные описания функций и процедур модуля. Последняя часть модуля – секция инициализации. Она может быть пустой и содержать только зарезервированное слово end или включать в себя исполняемые операторы, выполняющие необходимые действия по инициализации (например, по присваиванию начальных значений переменным) модуля.

В качестве примера рассмотрим модуль func1 /см. приложение А/, расширяющий вычислительные возможности Турбо Паскаля, так как он содержит функции, отсутствующие в стандартных модулях системы. Среди «стандартных» функций – синус (Sin), косинус (Cos), арктангенс (ArcTan), экспонента (Exp), натуральный логарифм (Ln), квадрат числа (Sqr) и квадратный корень из него (Sqrt). В модуле func1 имеются тангенс (Tan), арксинус (ArcSin) и арккосинус (ArcCos), функции перевода градусной меры в радианную и наоборот (Degrees_to_Radians, Radians_to_Degrees), набор гиперболических функций (Sinh, Cosh, Tanh), а также десятичный логарифм (Log10) и произвольная степень числа (Power).

Напомню математическое определение гиперболических функций:

В нашем примере интерфейсная секция содержит описания вещественного типа float, а также константу Infinity – «бесконечно большое значение». Бесконечность здесь понимается, разумеется, в смысл машинной арифметики, как значение, близкое к максимально допустимому для типа Extended. Далее следуют заголовки функций модуля.