Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
588
Добавлен:
18.09.2019
Размер:
377.34 Кб
Скачать

Разница между вариантами операторов 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

Соседние файлы в папке лекции