
L5.pptx
- Количество слайдов: 26
Программирование и основы алгоритмизации Лекция 5
Указатели. Освобождение памяти • Процедура Dispose не освобождает память явно, а передает указание объекту Memory. Manager
Указатели • Передача параметров в функцию – По ссылке • С использованием ключевого слова var – По значению
Классы • Ссылочный тип данных • При выполнении операции присваивания копируется только ссылка на адрес в памяти
Классы как ссылочный тип • var My. Var: TMy. Class; Выделена ли память?
Классы как ссылочный тип • My. Var. Create; //выделение памяти • My. Var. Free; //Освобождение памяти
Классы как ссылочный тип • Объявление объектной переменной некоторого типа. • Создание объекта вызовом метода конструктора класса. • Использование объекта по назначению. • Освобождение объекта. – FREE (можно вызывать несколько раз у одного и того же объекта) • Or – Destroy
Классы и Структуры • Структура так же как и класс может иметь поля, но не имеет методов • Структура не является ссылочным типом данных Type Customer=record; Name: string; Age: integer; end;
Свойства • Обращение к свойствам происходит так же как и к полям. • Свойства в отличие от полей не хранят данные, а управляет данными посредством операций чтения и записи
Свойства type TDelimited. Reader = class FActive: Boolean; procedure Set. Active(const AActive: Boolean); property Active: Boolean read FActive write Set. Active; end;
Свойства • READ-only свойства • WRITE-only свойства
Интерфейс семантическая и синтаксическая конструкция в коде программы, используемая для специфицирования услуг, предоставляемых классом или компонентом. Интерфейс = Объект – Реализация
Интерфейсы могут содержать свойства и методы. Интерфейсы не могут содержать поля и реализацию методов. Интерфейс является ссылочным типом данных
Интерфейс Type IText. Reader = interface function Next. Line: Boolean; property Active: Boolean; end;
Интерфейс var career_1: ICareer; career_2: ICareer; begin career_1: =Mts. Create; career_2: =Megafon. Create end;
Интерфейс • Классы реализуют (имплементируют) интерфейс • Класс может реализовывать несколько интерфейсов
Список Type List. Item=class(TObject) Data: string; next: List. Item; End;
Список • Указатели – Head – Current
Список: создание procedure Create. List(data: string) begin If head=nil then begin head: =Data. Item. Create; head. Data: =data head. Next: =nil; end;
Список Добавление procedure Add. List. Item(data: string) var tmp: List. Item; begin if head=nil Create. List(data); else begin current: =head; while current. next<>nil do current: =next; tmp: =List. Item. Create(); tmp. data: =data; tmp. Next: =nil; current. Next: =tmp; end;
Список: удаление procedure Delete. List() var tmp: List. Item; Begin current: =head; while current<>nil do begin tmp: =current; current: =current. Next; tmp. Free(); end;
Список Поиск function Search(data: string): string Var tmp: List. Item; begin current: =head; while current. Data<>data current: =current. next; result: =current; end;
Стек • Стек — структура данных, в которой доступ к элементам организован по принципу LIFO ( last in — first out, «последним пришёл — первым вышел» ). Чаще всего принцип работы стека сравнивают со стопкой тарелок: чтобы взять вторую сверху, нужно снять верхнюю.
Стек 5 4 PUSH 5 4 4 3 3 2 2 1 1 POP
Очередь — структура данных с дисциплиной доступа к элементам «первый пришёл — первый вышел» (FIFO, First In — First Out). Добавление элемента (принято обозначать словом enqueue — поставить в очередь) возможно лишь в конец очереди, выборка — только из начала очереди (что принято называть словом dequeue — убрать из очереди), при этом выбранный элемент из очереди удаляется.
Очередь 5 4 en. Queue 5 3 4 2 3 1 de. Queue 2 1 1