Краткие теоретические сведения
Циклы предназначены для многократного выполнения группы инструкций. В VBA для организации циклов используются инструкции For...Next, While...Wend, Do...Loop и For Each...Next
Инструкция For... Next
Эта инструкция повторяет выполнение группы инструкций указанное число раз. Синтаксис инструкции For...Next:
For Счетчик = Начало То Конец [ Step Шаг]
[Инструкции]
[ Exit For]
[Инструкции] Next [Счетчик]
Таблица 10- Элементы синтаксиса инструкции For...Next
Счетчик | Обязательный элемент. Числовая переменная (за исключением типа Boolean), используемая в качестве счетчика цикла. Эта переменная не может быть элементом массива |
Начало | Обязательный элемент — начальное значение переменной Счетчик |
Конец | Обязательный элемент — конечное значение переменной Счетчик |
Шаг | Необязательный элемент — представляет собой значение, на которое изменяется счетчик при каждом выполнении тела цикла. По умолчанию шаг равен единице. Аргумент Шаг может быть как положительным, так и отрицательным. |
Инструкции | Необязательный элемент— одна или несколько инструкций, составляющих тело цикла |
После выполнения всех инструкций цикла значение элемента Шаг добавляется к текущему значению переменной Счетчик. После этого инструкции цикла либо выполняются еще раз, либо цикл завершается (если значение счетчика сравнивается со значением элемента конец) и выполнение программы продолжается с инструкции, следующей за инструкцией Next.
|
|
Пример цикла For...Next:
For I =0 To 10 Step 2
Sum = Sum + I
Next I
В приведенном примере подсчитывается сумма четных чисел (поскольку шаг равен 2) в диапазоне от 0 до 10 включительно.
Инструкция Exit For предоставляет возможность выхода из цикла. Она передает правление инструкции, следующей непосредственно за инструкцией Next. Эта инструкция может находиться в любом месте цикла. Часто инструкцию Exit For применяют одновременно с проверкой какого-либо условия (например, If..Then).
Инструкция While... Wend
Инструкция While...Wend выполняет некоторую последовательность инструкций до тех пор, пока заданное условие имеет значение True. Синтаксис инструкцииWhile...Wend:
While Условие
[Инструкции]
Wend
Таблица 11- Элементы синтаксиса инструкции While...Wend
Условие | Числовое или строковое выражение, которое имеет значение True или False. Если условие имеет значение Null, то оно рассматривается как имеющее значение False |
Инструкции | Одна или несколько инструкций, выполняемых до тех пор, пока условие имеет значение True. Эти инструкции представляют собой тело цикла |
Если Условие имеет значение True, то выполняется весь набор инструкций, расположенных до инструкции Wend. После этого управление возвращается инструкции While и опять проверяется условие. Если Условие имеет значение True, то снова выполняются все инструкции до Wend. В противном случае выполнение программы передается на инструкцию, следующую за инструкцией Wend. Циклы While...Wend могут иметь любую глубину вложенности. При этом каждая инструкция Wend соответствует предшествующей инструкции While. Пример цикла While...Wend:
|
|
While I < 10
A = A + I
I = I + 1
Wend
Здесь объявляются переменные I и A типа Integer. Пока значение переменной I меньше 10, выполняются инструкции, составляющие тело цикла. При выходе из цикла переменная A получает значение равное 45.
Инструкция Do... Loop
Инструкция Do...Loop имеет два варианта синтаксиса:
- В первом варианте условие проверяется в начале цикла.
- Во втором варианте условие проверяется после выполнения инструкций тела цикла.
При использовании ключевого слова While цикл будет выполняться, пока условие имеет значение True, со словом Until — пока условие не примет значение True.
По сравнению с предыдущей, эта инструкция обеспечивает более структурированный и гибкий способ организации циклов.
Первый вариант синтаксиса инструкции Do...Loop:
Do [{ While | Until} Условие]
[Инструкции]
|
|
[ Exit Do]
[Инструкции]
Loop
Второй вариант синтаксиса инструкции Do...Loop:
Do
[Инструкции]
[ Exit Do]
[Инструкции]
Loop [{ While | Until} Условие]
Таблица 12 - Элементы синтаксиса инструкции Do...Loop
Условие | Необязательный элемент. Представляет числовое выражение или строковое выражение, которое имеет значение True или False. Если условие имеет значение Null, то оно рассматривается как значение False |
Инструкции | Одна или несколько инструкций, выполнение которых повторяется до тех лор, пока условие имеет значение True или пока оно не приобретет значение True |
Инструкция Do...Loop позволяет организовать циклы, аналогичные циклам White...Wend. Однако в отличие от последнего, цикл Do...Loop содержит инструкцию Exit Do, которая позволяет выйти из цикла Do...Loop в любом месте. Ниже приведен пример использования цикла, организованного с помощью инструкции Do...Loop, который практически идентичен рассмотренному выше циклу While...Wend.
Do While I < 10
A =A + I
I = I + 1
Loop
В первом варианте синтаксиса цикла Do...Loop и в цикле While...Wend сначала всегда проверяется условие, поэтому возможна ситуация, когда инструкции могут ни разу не выполняться. Во втором варианте синтаксиса Do.,,Loop инструкции, составляющие тело цикла, будут выполнены по крайней мере один раз.
|
|
Инструкция For Each... Next
Инструкция For Each...Next повторяет выполнение группы инструкций для каждого элемента массива или семейства. Синтаксис этой инструкции имеет вид:
For Each Элемент In Группа
[Инструкции]
[ Exit For]
[Инструкции]
Next [Элемент]
Остановимся на алгоритме выполнения инструкции For Each...Next. Набор инструкций, содержащихся в блоке For...Each, выполняется только в том случае, если группа содержит хотя бы один элемент. Сначала выполняются все инструкции для первого элемента группы, затем (при условии, что группа содержит несколько элементов) — инструкции цикла для остальных элементов. После обработки всех элементов цикл завершается, и выполнение программы передается на инструкцию, следующую за инструкцией Next.
Среди инструкций цикла может содержаться любое число инструкций Exit For, позволяющих выйти из цикла. При этом управление передается инструкции, расположенной за инструкцией Next.
Таблица 13 - Элементы синтаксиса инструкции For Each...Next
Элемент | Обязательный элемент, которым является переменная, используемая для выполнения итераций по элементам семейства или массива. Для семейства элемент может быть только переменной типа Variant, универсальной объектной переменной или переменной, представляющей любой конкретный объект. Для массивов элемент может быть только переменной типа Variant |
Группа | Обязательный элемент— имя семейства объектов или массива |
Инструкции | Необязательный элемент — инструкции, которые выполняются для каждого элемента группы |
Ход работы:
1. Создать программу на языке VBA, согласно выбранному варианту.
2. Сохранить книгу на диске под именем Lab_rab_4
Задания:
- Вычислить число сочетаний из n по m по формуле , где n!=1*2*3*…*n
- Вычислить значение выражения
- Вычислить число размещений из n по m по формуле , где n>m>0.
- Вычислить приближенно значение бесконечной суммы с точностью ∆=0,0001:
Требуемая точность будет достигнута, если очередное слагаемое оказалось по модулю меньше, чем ∆.
- Вычислить приближенное значение бесконечной суммы с точностью до 0,0005:
- Вычислить значение функции , для k=1,2,… Вычисления производить до тех пор , пока Y>=Z
- Найти приближенно с точностью до 0,01 , минимум функции F(x)=ax2+bx+c на отрезке x1<=x<=x2
- Вычислить бесконечную сумму с точностью до 0,001
- Вычислить бесконечную сумму с точностью до 0,0001
- Вычислить значение выражения (9+(9+…+(9+91/2)1/3 …)1/(m-1))1/m . Число m ввести с клавиатуры.
Лабораторная работа № 5
«Программирование алгоритмов с массивами на языке VBA»
Цель: Изучить основные методы программирования массивов на языке VBA.
Краткие теоретические сведения
Массив (аггау) — это группа однотипных переменных, которые объединены одним общим именем. Их можно считать одной из разновидностей переменных. Отличие состоит в том, что в массивах можно хранить не одно, а несколько значений. Доступ к заданному элементу массива осуществляется с помощью индекса. Синтаксис объявления массива отличается от синтаксиса объявления переменной тем, что здесь требуется указать также размерность массива и границы изменения индексов. Ниже представлен пример объявления массива:
Дата добавления: 2019-09-13; просмотров: 194; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!