Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика (часть 2).doc
Скачиваний:
39
Добавлен:
03.05.2015
Размер:
1.22 Mб
Скачать

Оператор Do…Loop

Этот оператор используют, когда число повторений цикла заранее не известно, и оно зависит от условия.

Тело цикла выполняется неопределённое число раз, пока условие не вызовет выход из цикла.

Условие окончания цикла может проверяться в начале или в конце цикла.

Цикл, управляемый в начале:

DoWhile|UntilУсловие

[операторы]

Loop

Если в описании конструкций языка в качестве разделителя в списке параметров присутствует символ "|", то это значит, что в операторе можно использовать один из перечисленных параметров.

Если условие задаётся после служебного слова While, то цикл повторяется, если условие выполняется (логическое выражение принимает значение Да), иначе цикл завершается.

Если условие задаётся после служебного слова Until, то цикл повторяется, если условие не выполняется (логическое выражение принимает значение Нет).

В случае цикла, управляемого в начале, может оказаться, что цикл не будет выполняться ни одного раза.

Цикл, управляемый в конце:

Do

[операторы]

LoopWhile|UntilУсловие

В этом случае цикл будет выполняться, как минимум, один раз. Для преждевременного выхода из цикла используется оператор ExitDo

Пример 2.Требуется ввести числовое значение, принадлежащее диапазону от 10 до 99. Выход из цикла возможен только если пользователь введёт правильное значение.

Do Until ch <= 99 And ch >= 10

ch = InputBox("Введите число в диапазоне от 10 до 99 ")

Loop

Пример 3Вычислить значения функцииy=sinx+cosx, если известно, что -2*<=x<+2*и шаг измененияxравен/2

Private Sub Комманда1_Click()

Dim x As Single, y As Single

Const pi = 3.14

x = -2 * pi

Do While x <= 2 * pi

y = Cos(x) + Sin(x)

Print "x="; x, "y="; y

x = x + pi / 2

Loop

End Sub

Пример 4.Составить программу "Угадай число". Компьютер "загадывает" целое случайное число от 0 до 100. Пользователю даётся 10 попыток угадать число. При этом пользователю выдаются подсказки "Ваше число больше" или "Ваше число меньше". Если пользователь угадал число, то вывести количество попыток.

Private Sub Комманда1_Click()

Dim x As Byte, y As Byte, i As Byte

y = Rnd * 100

i = 1

Do

x = InputBox("введите число от 0 до 100")

If x > y Then

MsgBox "Ваше число больше"

ElseIf x < y Then

MsgBox "Ваше число меньше"

End If

i = i + 1

If i > 10 Then Exit Do

Loop Until x = y

If i <= 10 Then

Print "Правильно!!! Угадали за"; i; "попыток"

Print "Моё число "; y

Else

Print "Не угадали, моё число="; y

End If

End Sub

В последнем примере целесообразно выполнять проверку окончания в конце цикла, чтобы инициировать его выполнение в том случае, если заданное с помощью генератора случайных чисел число окажется равным нулю.

Задание

Составить приложение для вычисления 10 значений функции по заданной формуле. Диапазон изменения аргумента задан. Величину шага изменения аргумента подобрать самостоятельно. При необходимости учесть область допустимых значений. Значения параметров aиbпроизвольные. Для ввода параметровaиb, начального, конечного значений и шага изменения аргумента в форме предусмотреть текстовые поля.

Вариант 1

y=eax +abx +sinx(xизменяется от 0 до 2)

Вариант 2

Y=a(x2+bx)sinax+ab(xизменяется от 0 до 2)

Вариант 3

Y=cosa - x 2 +bx2 (xизменяется от 1 до 3)

a +x 2

Вариант 4

Y=aex+1+ln(a+x2) +b(xизменяется от -3 до +3)

Вариант 5

Y=bsinx+ax2+b(xизменяется от -до)

Вариант 6

Y=a(3√x-xb) (xизменяется от 1 до 27)

Вариант 7

Y=abx+bcosx+abx(xизменяется от 0 до 3)

Вариант 8

Y=√|1 –lnx| +axb(xизменяется от 1 до 10)

Вариант 9

Y=a√x/(a+bx2) (xизменяется от 0 до 20)

Вариант 10

Y=3√(ax2+bx+a/x) (xизменяется от 1 до 10)