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

3.6.2. Вложенные циклы

Часто бывает так, что при повторениях изменяется не одна величина, а две (или даже больше). И при каждом значении одной величины другая величина «пробегает» все свои значения.

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

For ИмяА = ЗначениеА1 To ЗначениеА2 [Step Значение А3]

For ИмяБ = ЗначениеБ1 To ЗначениеБ2 [Step Значение Б3]

Повторяющиеся Операторы

Next [ ИмяБ]

Next [ ИмяА]

Здесь ИмяБ, ИмяА – индексы двух циклов.

Пример 3.17

Составить программу печати таблицы чисел (табл. 3.7).

Таблица 3.7

1

2

3

4

5

1

4

9

16

25

1

8

27

64

125

1

16

81

256

625

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

Private Sub Command1 _ Click()

Dim i As Integer, j As Integer

Ni = 4: nj = 5: Cls

For i= 1 to ni

For j = 1 to nj

Print j^i,

Next: Print

Next

End Sub

Экранная форма для данного примера проста: запуск программы инициируется нажатием единственной командной кнопки. Результат показан на рис 3.10.

Рис. 3.10. Результат работы программы с вложенными циклами

3.6.3. Цикл с условием

Цикл с условием – это многострочный оператор, первая строка которого начинается со слова DO (выполнить), а последняя строка – с ключевого слова Loop(Петля).

Конструкция цикла с условием имеет две формы.

Форма 1:

Do Условие

Повторяющиеся операторы

Loop

Форма 2:

Do

Повторяющиеся операторы

Loop Условие

Повторяющиеся операторы – это любые операторы языка, которые должны выполняться многократно.

Условие бывает двух типов:

  • с ключевым словом While;

  • с ключевым словом Until.

Таким образом, возможны четыре варианта:

1

2

3

4

Do While …

Loop

Do Until …

Loop

Do

Loop While …

Do

Loop Until …

Примеры использования операторов цикла с условием

Private Sub Command _Click()

Dim M As Single, I As Integer

M = 100

I = 0

Do

I = I + 1

M = M – M/10

Loop Until M < 50

Print “I = ”;I, “M = ”; M

End Sub

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

Очевидно, что вместо Until M < 50 можно написать While M >= 50.

Если начальное значение А будет равно 45, будет ошибочно напечатано:

I = 1 M = 40.5, хотя М должно остаться равным 45.

Чтобы программа так не ошибалась, условие нужно перенести из последней строки цикла в его первую строку:

Do Until M<50

…….

…….

…….

Loop

Пример 3.18

Необходимо вычислить и напечатать квадраты чисел натурального ряда: 1,2,3,4,5,6,…

Private Sub Command _Click()

Dim i As Integer, M As Integer

I = 0

Do

I = I + 1

M = I^2

Loop While M < 100

Print “I = ”;I, “M = ”; M

End Sub

Вычисление будет продолжаться, пока значение переменной М не достигнет установленного нами значения, например 100. В итоге будет напечатано: I = 10 M = 100.

Соседние файлы в папке Задания и примеры