- •Оглавление
- •Введение
- •Лабораторная работа №1 Знакомство со средой Visual Basic. Программирование вычислений.
- •Окно программного кода
- •Задание
- •Лабораторная работа № 2 Проектирование форм приложений
- •Свойства формы
- •Основные элементы управления
- •Далее разместите в форме командную кнопку, задав для неё свойства
- •Проектирование формы
- •Dim X As Single
- •Задание
- •Лабораторная работа № 3 Разветвляющийся вычислительный процесс (ветвление)
- •Оператор if
- •Оператор Select Case
- •Задание
- •Лабораторная работа № 4 Циклический вычислительный процесс (повторение)
- •Оператор For…Next
- •Оператор Do…Loop
- •Задание
- •Лабораторная работа № 5 Сложные циклические вычислительные процессы. Обработка массивов.
- •Массивы
- •Многомерные массивы
- •Задание
- •Лабораторная работа № 6 Обработка строковых данных
- •Dim Symbol As String * 1, s As String * 4 '3
- •Dim Symbol As String * 4 '3
- •Задание
- •Лабораторная работа №7 Создание пользовательского интерфейса в Visual Basic
- •Задание
- •Список литературы
Лабораторная работа № 5 Сложные циклические вычислительные процессы. Обработка массивов.
Сложными называются такие циклические вычислительные процессы, которые состоят из двух и более включённых друг в друга циклов. При этом циклы, охватывающие другие циклы, называются внешними, а циклы, включённые во внешние, называются внутренними.
Особенность выполнения сложного цикла состоит в том, что одно выполнение внешнего цикла включает в себя многократное выполнение внутреннего цикла. При этом в процессе очередного выполнения внешнего цикла управляющая переменная внутреннего цикла сначала принимает начальное значение, а затем поочерёдно принимает все положенные ей значения.
Пример 1 Вычислить значения функции двух переменных
Z=(X^2+Y^2)/(3*x*Y), если Х изменяется 0т 10 до 20 с шагом 2, а Y от 5 до 10 с шагом 1.
….
x = 10
Do While x <= 20
y = 5
Do While y <= 10
z = (x ^ 2 + y ^ 2) / (3 * x * y)
Print "x="; x, "y="; y, "z="; z
y = y + 1
Loop
x = x + 2
Loop
…
В приведённом примере – во внешнем цикле управляющая переменная – x, во внутреннем –Y. В приведённом примере внешний цикл выполняется 6 раз. Внутренний цикл выполняется всего 36 раз (для каждого значения управляющей переменной внешнего цикла внутренний цикл выполняется 6 раз).
Массивы
Массив – это упорядоченная совокупность элементов одного типа. Каждый элемент в массиве имеет порядковый номер, называемый индексом.
Различают статические и динамические массивы. Размеры статических массивов не меняются в ходе выполнения программы, а размеры динамических массивов изменяются.
Для объявления статического массива достаточно в описании после имени указать в круглых скобках максимальное значение индекса, например:
Dim X(10) as single
Все элементы массива имеют одинаковое имя и каждый элемент имеет свой индекс. При описании статических массивов в оперативной памяти выделяется место для хранения всех его элементов.
Обращение: Имя(индекс)
В VBиндексирование начинается с 0, т.е. индекс 0 обозначает первый элемент массива.
Можно задать другие границы массива:
Dim Sotrudnik(1990 to 2000), таким образом можно задать верхнюю и нижнюю границу индекса. Это удобно, если индекс несёт некоторую смысловую нагрузку. В данном примере в массиве хранится количество сотрудников по годам, а индекс означает год.
Для обработки массивов удобно использовать оператор цикла For…Next, т. к. счётчик цикла в нём изменяется автоматически, а шаг по умолчанию равен 1.
Пример 2 Найти максимальное и минимальное значения массива S из 50 элементов.
…
maxs = S(0)
mins = S(0)
For i = 1 To 49
If S(i) > maxs Then maxs = S(i)
If S(i) < mins Then mins = S(i)
Next i
Print mins, maxs
…
Пример 3 Упорядочить массив из 11 чисел по убыванию. Вывести упорядоченный массив.
Для решения этой задачи требуется организовать сложный цикл, в котором очередной элемент массива сравнивается с последующими. После первого выполнения внешнего цикла элемент S(0) должен содержать максимальное значение, после второго - элементS(1) должен содержать максимальное значение из оставшихся и т.д.
…
For i = 0 To 9
For j = i + 1 To 10
If S(i) < S(j) Then
v = S(i)
S(i) = S(j)
S(j) = v
End If
Next j
Next i
For i = 0 To 10
Print S(i);
Next i
…
В этом примере элемент i- это номер очередного упорядочиваемого элемента, аjзадаёт номера последующих элементов, с которыми сравнивается очередной, переменнаяVиспользуется для временного хранения одного элемента массива, если значения сравниваемых элементов массива надо поменять местами.
