|
Программирование >> Проектирование интерфейса пользователя
Вопросы и ответы Вопрос. Можно ли создать массив для хранения элементов различн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 представляет удобную сопоставительную схему терминов структурного и объектного программирования. Новый термин Парадигма - это, в контексте нашего разговора, набор общих приемов или стиль программирования. Например, объектно-ориентированное программирование - это парадигма (концепция), в соответствии с которой при декомпозиции (разделении) задачи на более мелкие подзадачи во главу угла ставится объект, а не процесс.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |