Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика часть 1.doc
Скачиваний:
6
Добавлен:
16.04.2019
Размер:
290.3 Кб
Скачать

25.Оператор Do...Loop (Visual Basic)

Повторяет блок инструкций, пока условие Boolean равно True или до тех пор, пока условие станет True.

Копировать

Do { While | Until } condition

[ statements ]

[ Exit Do ]

[ statements ]

Loop

-or-

Do

[ statements ]

[ Exit Do ]

[ statements ]

Loop { While | Until } condition

HYPERLINK "javascript:void(0)" Части

Термин

Определение

Do

Обязательный.Начало определения цикла Do.

While

Требуется, если используется Until.Повторяет цикл до тех пор, пока condition равно False.

Until

Требуется, если используется While.Повторяет цикл до тех пор, пока condition равно True.

condition

Необязательный.Выражение Boolean.Если condition равно Nothing, Visual Basic обрабатывает его как False.

statements

Необязательный.Один или несколько операторов, повторяемых, пока condition равно или пока не станет равно True.

Exit Do

Необязательный.Передача управления из цикла Do.

Loop

Обязательный.Завершение определения цикла Do.

Заметки

Используется структура Do...Loop, если требуется повторение набора инструкций неограниченное число раз, пока условие выполняется.Если вы хотите повторить инструкцию определенное количество раз, то For...Next Statement обычно является лучшим выбором.

While или Until можно использовать для указания condition, но не оба одновременно.

Можно проверить condition только один раз — в начале или в конце цикла.Если проверить condition в начале цикла (в инструкции Do), цикл может никогда не выполниться, даже один раз.Если проверить в конце цикла (в инструкции Loop), цикл всегда выполняется по крайней мере один раз.

Условие обычно является результатом сравнения двух значений, но оно может быть любым выражением, значение которого при вычислении имеет тип Тип данных Boolean (Visual Basic) (True или False).Сюда же относятся значения других типов данных, например, числовых типов, преобразованные в тип Boolean.

Циклы Do могут вкладываться друг в друга.Также можно вложить друг в друга различные виды управляющих структур.Дополнительные сведения см. в разделе Вложенные структуры управления (Visual Basic).

26.

Массив - это коллекция переменных, которые имеют общие имя и базовый тип. Все элементы данных, сохраняемых в массиве, должны иметь один и тот же тип. Информация, сохраненная в массиве, может быть доступна в любом порядке.

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

Для доступа к данным, хранящимся в определенном элементе массива, следует указывать имя массива с последующим числом, называемым индексом элемента. Индекс всегда заключается в круглые скобки. Например: My_Array(3) - этому элементу нашего массива соответствует "Миша" (не забывайте, что по умолчанию нумерация элементов массива начинается с 0).

Поскольку нумерация с нулевой базой не очень удобна (т.к. мы привыкли считать с 1, а не с 0), то в VBA имеется директива компилятора, позволяющая исправить это "неудобство": Option Base.

Директива компилятора имеет два варианта написания: Option Base 0 - индексы массивов начинаются с 0 (установка по умолчанию) Option Base 1 - индексы массивов начинаются с 1 Данная директива компилятора помещается в область объявлений модуля перед объявлениями любых переменных, констант или процедур. Нельзя помещать Option Base внутри процедуры. Можно иметь только один оператор Option Base в модуле, который влияет на все массивы, объявляемые в модуле.

Многомерные массивы

Одномерные массивы хорошо подходят для представления простых списков данных. Однако часто бывает необходимо представить таблицы данных в программах с организацией данных в формате строк и столбцов, подобно ячейкам в рабочих листах Excel. Для этого необходимо использовать многомерные массивы. Так адрес каждой ячейки листа состоит из двух чисел, одно из которых (номер строки) является первым индексом, а второе (номер столбца) - вторым индексом массива. Такой массив называется двумерным массивом. Добавив еще номер листа, получим трехмерный массив. VBA позволяет создавать массивы, имеющие до 60 измерений.

Статические и динамические массивы

Массивы, не меняющие число своих элементов, называются статическими массивами. Примером такого массива может служить вышеприведенный массив My_Array, содержащий 10 элементов.

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

Динамический массив может увеличиваться или сжиматься, чтобы вмещать точно необходимое число элементов без напрасного расходования памяти

Объявление массивов

Объявление массива с использованием оператора Dim имеет следующий синтаксис:

Dim VarName([Subscripts]) [As Type] VarName - любое имя массива, использующее допустимый идентификатор имени; Subscripts - измерение массива. Если размерность массива больше единицы, то Subscripts разделяются запятыми.

