Разница между вариантами операторов Do
Разница проявляется:
-
Между While и Until. Здесь соображения удобства. Что удобнее – указывать компьютеру, когда цикл нужно продолжать или когда его нужно завершать?
-
В том, куда поставить условие – после Do или после Loop. В первом случае можно придумать такое условие, при котором тело цикла не выполнится ни разу. Во втором случае, каково бы ни было условие, тело цикла хотя бы раз, да выполнится. Часто эти отличия малосущественны, поэтому можно выбирать оператор по вкусу.
|
Пример 2
Рассчитать сумму ряда у = х + х2 + х3 + ...+ х4 с помощью Do...Loop
Option Explicit
Sub p1() Dim x,y, n y = 0 : n = 1 x = InputBox ("x=") Do While n <=4 y = y + 1/x^n n = n + 1 Loop Sheets("Лист1").Cells(n,2) = sum
End Sub
|
|
Пример 3
Получить таблицу и сумму значений функции
,
где
,
h = 0,5
x,y,сумму вывести на рабочий лист. Использовать оператор Do...Loop.
Sub pr2()
Dim x As Single, y As Single, s As Single, n As Single
x = -1: n = 1: s = 0
Do While x <= 2
y = x + 2 / (x ^ 2 + 1)
Sheets("лист1").Cells(n, 1) = x
Sheets("лист1").Cells(n, 2) = y
x = x + 0.5
n = n + 1
s = s + y
Loop
Sheets("лист1").Cells(n, 2) = s
End Sub
|
Пример 4
Рассчитать сумму ряда
По другому это выражение моно записать
в виде
Х задать вводом с клавиатуры.
Расчет выполнять, пока выполняется
условие
Option Explicit
Sub p1() Dim x,y,sum, n Sum = 0 : n = 1 x = InputBox ("x=") Do While 1/(x^n)>=0.0001 y = 1/x^n sum = sum + y Sheets("Лист1").Cells(n,1) = y Sheets("Лист1").Cells(n,2) = sum n = n + 1 Loop End Sub
|
|
|
Пример 5 В переменную а записать диаметр резьбы, выбранный из ряда 6,8,10,12. При неправильном вводе (например, 5) программа должна возвратиться к началу, чтобы снова была возможность правильно ввести диаметр резьбы.
Option Explicit Sub p2() Dim a, p p = 1 Do While p = 1 a = InputBox("Введите диаметр резьбы 6;8;10;12") If a = 6 or a = 8 or a = 10 or a = 12 Then p = 2 ' если резьба соответствует Else p = 1 ' если резьба введена неправильно, то при 'возврате к началу цикла условие (= 1 1) 'выполняется и снова повторяется цикл End If Loop |
|
Пример 6
Введите N произвольных значений х с клавиатуры . Минимальное из них вывести на экран.
;число циклов
;ввод Х с клавиатуры
;присваивание 1-го значения Xmin
оставшееся количество циклов, т.к. один раз значение Х введено
счетчик цикла
проверка условия выполнения цикла
изменение значение счетчика при каждом проходе цикла
ввод Х с клавиатуры
Сравнивание Хmin с очередным Х
Если Хmin>X, то Хmin=X



