- •Федеральное агентство по рыболовству Балтийская государственная академия рыбопромыслового флота
- •Оглавление
- •Введение
- •Программирование на языке Visual Basic
- •Создание Windows-приложения
- •Переменные и константы
- •Объявление типа переменной
- •Комментарии в программных кодах
- •Выражения
- •Оператор присваивания
- •Функции
- •Математические функции
- •Финансовые функции
- •Системные функции InputВox и MsgBox
- •Вывод только значения переменной z
- •Строковые выражения и функции
- •Использование текстовых полей для ввода и вывода
- •Вывод на экранную форму с помощью оператора Print
- •Оператор If…Then для программирования ветвлений
- •Оператор Select Case
- •Программирование циклов с использованием операторов For…Next и Do…Loop
- •2. Оператор цикла do ... Loop (цикл с условием)
- •Оператор Exit
- •Циклы с незаданным числом повторений
- •Массивы
- •Работа с одномерным массивом
- •‘ Переобъявление динамического массива
- •Двухмерные массивы
- •Сортировка элементов массива
- •Работа с файлами последовательного доступа
- •Контрольные вопросы
- •Список литературы
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).
Массивы вводятся, выводятся и обрабатываются в цикле. Если массив одномерный, то для этого используются простые циклы – циклы с одной переменной цикла. Если массив двухмерный, то необходимо организовать сложные циклы (цикл в цикле), здесь уже будет две переменных цикла.