Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Объектно-ориентированное программирование

Связные списки.

Указатель можно включить в состав записи, например

Type

Workerptr = ^Workerrec;

Workerrec = record

Name: string [20];

Number: integer;

Salary: real;

Nextworker: Workerptr;

end;

Var

Worker: Workerptr;

При первом обращении к процедуре New мы передаем указатель Worker. Созданная запись содержит поле с указателем Nextworker, который можно передать следующей процедуре New, чтобы она создала следующую запись.

New(Worker^.Nextworker);

Можно организовать перемещение вдоль записи от одного элемента к другому, следуя указателям связи. Такой процесс называется сквозным проходом по списку.

Элемент, стоящий в самом конце списка должен содержать в своем поле Nextworker константу nil.

К сквозному проходу по списку приходится прибегать, например, для извлечения значений из имеющихся элементов.

Например:

Var

Listptr: Workerptr;

«---------------------»

Listptr: worker;

While Lisptr <> nil do

begin

writeln(Lisptr^.name);

Lisptr:= Lisptr^.Nextworker;

end;

Например: Ввести с клавиатуры ряд символов, затем вывести их на экран дисплея в обратном порядке. Признак конца ввода символ «_».

Program ObrStrok;

Const

Stop_symbol = ‘_’;

Type

Uk = ^Stroka;

Stroka = record

Sym: char;

Adr: Uk;

end;

Var

Element, Sled_element: Uk;

Sim: char;

Begin

Element:= nil;

Writeln(‘Введите строку символов’);

Repeat

Read(Sim);

Sled_element:= Element;

New(Element);

Element^.Sym:= Sim;

Element^.Adr:= Sled_element;

Until (Sim = Stop_symbol);

{ Вывод }

Repeat

Write(Element^.Sym);

Sled_element:= Element^.Adr;

Dispose(Element);

Element:= Sled_element;

Until (Element = nil);

End.

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

Появившись впервые в начале 80-х годов, этот термин (object-oriented programming) был связан с семейством языков Smalltalk, который, в свою очередь, использовал некоторые понятия известного с 60-х годов языка Simula-67. К настоящему времени многие распространенные языки, первоначально рассчитанные на традиционный подход к программированию, содержат ряд объектно-ориентированных расширений.

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

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

ООП базируется на трёх основных понятиях: инкапсуляция, наследование, полиморфизм.

Инкапсуляция – это объединение данных с процедурами и функциями, которые манипулируют этими данными. В результате получается новый тип данных – объектный тип.

Наследование – это возможность использования уже определённых объектных типов для построения других объектов, производных от них. Каждый из «наследников» наследует описания данных «прародителя» и доступ к методам их обработки.

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

Полиморфизм – это возможность определения единого по имени действия (процедуры или функции), применимого одновременно ко всем объектам иерархии наследования. Каждый объект иерархии может определять особенность реализации этого действия над «самим собой».

 

<== предыдущая лекция | следующая лекция ==>
Бестиповые указатели | Объекты. Основные понятия
Поделиться с друзьями:


Дата добавления: 2014-01-11; Просмотров: 291; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.