Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка VB_последний.doc
Скачиваний:
2
Добавлен:
24.08.2019
Размер:
395.78 Кб
Скачать

2. Оператор цикла do ... Loop (цикл с условием)

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

Например, если x изменяется по закону xi = xi-1 + 2, то шаг изменения переменной известен и равен 2, если же x изменяется по закону xi = 2xi-1, то задан закон изменения переменной.

Оператор цикла DO ... LOOP имеет две формы записи (с проверкой условия в начале цикла и с проверкой условия в конце цикла):

1) Do условие

операторы тела цикла

Loop

2) Do

операторы тела цикла

Loop условие

Условие может быть двух видов:

- с ключевым словом While (условие продолжения цикла);

- с ключевым словом Until (условие завершения цикла).

Пример.

Вычислить квадраты целых чисел от 1 до 10, используя оператор цикла DO ... LOOP в разных вариантах его записи.

а)

‘ Объявление типа переменной цикла n

Dim n As Integer

n=1 ‘ начальное значение переменной цикла

Do While n <= 10 ' начало цикла

y=n^2

Print n, y

n = n + 1 'закон изменения переменной цикла

Loop

б)

Dim n As Integer

n= 1

Do Until n>10

y=n^2

Print n, y

n=n+1

Loop

в)

Dim n As Integer

n=1

Do

y=n^2

Print n, y

n=n+ 1

Loop While n <= 10

г)

Dim n As Integer

n=l

Do

y=n^2

Print n, y

n=n+1

Loop Until n > 10

Оператор Exit

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

For х = а То b [ Step с ]

операторы тела цикла

[Exit For]

операторы тела цикла

Next [х]

или

Do условие

операторы тела цикла

[Exit For]

операторы тела цикла

Loop

Например:

For n = 100 To 1 Step -10

k = n * 2

If k < 50 Then Exit For

Next

Print k

Циклы с незаданным числом повторений

Если число повторений цикла не задано, то для программирования таких циклом используется оператор DO ... LOOP.

Пример. Составить программу для поиска наименьшего числа Фибоначчи, большего заданного натурального числа N (N >1).

Последовательностью чисел Фибоначчи называется последовательность чисел, составленная по закону:

F0=1

F1=1

Fi=Fi-1+Fi-2 для i= 2, 3, 4,…

Данный пример иллюстрирует простой циклический алгоритм с незаданным числом повторений (пока F<N).

Private Sub Command1_Click()

Dim N As Integer, F As Integer

Dim F0 As Integer, F1 As Integer

N = Val(InputBox("Задайте число N", "Ввод числа N"))

F0 = 1

F1 = 1

F = 1 'Число Фибоначчи

Do While F <= N 'Условие продолжения цикла

F = F0 + F1 'Вычисление числа Фибоначчи

F0 = F1 'Переобозначение переменных

F1 = F

Loop

MsgBox "Наименьшее число Фибоначчи, большее N=" & N & "- это " & F

End Sub

Массивы

Для хранения величин кроме простых переменных можно использовать массивы. Массивы – это собранное воедино множество переменных одного типа с общим именем, но с разными индексами. Каждая такая переменная называется элементом массива. Например, Х - это простая переменная, а Xi - индексированная переменная, называемая массивом.

Количество хранящихся в массиве элементов называется размером массива. Размер массива ограничен объемом оперативной памяти и типом данных элементов массива. Visual Basic позволяет использовать не только одномерные массивы (Хi), но и многомерные (например, двухмерный массив Zij). В данном случае речь идет о размерности массива.

В программе массив может быть объявлен с помощью оператора Dim.

Синтаксис оператора имеет вид:

D im имя нижняя Тo верхняя [As тип переменной]

массива граница граница

индекса индекса

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

Например,

Dim х(1 Тo 10) As Integer ‘ нижняя граница равна единице, верхняя - 10

Dim х(10) ‘ нижняя граница по умолчанию равна нулю

Dim z(1 To 5, 1 To 6) ‘ объявление двухмерного массива, нижние границы заданы

Dim z(5,6) ‘ объявление двухмерного массива без задания нижних границ

В Visual Basic существуют массивы фиксированного размера (статические) и динамические массивы.

Массив, число элементов которого задано явно, называется статическим массивом (например, Х(5)). Статический массив имеет неизменный размер, заданный при его объявлении.

Массив, число элементов которого задано не явно, называется динамическим массивом. Динамические массивы могут изменять размер в процессе выполнения. Такой массив в программе должен быть объявлен дважды. Сначала он объявляется оператором Dim с незаданной верхней границей (например, Dim х() As Single), а затем, после ввода размера массива, он переобъявляется оператором ReDim с теперь уже заданной верхней границей (например, ReDim х(n) As Single).

Массивы вводятся, выводятся и обрабатываются в цикле. Если массив одномерный, то для этого используются простые циклы – циклы с одной переменной цикла. Если массив двухмерный, то необходимо организовать сложные циклы (цикл в цикле), здесь уже будет две переменных цикла.