Оператор цикла с параметром For – Next

Оператор цикла For – Nextиспользуется, когда заранее известно, сколько раз должно повториться тело цикла.

Общий вид оператора цикла с параметром выглядит следующим образом:

For Счетчик = Начальное значение To Конечное значение Step Шаг

Блок операторов

Next Счетчик

Цикл For – Next обеспечивает выполнение блока операторов (тела цикла) n раз при последовательном изменении счетчика от начального до конечного значения с указанным шагом изменения.

Оператор цикла с параметром For – Next - student2.ru .

Если Step Шаг в конструкции отсутствует, то по умолчанию считается, что шаг равен 1.

Пример 1

Задано натуральное число n. Вычислить n! (факториал n).

Напомним, что n! = 1×2×3×4×…×n. Таким образом, в данном примере нужно вычислить произведение. Для его вычисления существует следующее правило: перед организацией цикла необходимо задать начальное значение произведения, равное числу, не влияющему на результат умножения на первом шаге, т.е 1, а затем в цикле предусмотреть оператор, который производит накапливание произведения.

Например, 5! = 1×2×3×4×5 = 120.

Программный код

Option Explicit

Sub PR7() ’ начало процедуры

Описание переменных с указанием их типов
Оператор цикла с параметром For – Next - student2.ru Dim n As Integer

Dim F As Double

Dim i As Integer

n = Val(InputBox("Введите n")) ‘ ввод числа n с клавиатуры

F = 1 ’ начальное значение произведения

For i = 1 To n ’ начало цикла

F = F * I ’оператор накапливания произведения

Next I ’ конец цикла

MsgBox ("Факториал числа " & n & "=" & F ’ вывод результата на экран

End Sub ’ конец процедуры

Пример 2

Вычислить y=sin0.1+sin0.2+sin0.3+…+sin10

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

Программный код

Option Explicit

Sub PR8()

Dim x As Double, y As Double, summa As Double ’описание переменных

summa = 0 ’ начальное значение суммы

For x = 0.1 To 10 Step 0.1 ’ начало цикла

summa = summa + Sin(x) ’оператор накапливания суммы

Next x ’ конец цикла

MsgBox ("Сумма=" & summa) ’ вывод результата на экран

Cells(1,1)= "Сумма=" & summa ’ вывод результата в ячейку А1 в Excel

End Sub

Пример 3

Задан натуральный ряд чисел. Вычислить сумму нечетных чисел данного ряда.

В этой программе производится вычисление суммы (по предложенному образцу).

Кроме того, для вывода всех чисел этого ряда в Excel до организации цикла нужно задать номер строки, с которой начнется запись 1-го значения ряда, а в цикле предусмотреть оператор (счетчик), который будет переводить курсор в нижележащую ячейку для записи следующего значения ряда до тех пор, пока не будет записано последнее значение.

Программный код

Option Explicit

Sub PR10()

Dim N As Integer, I As Integer, S As Double, K As Integer

K = Val(InputBox("Введите K")) ’ количество членов ряда

Cells(1,1)= ”Ряд” ’ запись в ячейку А1 текста Ряд

N=2 ’ номер строки, с которой начнется запись 1-го значения

S = 0 ’ начальное значение суммы

For i = 1 To n step 2 ’ цикл для перебора нечетных чисел ряда

Cells(N,1)= I ’ запись членов ряда, начиная с 1-го, в 1-й столбец Excel

S = S + I ’суммирование членов ряда

N = N +1 ’ счетчик строк

Next I ’ конец цикла

Cells(1,2)= “Сумма ряда=” & S ’ запись суммы ряда в ячейку В1 Excel

MsgBox (“Сумма ряда=” & S) ’ вывод результата суммы на экран

End Sub

Оператор выбора Select Case

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

Select Case Тестируемое выражение

Case Условие выбора 1

Блок операторов 1

Case Условие выбора 2

Блок операторов 2

……………

Case Условие выбора n

Блок операторов n

Case Else

Блок операторов

End Select

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

Задача. Вычислить размер комиссионных в зависимости от объема продаж. Процент комиссионных приведен в табл. 17.

Таблица 17

Начисление комиссионных

Объем продаж, тыс. руб. Комиссионные, %
От 0 до 9999
От 10000 до 39999
40000 и более

Программный код

Option Explicit

Sub PR6()

Dim opr As Double, prem As Double

opr = Val(InputBox("Введите объем продаж"))

Select Case opr

Case 0 To 9999

prem = 0.08 * opr

Case 10000 To 39999

prem = 0.1 * opr

Case Is >= 40000

prem = 0.14 * opr

End Select

MsgBox ("Комиссионные=" & prem)

End Sub

Слово Is, используемое в программе, является ключевым словом VBA, обозначающим тестируемое выражение в операторе Case.

В операторе Case допустимо использовать составные условия, подобно тому, как это делается в условном операторе.

Пример

Case 5, 6, 9 to 10, 13, 14, Is>=16

В этом операторе проверяется, принадлежит ли тестируемое выражение отрезку от 9 до 10, или равняется одному из значений: 5, 6, 13, 14, или оно не меньше 16.

Наши рекомендации