Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция по Ms Access.doc
Скачиваний:
92
Добавлен:
19.05.2015
Размер:
1.86 Mб
Скачать

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

Вычисления проводить до тех пор, пока , где=0.0001

Ввод х,

А=х : S=0: I=1

Пока Abs(a)>

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