Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Delphi, Pascal.docx
Скачиваний:
8
Добавлен:
26.04.2019
Размер:
566.19 Кб
Скачать

24. Что такое записи в языке Pascal? Как они описываются, в чем особенность вариантной части?

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

Описание записи в языке Паскаль осуществляется с помощью служебного слова record, вслед за которым описываются компоненты записи. Завершается описание записи служебным словом end.

Записи удобны для создания структурированных баз данных с разнотипными элементами, например:

Type{Объявление типа запись}

TStudent = record

Fio: string[20];{Поле ф.и.о.}

Group: integer; {Поле номера студ. группы}

Ocn: array[1..3] of integer; {Поле массиваоценок}

end;

Var Student: TStudent;{Объявление переменной типа запись}

Доступ к каждому полю осуществляется указанием имени записи и поля, разделенных точкой, например:Student.Fio:= ‘Иванов А.И.’;{Внесение данных в поля записи}

Student. Group:=142;

Для сокращения текста доступ к полям осуществляется также при помощи

оператора with:

With Student do begin

Fio:= ’Иванов А.И.’;

Group:=142;

end;

Обращение к компонентам записей можно упростить, если воспользоваться оператором присоединения with. Он позволяет заменить составные имена, характеризующие каждое поле, просто на имена полей, а имя записи определить в операторе присоединения: with rec do оператор, где rec - имя записи, оператор - оператор, простой или составной. Оператор представляет собой область действия оператора присоединения, в пределах которой можно не использовать составные имена.

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

Записи в общем случае имеют: *фиксированную и вариантную части. В любой записи может быть только одна вариантная часть. Вариантная часть открывается предложением case <перечисляемый тип> of. После её окончания в записи не могут появляться никакие другие поля. В вариантной части указывается несколько вариантов полей, каждый из которых заключен в скобки, перед которыми стоит значение константы, имеющей тип, указанный в предложении case. Имена полей д.б уникальными в пределах той записи, где они объявлены. Всем вариантам отводится одна и та же область памяти, объем которой равен максимальному из объемов вариантов полей. Возможны записи, имеющие только фиксированную часть (отсутствует вариантная часть) или имеющие только вариантную часть (отсутствует фиксированная часть).

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

Основным понятием ООП(объектно-ориентированного программирования) являются:

-Объект, который в Delphi представляет собой переменную структурированного типа, описываемого с помощью ключевого слова Class.

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

Объектно-ориентированный подход основан на трёх основополагающих концепциях:– инкапсуляция;– полиморфизм;– наследование.

Инкапсуляция – это механизм, который объединяет как данные, так и процедуры и функции(т.е код), манипулирующий этими данными, а также защищает и то, и другое от внешнего вмешательства или неправильного использования. Пример: ложка, опущенная в стакан, не меняет его свойств и не становится частью стакана, хотя и помогает пить из него чай; в то же время, сахар, растворенный в чае с помощью ложки, делает его сладким.

Полиморфизм- возможность объектов с одинаковой спецификацией иметь различную реализацию. В результате в объекте-родителе и объекте-потомке возможно существование двух одноименных методов реализующих различные алгоритмы. Язык программирования поддерживает полиморфизм, если классы с одинаковой спецификацией могут иметь различную реализацию — например, реализация класса может быть изменена в процессе наследования. Кратко смысл полиморфизма можно выразить фразой: «Один интерфейс, множество реализаций». Полиморфизм можно организовать по-разному: используя раннее связывание метода с полями объекта, которое происходит на этапе компиляции, и позднее связывание, которое осуществляется непосредственно в нужный момент при выполнении программы.

Наследование – это процесс, посредством которого один объект может наследовать свойства другого объекта и добавлять к ним черты, характерные только для него. Наследующий объект называется потомком. Объект, которому наследуют- предком. В итоге создается иерархия объектных типов, где поля данных и методов «предков» автоматически являются и полями данных и методов «потомков». Прародителем всех классов в Delphi является класс TObject.

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

Наследование относится только к типам, но не экземплярам объекта. Описание типа-потомка имеет отличительную особенность:<имя типа-потомка> = Object(<имя типа-предка>) дальнейшая запись описания обычная.