Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Programmirovanie_Metod_2009_VVYeD.doc
Скачиваний:
6
Добавлен:
06.12.2018
Размер:
1.14 Mб
Скачать

Как выбрать, какой из циклов использовать в программе?

Ниже приведены основные правила, помогающие выбрать наиболее подходящий из этих операторов:

  1. если вам заранее известно число повторений тела цикла, лучше всего использовать оператор цикла For;

  2. если вам заранее не известно число повторений тела цикла и если окончание цикла зависит от выполнения некоторого условия, лучше использовать конструкции While…Wend, Do While…Loop или Do Until…Loop

  3. если необходимо, чтобы цикл всегда выполнялся хотя бы один раз, то используйте конструкции Do …Loop While или Do …Loop Until.

Примечания

  • Оператор break используется в теле цикла для преждевременного завершения его выполнения, например, по некоторому условию.

  • Оператор continue используется, для того чтобы прервать выполнение данного шага цикла и продолжить со следующего.

  • Операторы Exit Do и Exit For служат соответственно для преждевременного выхода из циклов Do и For.

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

3.3 ДЕМОНСТРАЦИОННЫЕ ПРИМЕРЫ

Пример 1

'Имя файла: From 1 to 20.vbs

'Вывод на экран чисел от 1 до 20 с шагом 2

For x=1 To 20 Step 2

s=s&vbCrLf&x

MsgBox "Последовательность от 1 до 20 с шагом 2: " & s

Next

Пример 2

'Имя файла: For_Next.vbs

'Вычислить сумму s=1+1/2+1/3+1/4+...+1/60

'C использованием конструкции Do ... Loop Until

option explicit

dim a, s

MsgBox "Вычисление суммы s=1+1/2+1/3+1/4+...+1/60"

s=0

For a=1 to 60

s=s+1/a

Next

MsgBox "s=1+1/2+1/3+1/4+...+1/60= "&s,,"Результат:"

Пример 3

'Имя файла: For_Step.vbs

'Вычисление значений функции y=x*x+3 при х изменяющемся от -12 до 12 с 'шагом 2

MsgBox "Вычисление значений функции y=x*x+3"&vbCrLf&_

"при х изменяющемся от -12 до 12 с шагом 2",,_

"Вычисление значений функции"

For i=-12 to 12 Step 2

s1=i*i+3

s="при x="&i&" y="&s1&vbCrLf&s

Next

MsgBox s,,"Значения функции y=x*x+3"

Пример 4

'Имя файла: While_Wend.vbs

'Вычислить сумму s=1+1/2+1/3+1/4+...+1/60

'C использованием конструкции While...Wend

option explicit

dim a, s

MsgBox "Вычисление суммы s=1+1/2+1/3+1/4+...+1/60"

a=1

s=0

While a<=60

s=s+1/a

a=a+1

Wend

MsgBox "s=1+1/2+1/3+1/4+...+1/60= "&s,,"Результат:"

Пример 5

'Имя файла: Do While__Loop.vbs

'Вычислить сумму s=1+1/2+1/3+1/4+...+1/60

'C использованием конструкции Do While...Loop

option explicit

dim a, s

MsgBox "Вычисление суммы s=1+1/2+1/3+1/4+...+1/60"

a=1

s=0

Do While a<=60

s=s+1/a

a=a+1

Loop

MsgBox "s=1+1/2+1/3+1/4+...+1/60= "&s,,"Результат:"

Пример 6

'Имя файла: Do__Loop While.vbs

'Вычислить сумму s=1+1/2+1/3+1/4+...+1/60

'C использованием конструкции Do Loop...While

option explicit

dim a, s

MsgBox "Вычисление суммы s=1+1/2+1/3+1/4+...+1/60"

a=1

s=0

Do

s=s+1/a

a=a+1

Loop While a<=60

MsgBox "s=1+1/2+1/3+1/4+...+1/60= "&s,,"Результат:"

Пример 7

'Имя файла: Do Until__Loop.vbs

'Вычислить сумму s=1+1/2+1/3+1/4+...+1/60

'C использованием конструкции Do Until...Loop

option explicit

dim a, s

MsgBox "Вычисление суммы s=1+1/2+1/3+1/4+...+1/60"

a=1

s=0

Do Until a>60

s=s+1/a

a=a+1

Loop

MsgBox "s=1+1/2+1/3+1/4+...+1/60= "&s,,"Результат:"

Пример 8

'Имя файла: Do __Loop Until.vbs

'Вычислить сумму s=1+1/2+1/3+1/4+...+1/60

'C использованием конструкции Do ... Loop Until

option explicit

dim a, s

MsgBox "Вычисление суммы s=1+1/2+1/3+1/4+...+1/60"

a=1

s=0

Do

s=s+1/a

a=a+1

Loop Until a>60

MsgBox "s=1+1/2+1/3+1/4+...+1/60= "&s,,"Результат:"

Пример 9

'Имя файла: simple.vbs

'Пусть a и b - положительные вещественные числа и a>b.

'Данная программа находит такое минимальное натуральное x, что x*b>a

option explicit

dim a, b, x

a=CDbl(InputBox("Введите положительное вещественное значение a: ","Окно ввода:"))

If a>0 Then

b=CDbl(InputBox("Введите положительное вещественное значение b,

меньшее чем "&a,"Окно ввода:"))

If ((a>b)And(b>0)) Then

x=1

While x*b<=a

x=x+1

Wend

MsgBox "a="&a&" b="&b&vbCrLf&_

"Найдено минимальное натуральное"&_

"x="&x&", при котором x*b>a",,"Результат:"

Else

MsgBox "Вы ввели неправильное значение ",vbCritical,"Ошибка:"

End If

Else

MsgBox "Вы ввели неправильное значение ",vbCritical,"Ошибка:"

End If

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]