Основные идеи объектно-ориентированного программирования в Turbo-Pascal и способы их использования

Turbo Pascal и объектно-ориентированное программирование. Основные принципы ООП: инкапсуляция, наследование и полиморфизм. Создание объектов в Turbo-Pascal при помощи зарезервированных слов object, constructor, destructor, private, public и virtual.

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 28.04.2011
Размер файла 20,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Введение

Язык Turbo-Pascal - один из самых распространенных языков программирования компьютеров. К важным достоинствам языка Turbo-Pascal относится небольшой размер компилятора, высокая скорость трансляции программ, компиляции и их компоновки. Кроме того, удобство и высокое качество дизайна диалоговой оболочки, делают написание и отладку программ наиболее удобным в сравнении с альтернативными языками нового поколения. Эта программа позволяет любому пользователю (с любым уровнем компьютерной грамотности ) производить необходимые расчеты с высокой скоростью и достаточным уровнем сервиса. Программный продукт, написан на современном языке Turbo-Pascal представляет собой программу, построенную на основе команд, задаваемых пользователем программе. В ходе выполнения программирования практически любой пользователь приемами в силах ознакомиться со всеми функциями и особенностями языка Turbo-Pascal, что и позволит пользователю разработать любой программный продукт.

1. Turbo Pascal и объектно-ориентированное программирование

В основе того или иного языка программирования лежит некоторая руководящая идея, оказывающая существенное влияние на стиль соответствующих программ. Исторически первой была идея структурирования программ, в соответствии с которой программист должен был решить, какие именно процедуры он будет использовать в своей программе, а затем выбрать наилучшие алгоритмы для реализации этих процедур. Появление этой идеи было следствием недостаточной изученности алгоритмической стороны вычислительных процессов, столь характерной для ранних программных разработок (сороковые -- пятидесятые годы). Типичным примером процедурно-ориентированного языка является Фортран - первый и всё ещё один из наиболее популярных языков программирования. Последовательное использование идеи процедурного структурирования программ привело к созданию обширных библиотек программирования, содержащих множество сравнительно небольших процедур, из которых, как из кирпичиков, можно строить «здание» программы. По мере прогресса в области вычислительной математики акцент в программировании стал смещаться с процедур в сторону организации данных. Оказалось, что эффективная разработка сложных программ нуждается в действенных способах контроля правильности использования данных. Контроль должен осуществляться как на стадии компиляции, так и при прогоне программ, в противном случае, как показала практика, резко возрастают трудности создания крупных программных проектов. Отчётливое осознание этой проблемы привело к созданию Ангола-60, а позже Паскаля, Модулы-2, Си и множества других языков программирования, имеющих более или менее развитые структуры типов данных. Логическим следствием развития этого направления стал модульный подход к разработке программ, характеризующийся стремлением «спрятать» данные и процедуры внутри модуля. Начиная с языка Симула-67, в программировании наметился новый подход, который получил название объектно-ориентированного программирования (в дальнейшем ООП). Его руководящая идея заключается в стремлении связать данные с обрабатывающими эти данные процедурами в единое целое - объект. Характерной чертой объектов является инкапсуляция (объединение) данных и алгоритмов их обработки, в результате чего и данные, и процедуры во многом теряют самостоятельное значение. Фактически ООП можно рассматривать как модульное программирование нового уровня, когда вместо во многом случайного, механического объединения процедур и данных акцент делается на их смысловую связь. Какими мощными средствами располагает ООП наглядно демонстрирует библиотека Turbo Vision, входящая в комплект поставки Турбо Паскаля.

2. Основные принципы ООП в Turbo-Pascal

Объектно-ориентированное программирование в Turbo-Pascal основано на «трёх китах» - трёх важнейших принципах, придающих объектам новые свойства. Этими принципами являются инкапсуляция, наследование и полиморфизм. Инкапсуляция есть объединение в единое целое данных и алгоритмов обработки этих данных. В рамках ООП данные называются полями объекта, а алгоритмы - объектными методами. Инкапсуляция позволяет в максимальной степени изолировать объект от внешнего окружения. Она существенно повышает надёжность разрабатываемых программ, т.к. локализованные в объекте алгоритмы обмениваются с программой сравнительно небольшими объёмами данных, причём количество и тип этих данных обычно тщательно контролируется. В результате замена или модификация алгоритмов и данных, инкапсулированных в объект, как правило, не влечёт за собой плохо прослеживаемых последствий для программы в целом (в целях повышения защищённости прграмм в ООП почти не используются глобальные переменные). Другим немаловажным следствием инкапсуляции является лёгкость обмена объектами, переноса их из одной программы в другую. Можно сказать, что ООП «провоцирует» разработку библиотек объектов, таких как Turbo Vision. Наследование есть свойство объектов порождать своих потомков. Объект-потомок автоматически наследует от родителя все поля и методы, может дополнять объекты новыми полями и заменять (перекрывать) методы родителя или дополнять их. Принцип наследования решает проблему модификации свойств объекта и придаёт ООП в целом исключительную гибкость. При работе с объектами программист обычно подбирает объект, наиболее близкий по своим свойствам для решения конкретной задачи, и создаёт одного или нескольких потомков от него, которые «умеют» делать то, что не реализовано в родителе. Последовательное проведение в жизнь принципа «наследуй и изменяй» хорошо согласуется с поэтапным подходом к разработке крупных програмных проектов и во многом стимулирует такой подход. Полиморфизм - это свойство родственных объектов (т.е. объектов, имеющих одного общего родителя) решать схожие по смыслу проблемы разными способами. В рамках ООП поведенческие свойства объекта определяются набором вхожящих в него методов. Изменяя алгоритм того или иного метода в потомках объекта, программист может придавать этим потомкам отсутствующие у родителя специфические свойства. Для изменения метода необходимо перекрыть его в потомке, т.е. объявить в потомке одноимённый метод и реализовать в нём нужные действия. В результате в объекте-родителе и объекте-потомке будут действовать два одноимённых метода, имеющие разную алгоритмическую основу и, следовательно, придающие объектам разные свойства. Это и называется полиморфизмом объектов. В Турбо Паскале полиморфизм достигается не только описанным выше механизмом наследования и перекрытия методов родителя, но и их виртуализацией, позволяющей родительским методам обращаться к методам потомков.

