Краткие теоретические сведения



Циклы предназначены для многократного выполнения группы инструкций. В 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

Задания:

  1. Вычислить число сочетаний из n по m по формуле  , где n!=1*2*3*…*n
  2. Вычислить значение выражения
  3. Вычислить число размещений из n по m по формуле , где n>m>0.
  4. Вычислить приближенно значение бесконечной суммы с точностью ∆=0,0001:

Требуемая точность будет достигнута, если очередное слагаемое оказалось по модулю меньше, чем ∆.

  1. Вычислить приближенное значение бесконечной суммы с точностью до 0,0005:

  1. Вычислить значение функции  , для k=1,2,… Вычисления производить до тех пор , пока Y>=Z
  2. Найти приближенно с точностью до 0,01 , минимум функции F(x)=ax2+bx+c на отрезке x1<=x<=x2
  3. Вычислить бесконечную сумму  с точностью до 0,001
  4. Вычислить бесконечную сумму  с точностью до 0,0001
  5. Вычислить значение выражения (9+(9+…+(9+91/2)1/3 …)1/(m-1))1/m . Число m ввести с клавиатуры.

 

Лабораторная работа № 5

«Программирование алгоритмов с массивами на языке VBA»

Цель: Изучить основные методы программирования массивов на языке VBA.

 

Краткие теоретические сведения

Массив (аггау) — это группа однотипных переменных, которые объединены од­ним общим именем. Их можно считать одной из разновидностей переменных. Отличие состоит в том, что в массивах можно хранить не одно, а несколько зна­чений. Доступ к заданному элементу массива осуществляется с помощью индекса. Синтаксис объявления массива отличается от синтаксиса объявления перемен­ной тем, что здесь требуется указать также размерность массива и границы изме­нения индексов. Ниже представлен пример объявления массива:


Дата добавления: 2019-09-13; просмотров: 194; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!