|
Программирование >> Проектирование интерфейса пользователя
Ope Name For Append As ttHandle Print #Handle, Text Close tHandle End Sub 3. Создайте подпрограмму поиска заданного имени в двоичном файле, предполагая, что при сохранении данных использовался тип и файл содержит более од- ной записи. Sub FindByName (ByVal Name As String) Dim Handle As Double f Handle = FreeFile On Error GoTo FINALLY Open A:\10\test.bin For Binary Access Read As #Handle Dim Mail As Email Do While Not EOF( Handle ) Get tHandle, , Mail If (Mail.Name = Name) Then MsgBox Найдено: & Mail.Name & , & Mail.Email Exit Do End If Loop FINALLY: Close #Handle End Sub 11 -й час. От сложного к простому: создание собственных типов данных Тесты 1. Может ли пользовательский тип данных содержать переменную перечислимого типа? Да. Типы даннгх, объявленные с помощью служебного слова Туре, могут содержать экземпляры других пользовательских и перечислимых типов. 2. Для каких целей применяются пользовательские и перечислимые типы и в чем их различие? Типы позволяют собрать в единое целое ряд различных элементов данных, а перечисления используются для удобства представления ограниченных наборов целочисленных значений. 3. Могут ли в объявлениях типов содержаться функции или процедуры? Нет, но это возможно в конструкциях классов. 4. Допускаются ли в определениях типов члены-константы? Нет. Постоянные значения не могут быть членами типа, определяемого пользователем. 5. Позволяется ли включать в объявление типа ссылочную переменную? Формально это не запрещено, хотя и не является общеупотребительной практикой. Упражнения 1. Создайте объявление типа для хранения данных об имени человека, его адресе и номере телефона. Type Contact Name As String Address1 As String Address2 As String City As String State As String PostalCode As String End Type 2. Определите тип, одним из членов которого будет экземпляр типа, созданного в предгдущем упражнении. Что может послужить причиной осуществления по-добн1х действий? Почему бы просто не исправить объявление исходного типа? Type lnternetContact Who As Contact Email As String End Type Здесь мы создали новый тип, одним из членов которого является экземпляр ранее построенного типа. При таком подходе нам не придется исправлять существующий код, чтобы приспособить его к появлению в составе типа новой порции данных, описывающей адрес электронной почты. 3. Объявите перечислимый тип, представляющий все сорта мороженого. Enum IceCreamFlavors Vanilla Strawberry Chocolate cecan Boisenberry End Enum 12-Й час ление данными переменного объема Тесты 1. Как называется функция, позволяющая построить и вернуть массив? Array. 2. Какая функция используется инициализации элементов массива значением, равноценным null? Erase. 3. Действует ли функция Erase одинаково в отношении массивов даннгх различнгх типов? Нет. Поведение функции Erase зависит от типа массива. Так, например, элементы массива объектов получают значение Nothing, а массиву типа Variant целиком присваивается значение Empty. 4. Каким образом можно динамически, т.е. в ходе выполнения программы, изменить размер массива? Следует использовать команду повторного объявления массива с помощью служебного словце Dim. 5. Какой из алгоритмов сортировки более эффективен - метод пузьфька , выбора или быстрой сортировки ? 452 Приложение. Ответы Наиболее ствующим считается алгоритм быстрой сортировки , правда, при условии, если данные не упорядочены предварительно. В последнем случае более высокую производительность может продемонстрировать алгоритм выбора. Упражнения 1. Напишите выражение сравнения строк для использования в процедуре сортировки. If (StrCompC Data(I), Data(J)) > 0} Then 2. Исправьте текст процедуры Dump таким образом, чтобы вывод даннтх осуществлялся в файл. Почему лучше выносить подобный код в отдельный именованный блок (функцию или процедуру) а не вносить его непосредственно в то место программы, где он необходим? Sub ишт1р( ByVal Data( ) As Long) Dim Handle As Double Handle = FreeFile Open dump.txt For Output As #Handle Dim Elem As Variant For Each Elem In Data Print #Handle, Elem Next Elem Close #Handle End Sub 3. Внесите изменения в текст процедуры BubbleSort, чтобы осуществить сортировку данн1х в порядке их убывания. (Имейте в виду: в листинге 12.9 предполагается вариант сортировки по возрастанию.) Sub BubbleSort ( ByRef Data { ) As Long ) Dim I As Integer, J As Integer For I = Lbound ( Data ) To Ubound ( Data )- 1 For J = I + 1 To Ubound! Data ) If (Data(J) > Data (I) ) Then Call Swap( Data, I, J ) End If Next J Next I End Sub 13-Й час. Коллекции данных Тесты 1. Чем отличается метод от обгчной функции (процедуры)? Метод - обобщенное название функций и процедур, служащих членами класса. 2. Как называется метод, позволяющий добавлять в коллекцию новые элементы? Эту функцию выполняет базовый метод класса коллекций, который носит название Add. 3. Каково назначение конструкции присвоения переменной-объекту значения Nothing? Операция присвоения переменной-объекту класса предопределенного значения Nothing позволяет вернуть фрагмент памяти, отведенный объекту, в общий пул динамически распределяемой памяти.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |