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

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


4. Обязательно ли перед операцией очистки памяти, ведеппо екту коллекции, удалять все его элементы?

Нет. Собственпо, и саму операцию очистки вьшолпять пеобязательпо, поскольку компилятор снабжен специальп1ми средствами сборки мусора.

5. Назове способы циклического прохождения по элементам коллекции.

С этой целью могут применяться цикл1 For Each . . . Next и Fo . . Next, последний из котор1х учит1вает значение, хранящееся в Count.

Упражнения

1. Создайте коллекцию и добавьте в нее 10 целочислеппIх значений.

Sub AddTenlnegers{ )

Dim Integers As New Collection Dim I As Integer For I = 1 To 10

Integers.Add( Int( Rnd * 10 ) )

Next I

Set lntegers = Nothing End Sub

2. Напишите процедуру отяющую отобразить содержимое коллекции, построенной при в1полпепии преддущего упражнения, в окне Immediate.

Добавьте в код приведепной вьпие процедуры AddTenlntegers (пепосредсгвенпо перед строкой Set Integers = Nothing) следующий фрагмент:

For I = 1 То Integers.Count

Debug.Print Integers.Item(I)

Next I

3. Исправьте текст рассмотренной в главе 12 процедуры сортировки по методу пуз1рька с учетом возможности обработки элементов коллекции.

Sub Swap( ByRef ACollection As Collection,

ByVal I As Integer, ByVal J As Integer ) Dim Temp As Integer Temp = ACollection (J)

Call ACollection. Add ( ACollection(I) , , J ) Call ACollection.Remove( J + 1 ) Call ACollection.Add( Temp, , I } Call ACollection.Remove( I + 1 )

End Sub

Sub BubbleSortCollection(ByRef Integers As Collection) Dim I As Integer, J As Integer For I = 1 To Integers.Count - 1

For J = I + 1 To Integers.Count

If (Integers (I) > Integers(J)) Then

Call Swap( Integers, I, J } End If Next J Next I End Sub

Процедура сортировки црактически не изменилась. Реализация же процедуры Swap в значительной степени зависит от типов данных - в нашем случае использованы стандартные методы Add и Remove класса Collection.



14-й час. Стиль программирования: Что тако шо, и что такое плохо

Тесты

1. Назовите удобный способ именования процедур и функций.

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

2. В чем заключаются положительные стороны идеи повторного применения программного кода?

Код уже готов, подвергнут отладке и тестированию.

3. Смысл префиксной, или венгерской, нотации заключается в разработке системы

сокращенных названий типов, используемых для именования переменных. Верно ли это?

Верно.

4. Термин процедура используется обозначения и подпрограмм, и функций. Верно

ли это? Верно.

5. Назовите важное полезное эмпирическое правило, которое обусловливает приемлемый размер кода процедуры или функции.

Процедура должна ггь достаточно краткой, чтобы выполнять только те операции, о которых свидетельствует ее название.

Упражнения

1. Придумайте имя функции, предназначенной для вычисления полной и частичной сумм.

GetTotalAndPartialSums.

2. Предложите имена для пары функций, одна из которых просто закрывает файл, а другая выполняет проверку корректности выполнения этой операции. DoCloseFile и CloseFile.

3. Задайте названия переменной, предназначенной для хранения номера открытого файла, хранения номера ошибки открытия файла, а также для процедуры, вычисляющей сумму процента при известных сумме капитала и процентной ставке. FileHandle E HANDLE и GetlnterestAmount.

15-й час. ADODB - ваш верный помощник

Тесты

1. Назовите синоним термина провайдер.

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



2. С помощью какого предложения SQ быть отфильтрованы данные в запросе? WHERE.

3. Какое свойство Recordset ограничивает даннхе, доступные в записи? Свойство Filter объекта Recordset соответствует назначению предложения команды WHERE на языке SQL.

4. Назовите имя свойства для представления даннгх, хранящихся в поле таблицы. Объекту какого класса оно принадлежит?

Свойство Value принадлежит объекту Field.

5. Как называется коллекция в составе объекта Recordset, предназначенная для хранения данных?

Fields.

Упражнения

1. Исправьте текст запроса в листинге 15.6, чтобы предусмотреть возможность сортировки записей в порядке возрастания по значению поля, название которого задано переменной SearchFieldName. (Совет: воспользуйтесь предложением ORDER BY.)

SQL = SELECT * FROM MUSIC WHERE & SearchFieldName & = &

FindValue & ORDER BY & SearchFieldName

2. Поясните, каким образом код листинга 15.7 можно еще более упростить и унифицировать.

Достаточно удачный способ состоит в том, чтобы передавать имя коллекции в качестве аргумента функции. В этом случае код легко приспособить для работы с любыми другими коллекциями.

3. Продемонстрируйте, как связать элементы произвольной коллекции с записями набора данных. (Совет: воспользуйтесь ключевым полем таблицы.)

Создавая элемент коллекции, добавьте в него значение ключевого поля записи: Call Target.Add( RecordSet( ARTIST ).Value, Str( RecordSet( ID ).Value ) ) Значение ключевого поля сохраняется в коллекции в виде строки - не забудьте

выполнить обратное преобразование (в длинное целое число) при необходимости

использования значения ключа для поиска записи.

16-й час. Применение языка SQL Тесты I

1. Что такое подчиненный (вложенный) запрос?

Вложенный запрос - это запрос, используемый в правой части одного из предикатов предложения WHERE, т.е. запрос, расположенный внутри другой команды! SQL.

2. С какой целью употребляется служебное слово ALL вместе с UNlON? Служебное слово ALL в сочетании с UNlON предписывает системе не удалять из результата выполнения объединенного запроса повторяющиеся строки. По умолчанию, т.е. в отсутствие слова ALL, такие строки изымаются.

3. Можно ли применять вложенный запрос в контексте команды! DELETE? Если да, то зачем?



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

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