3. Создание объектов в Turbo-Pascal

В Турбо Паскале для создания объектов используется три зарезервированных слова: object, constructor, destructor и три стандартные директивы: private, public и virtual. Зарезервированное слово object используется для описания объекта. Описание объекта должно помещаться в разделе описания типов:

type

MyObject = object

{поля объекта}

{методы объекта}

end;

Если объект порождается от какого-либо родителя, имя родителя указывается в круглых скобках сразу за словом object:

type

MyDescendantObject = object (MyObject)

............................................................

............................................................

end;

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

type

TGraphObj = object

Private {поля объекта будут скрыты от пользователя}

X,Y: Integer; {координаты реперной точки}

Color: Word; {цвет фигуры}

Public

Constructor Init (aX, aY: Integer; aColor: Word);

{создаёт экзепляр объекта}

Procedure Draw (aColor: Word); Virtual;

{вычерчивает объект заданным цветом aColor}

Procedure Show;

{показывает объект - вычерчивает его цветом Color}

Procedure Hide;

{прячет объект - вычерчивает его цветом фона}

Procedure MoveTo (dX, dY: Integer);

{перемещает объект в точку с координатами X+dX и Y+dY}

end; {конец описания объекта TGraphObj}

объектный ориентированный программирование pascal

В операторе if часть, начинающаяся словом else, может отсутствовать. Часть, следующая за словом then, выполняется, если логическое условие, стоящее после слова if, имеет значение true. Если это логическое выражение имеет значение false, непосредственно выполняется оператор, следующий за if. В новом объекте TРoint можно использовать любые методы объекта-родителя TGraphObj. Например, вызвать метод MoveTo, чтобы переместить изображение точки на новое место. В этом случае родительский метод TGraphObj.MoveTo будет обращаться к методу TPoint.Draw, чтобы спрятать и затем показать изображение точки. Такой вызов станет доступен после обращения к конструктору Init объекта TРoint, который нужным образом настроит ТВМ объекта. Если вызвать TPoint.Draw до вызова Init, его ТВМ не будет содержать правильного адреса и программа “зависнет”. Чтобы создать объект-линию, необходимо ввести два новых поля для хранения координат другого конца. Дополнительные поля требуется наполнить конкретными значениями, поэтому нужно перекрыть конструктор родительского объекта:

type

TLine = object (TGraphObj)

dX, dY: Integer; {Приращение координат второго конца}

Constructor Init (X1, Y1, X2, Y2: Integer; aColor: Word); Virtual;

end;

Constructor TLine.Init;

{Вызывает унаследованный конструктор TGraphObj для инициации полей

X, Y, Color. Затем инициирует поля dX, dY}

begin

{Вызываем унаследованный конструктор}

Inherited Init (X1, Y1, aColor);

{Инициируем поля dX, dY}

dX:= X2-X1;

dY:= Y2-Y1

end;

Procedure Draw;

begin

SetColor (Color); {Устанавливаем цвет Color}

Line (X, Y, X+dX, Y+dY) {Вычерчиваем линию}

end;

В конструкторе TLine.Init для инициации полей X, Y, Color, унаследованных от родительского объекта, вызывается унаследованный конструктор TGraph.Init, для чего используется зарезервированное слово inherited (англ. -- унаследованный):

Inherited Init (X1, Y1, aColor);

C таким же успехом мы могли бы использовать и составное имя метода:

TGraphObj.Init (X1, Y1, aColor);

Для инициации полей dX и dY вычисляется расстояние в пикселах по горизонтали и вертикали от первого конца прямой до её второго конца. Это позволяет в методе TLine.Draw вычислить координаты второго конца по координатам первого и смещениям dX, dY. В результате простое изменение координат реперной точки X,Y в родительском методе TGraph.MoveTo перемещает всю фигуру по экрану.

