|
Программирование >> Проектирование интерфейса пользователя
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? Если да, то зачем?
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |