ЧАСТЬ 3

ИНФОРМАТИКА

Электронное учебно-методическое пособие

 

 
 



3.10.5. Операторы повтора

  1. Оператор цикла For_Next – это наиболее широко используемый оператор, позволяющий организовать циклический процесс [6].

В этом операторе заранее известно число повторений цикла. Заданы начальное, конечное значения параметра (переменной) цикла и шаг изменения параметра цикла. Он имеет вид:

For <переменная цикла> = <начало> То <конец> [Step<шаг>]

<блок операторов 1> тело цикла

[Exit For] прекращение цикла по внутреннему условию

<блок операторов 2> – повторяется определённое число раз

Next <переменная цикла>


Пример 1: Найти сумму элементов массива:

Dim A As Variant

A = Array (1, 4, 12, 23, 34, 3, 24)

S = 0

For i = LBound (A) to UBound (A)

S = S+A(i)

Next i


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

Sub Factor ()

Const n as Integer=20, Fact as Integer=1

Dim i as Integer

For i=1 to n

Fact = Fact*i

Next i

MsgBox Format (Fact, “############”)

Будет выведено 2432902008176640000

End Sub


Пример 3: Найти сумму элементов выделенного диапазона

With Selection

n=.Rows.Count

m=.Column.Count

End With : S=0

For i=1 to n

For j=1 to m

S=S+selection.Cells(i,j).value

Next j

Next i

with Section.End(xlDown) Здесь под 1 столбцом выделенного

.offset (1,0).value = “Сумма” диапазона выводится «сумма»,

.offset (1,1).value = S ‘а в соседней клетке значение

End With

  1. Оператор Do_Loop является вторым оператором, позволяющим организовать циклический процесс.

Он создаёт логически управляемый цикл. Имеет 4 модификации:

а) условие True в начале цикла

Do [While <условие>] – выполняется, пока условие истинно

[<блок операторов>]

[Exit Do]

[<блок операторов>]

Loop

б) условие True в конце цикла:

Do

[<блок операторов>]

[Exit Do]

[<блок операторов>]

Loop [While <условие>]

в) условие False в начале цикла:

Do [Until <условие>] – выполняется, пока условие

[<блок операторов>] не станет истинным

[Exit Do]

[<блок операторов>]

Loop

г) условие False в конце цикла:

Do

[<блок операторов>]

[Exit Do]

[<блок операторов>]

Loop [Until <условие>]


Пример 1:

Option Explicit

Sub Do_Rnd()

Dim a As Single: Dim I as Integer

Randomize

Do While True

a = Rnd()

Debug.Print a ‘печать случайного числа

If a>0.99 Then Exit Do

Loop

End Sub


Пример 2: Вычислить сумму в каждом столбце матрицы

Sub CommandButton1_Click()

Dim i, j, s(3), x(5, 3) As Integer

For j = 0 To 2

s(j) = 0

For i = 0 To 4

x(i, j) = Cells(i + 1, j + 1)

s(j) = s(j) + x(i, j)

Next i

Лист1.Range("E" & i + 1).Value = s(j)

Next j

End Sub

Пример 3: Найти сумму всех вводимых чисел.

S=0: Do

x=InputBox (“Введите число”)

If Not IsNumeric (x) then Exit Do

S=S+x

Loop


Пример 4: Код, ожидающий правильного ввода пароля

Do : Пароль = InputBox(“Введите пароль”)

Loop Until Пароль = “Привет”

 

 


© Сибирская государственная геодезическая академия (СГГА), 2011