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

1 ... 140 141 142 [ 143 ] 144 145 146 ... 153


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 позволяет вернуть фрагмент памяти, отведенный объекту, в общий пул динамически распределяемой памяти.



1 ... 140 141 142 [ 143 ] 144 145 146 ... 153

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