Файл: Освой самостоятельно программирование для MS Access 2002 за 24 часа [П.Киммел].pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 21.10.2020
Просмотров: 7948
Скачиваний: 25

Watch
2
100
Рис. З.7. Диалоговое окно Quick Watch —
более эффективный инструмент просмотра
содержимого переменных или результатов
вычисления любых выражений, нежели
средства добавления объектов наблюдения
Если вы помните, в примере, соответствующем листингу 3.3, переменной Radius
было присвоено значение 10. Квадрат этой величины — разумеется, 100.
Режимы наблюдения за состоянием объектов данных программы — удобные инст-
рументы отладки кода любого назначения и сложности.
Режим непосредственного
исполнения кода
Окно Immediate, предназначенное для непосредственного исполнения кода, -
один из моих любимых рабочих инструментов. Окно Immediate (рис. 3.8) позволяет
выполнять коды различной степени сложности. Чтобы открыть окно, следует выбрать
в строке меню редактора команду
Window.
I -
Т
Т
End
с.
5
Immediate отображается содержимое константы PI, определенной
в тексте программы
3-й час. Как программа работает с данными
65

Приемы использования окна Immediate требуют дополнительных пояснений, по-
скольку существуют некоторые ограничения, касающиеся разновидностей того кода,
который может быть исполнен.
Если необходимо воспользоваться средствами окна Immediate, откройте его, набе-
рите текст нужной команды или выражения и нажмите клавишу <Enter>. Чтобы оз-
накомиться с содержимым константы PI, выполните следующие действия.
1. В режиме отладки выполните код листинга 3.3, дойдя до строки 5.
2. Выберите в строке меню редактора команду
Window, чтобы от-
окно Immediate.
3. Щелкните в пределах окна Immediate, чтобы задать ему фокус ввода.
4. В окне Immediate наберите ?
(? — краткая версия команды print, оставшаяся
от предыдущих версий Visual Basic. Редактор Visual Basic самостоятельно
преобразует ? в print. Например, команда
PI будет преобразована De-
bug. Print
5. Нажмите клавишу
Ниже появится значение
ранее присвоенное константе
(см. рис. 3.8).
В листинге 3.4 показан пример более сложного кода, который может быть исполнен с
помощью средств окна Immediate.
Листинг 3.4. Пример непосредственного исполнения кода
1: Open
for Input As #1
2: Line Input #1, s
Print s
4: Close #1
Строка 1 содержит команду открытия файла
который присутствует
на диске каждого компьютера, работающего под операционной системой Windows.
Строка 2, ссылаясь на открытый файл с помощью номера #1, осуществляет чтение
первой строки файла и присваивание полученного значения неявно заданной пере-
менной s типа String. В строке 3 выполняется вывод содержимого переменной s в
окно Immediate. На компьютере автора книги результат вывода выглядел так:
for 16-bit app support
Команда в строке 4 закрывает файл. Окно Immediate — удобный инструмент пред-
варительной проверки кода перед его практической реализацией в составе программ-
ного модуля.
Стек вызовов
Использование служебного слова Call для вызова процедур восходит еще к языку
ассемблера. В VBA по-прежнему можно использовать его перед именем процедуры. В
техническом смысле инструкция вызова подпрограмм означает, что регистры сегмента
кода и указателя инструкций в ЦПУ должны начать выполнение инструкций, опреде-
ленных адресом
(это 16-битный адрес, но аналогично происходит работа и в 32-
битной Windows). Для
локальных переменных создается стековый фрейм,
в стеке хранится текущий
а локальные переменные размещаются непо-
средственно после выполнения
В нашем случае вызов можно понимать как обращение к программе с целью вы-
полнить именованную процедуру. Поскольку вызов происходит по имени (и адресу),
отладчик может отследить порядок вызова процедур и выявить, где вызывались про-
66
Часть I. Азбука программирования в Access

Список вызываемых процедур помещается в стек вызовов (Call Stack). В ре-
дакторе Visual Basic этот стек приводится в одноименном диалоговом окне (рис. 3.9).
Рис. 3.9. В диалоговом окне Call Stack со-
держится список вызванных процедур
—
от
последней к первой. В данном окне можно
отследить поток операций, выполняемых
программой
Когда же следует обращаться к окну Call Stack? При возникновении ошибок часто
необходимо отследить работу программы по частям, чтобы выявить место появления
ошибок. Последняя исполнявшаяся
находится вверху списка. Это своего
рода след из хлебных крошек, как в сказке о Ганзеле и Гретель, по которому можно
вернуться назад и выяснить, где программа работает неверно.
Чтобы переместиться к нужной подпрограмме, дважды щелкните на ее имени в
окне Call Stack, и редактор Visual Basic переместит курсор на эту процедуру.
Резюме
Сейчас вы уже можете уверенно
с переменными. Все, что осталось
сделать, — это разложить по полочкам в памяти знания, полученные на этом занятии.
Вы ознакомились со способами объявления переменных различных типов. Испытав
на практике приемы объявления переменных и присваивания им значений, вы смо-
жете усовершенствовать навыки владения данными — одной из главных составных
частей любой программы.
Из данной главы вы узнали о применении механизма всплывающих подсказок, о спо-
собах работы с окнами Locals, Watches и Immediate — эффективными и удобными средст-
вами отладки кода и "шлифовки" его на уровне данных простых типов и выражений. К
этим инструментам мы будем неоднократно обращаться и на следующих занятиях.
Вопросы и ответы
Вопрос. Можно ли в пределах одного выражения объявить несколько переменных?
Ответ.
Да. Однако помните, что переменные, перечисленные без явного указания
типа, будут иметь тип Variant.
Вопрос. Разрешается ли объявлять константу в одном месте кода, а затем обращаться
к ней неоднократно из различных частей программы?
Ответ.
Да. Вы можете объявить константу в верхней части текста модуля — точно
так же, как и переменные Global. Константы, определенные вне контекста любой
функции или подпрограммы, система воспринимает как глобальные. Это самый безо-
пасный вид объектов Global, поскольку их значения всегда остаются неизменными.
Вопрос. Возможен ли вариант экспериментирования с различными реализациями од-
ного и того же решения, не
написания новых функций или процедур?
Ответ.
Да. Это как раз одно из достойных применений средств окна Immediate.
3-й час. Как программа работает с данными
67

Задания
Ниже приведены тестовые задания и упражнения, которые помогут вам самостоя-
тельно проверить уровень освоения материала, изложенного в этой главе. Ответы на
вопросы вы найдете в приложении.
Тесты
1. Какое отличие существует между явным и неявным определением переменной?
2. С помощью каких средств языка можно исключить потенциально опасные воз-
можности неявного определения переменных?
3. Для каких целей предназначен формат объявления переменных, использующий
служебное слово ReDim?
4. В каком месте кода следует объявлять глобальные переменные?
5. Данные каких типов могут быть присвоены переменным типа Variant? Следует
ли широко использовать объекты типа Variant?
1. Напишите выражение объявления константы PI за пределами подпрограммы
SquareOfCircleCalc, приведенной в листинге 3.3.
2. Исправьте код листинга 3.3 таким образом, чтобы в выражениях использовалась
новая глобальная константа PI.
3. Постройте выражение объявления динамического массива для хранения десяти чи-
сел двойной точности.
68 Часть I. Азбука программирования в Access

4-й час
Последовательность действий
и выполнение вычислений
В предыдущих главах вы ознакомились с приемами использования операторов, слу-
жебных слов, переменных и выражений.
занятие мы посвятим рассмотрению выраже-
ний
вида — так называемых
уравнений.
В контексте материала этой главы
под уравнением мы будем понимать выражение,
и
Практически в каждом выражении любой программы используются операторы. Опе-
раторы позволяют управлять последовательностью выполняемых профаммой действий,
осуществлять арифметические операции, складывать и форматировать строки данных.
Основные темы занятия.
• Разновидности операторов.
• Типы выражений.
• Как осуществлять сравнение данных.
• Логические операторы.
О понятии „уравнение"
Уравнение —
это выражение, содержащее оператор. В практике реального програм-
мирования вам придется сталкиваться с подобными выражениями — арифметическими,
логическими, условными — буквально на каждом шагу. В ходе этого занятия вы полу-
чите исчерпывающие сведения об операторах различных типов. Но вначале поговорим
об операндах — данных, подвергающихся воздействиям со стороны операторов.
Как вы, вероятно, помните, в разделе "Операторы и операнды Access" главы "2-й
час. Познакомимся с
мы говорили, что операнды — это элементы данных, с ко-
торыми работает оператор. Например, оператор сложения, обозначаемый символом
плюс
(+), имеет дело с двумя операндами — левым и правым. Так, в уравнении 2 + 3
константа 2 — это левый операнд, а 3 — правый.