Заключение

В этом реферате рассмотрены основные идеи ООП в Turbo-Pascal и способы их использования. Следует заметить, что преимущества ООП в полной мере проявляются лишь при разработке достаточно сложных программ. Более того, инкапсуляция придаёт объектам совершенно новое свойство «самостоятельности», максимальной независимости от остальных частей программы. Правильно сконструированный объект располагает всеми необходимыми данными и процедурами их обработки, чтобы успешно реализовать требуемые от него действия. Попытки использовать ООП для программирования несложных алгоритмов, связанных, например, с расчетными вычислениями по готовым формулам, чаще всего выглядят искусственными нагромождениями ненужных языковых конструкций. Такие программы обычно не нуждаются в структуризации, расчленении алгоритма на ряд относительно независимых частей, их проще и естественнее разрабатывать традиционными способами Паскаля. При разработке сложных диалоговых программ программист вынужден структурировать программу, так как только в этом случае он может рассчитывать на успех: «критической массой» неструктурированных программ является объём в 1000-1200 строк исходного текста - отладка неструктурированных программ большего объёма обычно сталкивается с чрезмерными трудностями. Структурирование программы ведёт, фактически, к разработке собственной библиотеки программирования - вот в этот момент на помощь приходят новые средства ООП.

Список использованной литературы

Блашкин И.И., Буров А.А. Новые возможности Turbo-Pascal 6.0. -- Спб.: Изд-во “Макет”, 1992.

Бородич Ю.С. и др. Паскаль для персональных компьютеров: Справ. пособие/ Ю.С.Бородич, А.Н.Вальвачев, А.И.Кузьмич. -- Мн.: Выш. шк.: БФ ГИТМП “НИКА”, 1991.

ВасильевП.П. Турбо Паскаль -- мой друг: М.: Компьютер, ЮНИТИ, 1995.

Джордейн Р. Справочник программиста персональных компьютеров типа IBM PC, XT, AT: Пер. с англ./ Предисл. Н.В.Гайского. -- М.: Финансы и статистика, 1991.

Зуев Е.А. Язык программирования Turbo Pascal 6.0. -- М.: Унитех, 1992.

Мизрохи. Turbo Pascal и объектно-ориентированное программирование. -- М.: Финансы и статистика, 1992.

Размещено на Allbest.ru


Подобные документы

  • Структура и основные элементы языка Turbo Pascal. Алгоритм составления простейших программ на Turbo Pascal. Применение условного оператора и сильноветвящихся алгоритмов. Циклы с предусловием и постусловием, сочетание циклических и условных операторов.

    реферат [64,0 K], добавлен 20.03.2016

  • Основы работы на языке высокого уровня Turbo Pascal. Основное оборудование и программное обеспечение. Операторы, необходимы для работы в графической среде Turbo Pascal. Запуск графического режима. Текст программы в графической среде Turbo Pascal.

    лабораторная работа [12,7 K], добавлен 14.05.2011

  • История создания и развитие Pascal. Особенности пакета программирования Turbo. его возможности редактора текстов, компилятора и отладчика. Построения программы на языке Turbo Pascal, ее структура, типы алгоритмов, одномерные и многомерные массивы.

    курсовая работа [519,3 K], добавлен 25.06.2011

  • Анализ объектно-ориентированного программирования, имитирующего способы выполнения предметов. Основные принципы объектно-ориентированного программирования: инкапсуляция, наследование, полиморфизм. Понятие классов, полей, методов, сообщений, событий.

    контрольная работа [51,7 K], добавлен 22.01.2013

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

    курсовая работа [479,7 K], добавлен 04.07.2008

  • Понятие и история развития языка Turbo Pascal, оценка его графических возможностей и особенностей. Инициализация графического режима. Управление экраном и окнами, цветом и фоном, принципы работы с текстом. Построение графиков функций и изображений.

    курсовая работа [159,9 K], добавлен 17.12.2014

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

    реферат [17,0 K], добавлен 15.04.2015

  • Программирование и структура программы на языке Turbo Pascal и MS Visual C++6.0. Вычисление площади круга. Реализация программы в системе Turbo Pascal и MS VISUAL C++6.0 для Windows. Структура окна ТРW. Сохранение текста программы в файле на диске.

    лабораторная работа [3,7 M], добавлен 22.03.2012

  • Изучение текстового режима языка программирования Turbo Pascal. Написание игры "Змейка" с помощью средств, процедур и функций языка программирование Turbo Pascal. Структурное и функциональное описание разработки. Листинг и общие примеры работы программы.

    контрольная работа [286,3 K], добавлен 10.04.2011

  • Изучение принципов объектно-ориентированного программирования, в котором основными концепциями являются понятия классов и объектов. Свойства этого вида программирования: инкапсуляция, полиморфизм, наследование. Описание класса. Конструкторы и деструкторы.

    презентация [74,8 K], добавлен 14.10.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.