Оператор Subscripts имеет следующий синтаксис:

[lower To] upper [,[lower To] upper].. lower - определяет нижний диапазон допустимых индексов для массива (необязательный аргумент); upper - определяет верхний предел для индексов массива (обязательный аргумент).

Примеры правильного объявления массивов: Dim Array_Str (1 To 10) As String - одномерный статический строковый массив, включающий 10 элементов; Dim Array_Var() - динамический массив; Dim Array_Mult (0 To 5, 0 To 7) As Integer - двумерный статический массив целых чисел, включающий 6*8=48 элементов.

При объявлении массивов следует помнить, что включение оператора Subscripts в объявлении массива создает статический массив с фиксированным числом элементов, пропуск оператора Subscripts в объявлении массива создает динамический массив, а установка директивы компилятора Option Base влияет на общее число элементов в массиве.

27.При создании приложения могут возникать различные ошибки. Они могут появляться как на этапе разработки и отладки, так и в процессе работы приложения. Ошибки, возникающие в процессе работы программы, являются неотъемлемой частью любого приложения. Их можно разделить на две части: ожидаемые и непредвиденные. К ожидаемым ошибкам относятся все ошибки, запланированные заранее, например отсутствие гибкого диска в дисководе, а к непредвиденным — деление на ноль в процессе вычисления. Хорошо сделанный проект должен уметь «перехватывать» возникающие ошибки до того, как они приведут к непоправимым последствиям.

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

Отладка приложения — это приведение созданного проекта в рабочее состояние, характеризуемое не только тем, что все визуальные элементы интерфейса расположены на своих местах и соответствующие окна открываются в нужный момент, но и тем, что макрос выполняет то, чего вы хотели при его проектировании. На практике чаще бывает иначе — проект работает не так, как ему положено, а когда вы начинаете настаивать — генерирует ошибку и прерывает свое выполнение. Поэтому процесс отладки должен начинаться с тестирования.

Тестирование позволяет выявить имеющиеся логические ошибки, которые очень часто никак иначе не выявляются. Тестирование, как правило, делится на три этапа. Первый этап — тестирование рабочего состояния — предполагает постановку в программе обычного рабочего задания, которое может быть отслежено пользователем на всех этапах. Второй этап — задание граничных условий — поставленная задача должна включать в себя данные, которые реально могут быть переданы в программу и представлять собой угрозу ее работоспособности, например деление на ноль. Третий этап — тестирование возникновения «нереальных» ситуаций, например, ввод в текстовое поле вместо цифр букв, что может привести к возникновению ошибок при последующих преобразованиях. Если тестирование выявляет наличие ошибок, то отладка должна определить их местоположение и помочь их устранению.

Процесс исключения и защиты от ошибок должен идти параллельно с написанием программного кода. Здесь можно дать несколько советов.

Для поиска и устранения ошибок нужно иметь ясную структуру проекта. Не стоит сваливать все пользовательские процедуры в один модуль — разделите программу на модули, каждый из которых выполняет определенную задачу или является отдельным макросом. С другой стороны, не стоит использовать слишком большое число модулей — если реализация задачи затрагивает более одного модуля, то поиск ошибки нужно будет вести во всех модулях, обслуживающих эту задачу. Это, конечно, не исключает возможности вызова подпрограммы из других модулей, но они должны быть созданы для выполнения четко поставленных целей. Данные из внешних источников перед их дальнейшим использованием должны быть проверены на пригодность — это позволит предотвратить наиболее часто встречающуюся ошибку — несоответствие типов. Такая защита обычно называется «защитой от дурака». При разработке любого программного обеспечения, не предназначенного для личного использования, следует руководствоваться золотым правилом: если доступ к проекту может получить любой неопытный пользователь, имеет смысл предположить, что только он и будет им пользоваться. С другой стороны, не стоит создавать чрезмерную защиту — она может «съесть» все хорошие стороны вашего макроса.

В VBA существует ряд способов и инструментов для минимизации числа синтаксических, структурных и логических ошибок на этапе разработки программы:

панель инструментов Debug (отладка) — содержит набор кнопок, позволяющих выполнить отладку приложения; окно Immediate (окно отображения значений) — позволяет осуществить непосредственный ввод команд, которые требуется немедленно выполнить; окно Watches (контрольное значение) — содержит значения выражений, которые помещены в список просмотра; окно Locals (локальное значение) — позволяет просматривать значения переменных процедуры; окно Call Stack (стек вызова) — содержит имена вызванных, но не завершенных процедур.

Step Into (Входить)

Команда пошагового выполнения кода с исполнением внутренних процедур

Step Over (Перешагивать)

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