Do
Операторы
Loop While условие
Если условие принимает значение False, то осуществляется выход из цикла, в противном случае работают операторы цикла. Отличие от предыдущего в том, что эта структура при любом значении условия отработает всегда хотя бы один раз.
Начало цикла
Операторы
Условие True
False
Конец цикла
Cтруктуры Do Until … Loop и Do … Loop Until
Синтаксис Do Until условие
Операторы
Loop
Если условие равно False, то выполняются операторы цикла, в противном случае осуществляется выход из цикла. Если с самого начала условие равно True, то цикл не выполнится ни разу.
Синтаксис
Do
операторы
Loop Until условие
Если условие равно False, то выполняются операторы цикла, в противном случае осуществляется выход из цикла. Если условие равно True, то цикл будет выполнен хотя бы один раз.
Начало цикла
Операторы
Условие False
True
Конец цикла
Пример:
Вычислить приближённо ln(x) для значения -1<x<=1, как вычисление суммы убывающего ряда:
|
|
Ln(1+x)=x- , где каждый элемент последовательности
вычисляется по формуле a =-a * , где I=1,2,3,4,……; a =x
Вычисления проводить до тех пор, пока , где e=0.0001
Ввод х,e
А=х: S=0: I=1
Пока Abs(a)>e
S=S+A
A=-A*
I=I+1
ВсёЦикл
Вывод S,log(1+x)
Реализация этой задачи с помощью 4 видов цикла:
Do while …. Loop | Do…. Loop while |
Dim x As Single, s As Single, i As Integer Dim a As Single, e As Single x = 0.5 e = 0.0001 s = 0 a = x i = 1 Do While Abs(a) > e s = s + a a = -a * x * i / (i + 1) i = i + 1 Loop MsgBox Str(s) MsgBox Log(1.5) | Dim x As Single, s As Single, i As Integer Dim a As Single, e As Single x = 0.5 e = 0.0001 s = 0 a = x i = 1 Do s = s + a a = -a * x * i / (i + 1) i = i + 1 Loop While Abs(a) > e MsgBox Str(s) MsgBox Log(1.5) |
Ответы: s=0.4055323 log(1.5)=0.405465108108164
Do until…..loop | Do ….loop until |
Dim x As Single,s As Single,i As Integer Dim a as Single,e As Single x = 0.5 e = 0.0001: s = 0: a = x i = 1 Do s = s + a a = -a * x * i / (i + 1) i = i + 1 Loop Until Abs(a) < e MsgBox Str(s) MsgBox Log(1.5) Ответы: s=0.4055323 | Dim x As Single, s As Single, i As Integer Dim a as Single, e As Single x = 0.5 e = 0.0001: s = 0: a = x i = 1 Do Until Abs(a) < e s = s + a a = -a * x * i / (i + 1) i = i + 1 Loop MsgBox Str(s) MsgBox Log(1.5) og(1.5)=0.405465108108164 |