Sub Сумма()

Dim sum1 As Integer, sum2 As Integer, i As Integer

Randomize

‘решение задачи с помощью цикла с предусловием

i = 10

Do While i > 0

‘цикла выполняется, пока логическое условие истинно

sum1 = sum1 + Int((10 * Rnd) + 1)

i = i - 1

Loop

MsgBox "Сумма чисел=" & sum1

‘решение задачи с помощью цикла с постусловием

i = 10

Do

‘цикла выполненяется, пока логическое условие ложно

sum2 = sum2 + Int((10 * Rnd) + 1)

i = i - 1

Loop Until i = 0

MsgBox "Сумма чисел=" & sum2

End Sub

Особенностью интерпретатора VBA является то, что значения переменных числовых типов перед выполнением процедуры полагаются равными 0. Поэтому в программе отсутствуют команды присваивания вида: sum1 = 0 и sum2=0.

Пример 2. Найти максимальное из n введенных с клавиатуры чисел. Приведены два варианта решения задачи с использованием циклов разных видов.

Option Explicit

Sub Max_n_while()

Dim n As Byte, k As Single, i As Byte, Max As Single

n = Val(InputBox("Введите количество чисел"))

i = 1

Do While i <= n

k = Val(InputBox("Введите число", "Ввод чисел"))

If i = 1 Then Max = k

If k > Max Then Max = k

i = i + 1

Loop

MsgBox "Наибольшее из чисел " & Max

End Sub

Option Explicit

Sub Max_n_until()

Dim n As Byte, k As Single, i As Byte, Max As Single

n = Val(InputBox("Введите количество чисел"))

i = 1

Do Until i > n

k = Val(InputBox("Введите число", "Ввод чисел"))

If i = 1 Then Max = k

If k > Max Then Max = k

i = i + 1

Loop

MsgBox "Наибольшее из чисел " & Max

End Sub

Если из текста программ удалить строку: If i = 1 Then Max = k, то программа будет работать корректно только в случае, когда хотя бы одно вводимое число неотрицательно. Это объясняется тем, что начальное значение переменной Max считается равным 0.

Пример 3. Найти сумму n первых членов ряда 1, 1/2, 1/3,... 1/n,…

Option Explicit

Sub Summ_n()

Dim n As Byte, i As Byte, sum As Single

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

For i =1 To n

sum = sum + 1 / i

Next

MsgBox "Сумма " & sum

End Sub

Пример 4. Найти сумму всех четных чисел в первой десятке:

Option Explicit

Sub Summa ()

Dim j As Integer, sum As Integer

For j = 2 To 10 Step 2

sum = sum + j

Next

MsgBox "Сумма равна " & sum

End Sub

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

Sub Пример()

Dim d As Integer

Do

d = Val(InputBox("Введите положительное чиcло", "Ввод числа"))

Loop Until d > 0 And (IsNumeric(d))

MsgBox "Введеное число " & d


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: