Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЯВУ.docx
Скачиваний:
2
Добавлен:
23.04.2019
Размер:
210.36 Кб
Скачать

16 Тип variant. Массивы типа Variant.

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

Variant может содержать данные любого типа, за исключением:· структурных типов;· указателей;

Также тип Variant может содержать динамические массивы и специфический вид статических массивов, называемых вариантными массивами (variant array).

Variant можно смешивать с другими вариантами, числовыми, строковыми и булевскими данными. При этом компилятор автоматически выполняет преобразование типа.

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

На этапе создания вариант инициализируется специальным значением Unassigned. Другое специальное значение – Null – указывает на неизвестные или отсутствующие данные.

Вариантные массивы.

Можно создавать и обрабатывать массивы вариантов, но можно также создать и вариантный массив. Вариантные массивы не описываются, а создаются с помощью стандартных функций VarArrayCreate и VarArrayOf. Например, var V: Variant;V := VarArrayCreate([ - 1, 9], varInteger);

Теперь переменная V может быть индексирована, однако ее нельзя передавать подпрограмме как параметр-переменную. Вариантные массивы всегда индексируются целочисленным индексом.

Функция VarArrayOf создает и заполняет вариантный массив. Значения элементов массива передаются функции в качестве параметров, напримерV := VarArrayOf([1, 10, 100, 1000]);

После выполнения этого оператора V[1] = 10.

  1. Теоретические положения объектно-ориентированного программирования. История, основные принципы ооп.

Главными стимулами нововведений явл-ся стремление ускорить процесс создания надежных программ. и повысить их качество,это возможно благодаря развитию аппаратной базы ЭВМ. Первой была идея процедурного программирования. Центральная роль отводилась алгоритмам. Использование идеи процедурного программирования привело к созданию обширных библиотек подпрограмм, однако процедурный подход оказался хорошим только для чисто вычислительных математических задач, которые оперируют с достаточно небольшим количеством простых типов данных. Следующей революционной идеей стала концепция типов данных. Третий революционный шаг был направлен на то, чтобы отказаться от применения библиотек подпрограмм. Для этого сначала использовались внешние процедуры и функции, а впоследствии модульный подход к разработке программ. Модульное программирование предусматривает механизмы раздельной компиляции частей программы с последующей их сборкой перед выполнением. Модуль является неким «черным ящиком», который скрывает детали реализации определенных действий, в нем спрятаны данные и алгоритмы их обработки.Недостаток-ошибки можно выявить только на этапе выполнения программы. В основе ооп лежит концепция абстрактного типа данных, связывающего данные и обрабатывающие их алгоритмы в единое целое - объект. ООП можно рассматривать как модульное программирование нового уровня, когда вместо механического объединения процедур и данных акцент делается на их смысловую связь. Ооп предлагает новые технологические средства разработки такие как наследование, полиморфизм, композиция, позволяющие конструировать сложные объекты из более простых. Основной недостаток ООП - некоторое снижение быстродействия за счет более сложной организации программной системы. Преимущества ООП в полной мере проявляются лишь при разработке достаточно сложных программ. Основные принципы ООП. OOП основано на трех фундаментальных понятиях: инкапсуляция, наследование, полиморфизм. Инкапсуляция – объединение в единое целое данных и алгоритмов обработки данных.Правило ооп – для обеспечения целостности объекта нежелателен прямой доступ к его полям из вне. Инкапсуляция обеспечивает след.преимущества:1повышается надёжность программ,2увел.-ся ёмкость распространения и повторного исп-ния программ. кода. Наследование – позволяет создавать новые объекты на основе существующих передавая им свои св-ва и методы.Потомок может добавлять новые поля и заменять методы родителя.При внесении изменений в класс родителей эти изменения автоматически распр-ся на все дочерние классы.Наследование представляет собой специализацию.Подкласс рассм. как ососбый случай родительского класса.Наследование исп-ся, чтобы вызвать обобщение.Наследование-способ избежать дублирования кода. Полиморфизм-техника,позволяющая присвоить родительскому объекту один из его дочерних. Поведение род.объекта изменяется в зависимости от особенности присвоенной дочернему объекту.Ключевые правила полиморфизма:1)можно установить род.объект равный дочернему,но не наоборот.2)полиморфные методы должны быть объявлены в классе родителя.3)все полиморфные методы должны быть объявлены как виртуальные.