Баннер
Баннер

Программирование циклов

Оглавление
Программирование циклов
Оператор While
Оператор Do While
Оператор Do Loop Until
Оператор For
Примеры решения задач
Пример 2
Пример 3
Все страницы

Программирование циклов на языке Visual Basic for Application

 

Организация выполнения повторяющихся действий в VBA может быть выполнена несколькими операторами, которые условно разделяют на цикл-пока, цикл-до, цикл-для.

 


Оператор While

Общий вид оператора While:

While выражение

[инструкции]

Wend

Оператор While предназначен для организации цикла-пока.

Инструкции будут выполняться пока выражение будет истинно.

Пример. Вычислить сумму чисел от 0 до 100.

Решение.

Sub сумма1()

Dim x, s As Double

x = 0

s = 0

While x <= 100

s = s + x

x = x + 1

Wend

MsgBox ("s=" + Str(s))

End Sub

Пояснение решения.

В переменной s накапливается значение суммы.


 


 

Оператор Do While

Общий вид оператора Do While:

Do [While выражение]

[инструкции]

[Exit Do]

[инструкции1]

Loop

Оператор Do While предназначен для организации цикла-пока.

Инструкции будут выполняться пока выражение будет истинно. Конструкция Exit Do предназначена для преждевременного выхода из цикла.

Пример. Вычислить сумму чисел от 0 до 100.

Решение.

Sub сумма2()

Dim x, s As Double

x = 0

s = 0

Do While x <= 100

s = s + x

x = x + 1

Loop

MsgBox ("s=" + Str(s))

End Sub


Оператор Do Loop Until

Общий вид оператора Do Loop Until:

Do

[инструкции]

[Exit Do]

[инструкции1]

Loop [Until выражение]

Оператор Do Loop Until предназначен для организации цикла-до.

Инструкции будут выполняться до момента, когда выражение станет истинным. Конструкция Exit Do предназначена для преждевременного выхода из цикла.

Пример. Вычислить сумму чисел от 0 до 100.

Решение.

Sub сумма3()

Dim x, s As Double

x = 0

s = 0

Do

s = s + x

x = x + 1

Loop Until x > 100

MsgBox ("s=" + Str(s))

End Sub

 


Оператор For

Общий вид оператора For:

For счетчик = начальное_знач To конечное_знач [Step шаг]

[инструкции]

[Exit For]

[инструкции1]

Next [счетчик]

Оператор For предназначен для организации цикла-для.

Инструкции будут выполняться определенное количество раз, задаваемое в счетчик, начиная с начального значение (начальное_знач) до конечного значения (конечное_знач) с некоторым шагом (шаг). Конструкция Exit For предназначена для преждевременного выхода из цикла.

Пример. Вычислить сумму чисел от 0 до 100.

Решение.

Sub сумма4()

Dim x, s As Integer

s = 0

For x = 0 To 100

s = s + x

Next x

MsgBox ("s=" + Str(s))

End Sub


Примеры решения задач

Пример 1. Представить таблицу квадратов чисел от 2 до 10.

Решение.

Для отображения результатов воспользуемся Excel и для доступа к ячейкам функцией Cells (номер_строки, номер_колонки).

Sub квадраты()

Dim x

Cells(2, 1).Value = "x"

Cells(3, 1).Value = "x^2"

For x = 2 To 10

Cells(2, x).Value = x

Cells(3, x).Value = x ^ 2

Next x

End Sub



Пример 2. Составить программу определения наибольшего общего делителя (НОД) двух натуральных чисел.

Решение.

Наибольший общий делитель двух натуральных чисел — это самое большое натуральное число, на которое они делятся. Например, у чисел 12 и 18 наибольшие делители: 2, 3, 6. наибольшим общим делителем является число 6. Это записывается так:

НОД(12, 18) = 6.

Идея алгоритма Евклида для нахождения НОД основана на том свойстве, что если M>N, то

НОД(M, N) = НОД(M-N, N).

Иначе говоря, НОД двух натуральных чисел равен НОД их положительной разности и меньшего числа.

Sub Евклид()

Dim M, N, NOD

M = Cells(1, 2)

N = Cells(2, 2)

While M <> N

If M > N Then

M = M - N

Else

N = N - M

End If

Wend

NOD = M

Cells(3, 2).Value = NOD

End Sub


Пример 3. Построить график функции: улитку Паскаля.

Улитка Паскаля задается следующим образом:

x=A*cos(t)+B*cos(t)

y=A*cos(t)sin(t)+B*sin(t), A>B, B>0, 0<=t<2*Pi

Решение.

1. Подготовить данные в электронной таблице

2. Ввести код программы.

Sub улитка_паскаля()

Dim a, b, Pi, t As Double

Dim i As Integer

a = Cells(1, 2)

b = Cells(2, 2)

Pi = 3.14

i = 2

t = 0

While t <= 2 * Pi

x = a * Cos(t) + b * Cos(t)

y = a * Cos(t) * Sin(t) + b * Sin(t)

Cells(3, i).Value = x

Cells(4, i).Value = y

t = t + 0.1

i = i + 1

Wend

End Sub

3. Построить график с помощью мастера диаграмм, выбрав точечную диаграмму.

4. Изменить данные a и b.

A=2

B=1

5. Перезапустить макрос.



Читайте также:

Добавить комментарий


Защитный код
Обновить




Разделы



Главная VBA Программирование циклов