Программирование >>  Проектирование интерфейса пользователя 

1 ... 65 66 67 [ 68 ] 69 70 71 ... 153


Вопросы и ответы

Вопрос. Можно ли создать массив для хранения элементов различн1х типов данн1х?

Ответ. Да. Объявите массив с указанием типа Variant, и вы сможете сохранять в нем данные различных типов.

Вопрос. Необходимо ли при завершении работ1 с массивом использовать функцию Erase?

Ответ. Делать это вовсе не обязательно. Но если вы поступаете именно так, будьте последовательны в своих действиях.

Вопрос. Насколько велик объем памяти, доступный для объявления массива внутри

функции?

Ответ. Еще несколько лет назад, когда не существовало мощнтх 32-разрядных операционных систем, таких как Windows 2000, допустимый размер массива ограничивался

объемом стека - специальной области оперативной памяти. Но теперь программисту

позволено объявлять внутри функции или процедуры весьма широкие массивы.

Вопрос. Существуют ли более эффективные алгоритмы сортировки, нежели рассмотренные методы пузырька , выбора или быстрой сортировки ?

Ответ. Алгоритм быстрой сортировки теоретически обладает наилучшей оценкой поведения, однако с учетом свойств конкретных наборов сортируемых данных могут

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

Задания

Ниже приведены тестовые задания и упражнения, которые помогут вам самостоятельно проверить уровень освоения материала, изложенного в этой главе. Ответы на вопросы вы найдете в приложении.

Тесты

1. Как называется функция, позволяющая построить и вернуть массив?

2. Какая функция используется для инициализации элементов массива значением, равноценным пи 11 ?

3. Действует ли функция Erase одинаково в отношении массивов данных различных типов?

4. Каким образом можно динамически, т.е. в ходе выполнения программы, изменить размер массива?

5. Какой из алгоритмов сортировки более эффективен - метод пузырька , выбора или быстрой сортировки ?

Упражнения

1. Напишите выражение сравнения строк для использования в процедуре сортировки.

2. Исправьте текст процедуры Dump таким образом, чтобы вывод даннтх осуществлялся в файл. Почему лучше выносить подобный код в отдельный именованный блок (функцию или процедуру), а не располагать его непосредственно в том месте программы, где он необходим?

3. Внесите изменения в текст процедуры BubbleSort, чтобы осуществить сортировку данных в порядке их убывания. (Имейте в виду: в листинге 12.9 предполагается вариант сортировки по возрастанию.)



13-й час

Коллекции данных


На протяжении многих лет университетские курсы лекций, посвященные структурам данных, сводились к изложению приемов управления динамическими массивами. Динамический массив - чрезвычайно простая и доступная структура данных (за информацией обращайтесь к предыдущей главе, 12-й час. Управление данными переменного объема ). В начале 90-х была разработана концепция объектно-ориентированного программирования. С тех пор во многих системах программирования, включая и VBA, арсенал пополнился средствами создания классов и объектов. Для нас с вами это означает возможность многократного использования однажды созданного кода, собственного или заимствованного.

Коллекции - одно из достижений объектно-ориентированного подхода. Коллекция представляет собой разновидность динамического массива, оформленного в виде стандартного класса VBA. Сегодня коллекции способны послужить более удачным вариантом выбора во всех ситуациях гае прежде применялись массивы. В образцах кода, написанного ранее, вы все еще сможете встретить примеры обращения к массивам. Но в современных приложениях чаще употребляются коллекции.

Основные темы занятия.

Знакомство с коллекциями.

Объявление объектов коллекций.

Применение стандартных средств управления коллекциями.

Примеры использования коллекций.

Знакомство с коллекциями

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



Дополнительные возможности, предоставляемые коллекциями, - это встроенные

средства изменения размеров и динамической обработки ошибок.

Словом, коллекции - одна из самых мощных и универсальных структур данных, имеющихся в распоряжении программиста, применяющего VBA.

Использование коллекций

Коллекции находят самое широкое применение - в стандартных визуальных компонентах (например, раскрывающиеся списки), в объектах класса ADODB для представления полей, в ADOX для хранения информации о таблицах и ключах базы данных и т.д. Вам непременно потребуется изучить приемы обращения с коллекциями, чтобы научиться работать с визуальными компонентами и объектами ADO.

На страницах этой книги, мы уже неявно обращались к коллекциям, когда использовали объекты класса ADODB.Recordset. Таким образом, коллекции - это настолько важная тема, без изучения которой всем нам просто не обойтись.

Термины объектно-ориентированного программирования

В составе библиотек VBA имеется код, определяющий существо коллекции. Он носит название класса Collection. Воспринимайте класс как формализованное описание того, какие данные и какие действия могут поддерживаться и выполняться

фрагментом (объектом) кода.

Тип данных Integer, например, осведомлен о возможностях выполнения операций с целыми числами. Класс же способен содержать в своем составе переменные различных типов и знать , как обращаться с каждой из них. Но класс, кроме того,

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

Именованный блок кода, содержащий формализованные описания собственных знаний и умений , называют классом. Создаваемый программистом экземпляр (переменная) класса носит название объекта.

Определенные в составе класса переменные, процедуры и функции называют общим термином атрибуты. Существует две разновидности атрибутов. Атрибуты данных - это свойства. Свойства - это те же переменные, за исключением того, что при

обращении к свойству необходимо обязательно указывать наименование объекта

(экземпляра), которому оно принадлежит. Вторая разновидность атрибутов - методы - это объявленные в составе класса процедуры и функции. Отличие методов от обычных процедур или функций заключается в том, что они существуют только в составе класса и полностью ему принадлежат.

Процесс и результат объявления атрибутов класса называется инкапсуляцией. Вы

можете, например, услышать такое выражение: Класс инкапсулирует объявленные в его составе свойства и методы . До появления объектной концепции информатика

следовала парадигме структурного программирования. Табл. 13.1 представляет удобную сопоставительную схему терминов структурного и объектного программирования.

Новый термин

Парадигма - это, в контексте нашего разговора, набор общих приемов или стиль программирования. Например, объектно-ориентированное программирование - это парадигма (концепция), в соответствии с которой при декомпозиции (разделении) задачи на более мелкие подзадачи во главу угла ставится объект, а не процесс.



1 ... 65 66 67 [ 68 ] 69 70 71 ... 153

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика