- •Программирование на языке vba Учебное пособие
- •Глава 1. Программы и их реализация. Введение в vba
- •Подготовка задач к решению на эвм
- •А а Блок ввода – вывода
- •1.3. Языки программирования и их реализация
- •1.4. Основы возникновения и использования языка vba
- •Глава 2. Основные принципы работы с vba
- •2.1. Алфавит vba
- •Разработка пользовательской формы и элементов управления
- •Процедуры Sub
- •2.1.1. Данные
- •Константы
- •2.1.2. Знаки операций
- •2.2. Основные операторы языка
- •2.2.1. Оператор описания переменных
- •2.2.2. Оператор присваивания
- •2.2.3. Операторы ввода данных
- •InputBox(“Сообщение”).
- •2.2.4. Операторы вывода данных
- •MsgBox (Список аргументов)
- •2.3. Линейные процессы
- •Программный код
- •2.4.1. Оператор условного перехода
- •If Условие Then Оператор 1 Else Оператор 2
- •2.4.2. Оператор выбора Select Case
- •2.5. Циклические процессы
- •2.5.1. Оператор цикла с параметром For – Next
- •2.5.2. Оператор цикла While – Wend
- •2.5.3. Оператор цикла Do – Loop
- •2.6. Работа с массивами
- •2.6.1. Вычисления в одномерных массивах
- •Пример: a(I), b(j).
- •Объявление массива
- •Ввод массива
- •Вывод массива
- •Вычисление суммы, произведения и количества элементов в одномерном массиве
- •Вычисление минимального и максимального элементов в одномерных массивах
- •Сортировка элементов одномерного массива методом “пузырька”
- •Удаление одного элемента из одномерного массива
- •Удаление из массива группы элементов
- •Вставка одного элемента в массив
- •Вставка группы элементов в массив
- •2.6.2. Вычисления в двумерных массивах
- •Ввод двумерного массива
- •Вывод двумерного массива
- •Формирование матрицы
- •Вычисление суммы, произведения, количества, минимума и максимума в двумерных массивах
- •Построчное вычисление в матрице
- •2.7. Пользовательский тип данных и формы пользователя
- •2.7.1. Пользовательский тип данных
- •Значение Оператор присоединения
- •2.7.2. Формы пользователя
- •Список использованной литературы
- •Оглавление
- •Глава 1. Программы и их реализация. Введение в vba. ………...3
- •Глава 2. Основные принципы работы с vba…………………...…16
Вычисление минимального и максимального элементов в одномерных массивах
При вычислении минимального или максимального элементов в одномерном массиве должны выполняться следующие условия:
Y(i), если Y(i) > Max;
Max =
Max, если Y(i) Max.
Y(i), если Y(i) < Min;
Min =
Min, если Y(i) Min.
За первоначальное значение максимального элемента можно принять очень маленькое число или первый элемент массива, а за первоначальное значение минимального элемента – очень большое число или первый элемент массива, т.е., например, если массив состоит из целых чисел, то
Max = – 32000 или Max = Y(1),
Min = 32000 или Min = Y(1).
Пример 16.
Прочитать с рабочего листа Excel одномерный массив. Вычислить минимальный и максимальный элементы этого массива и поменять их местами. Новый массив поместить на тот же лист ниже первого. Минимальный и максимальный элементы также напечатать на рабочем листе.
Программный код
Sub PR16 ( )
Dim A(10) As Integer
Dim i, R As Integer
Dim Min, Max, imin, imax As Integer
For i = 1 To 10
A(i) = Cells(1, i) ‘ ввод массива
Next i
Min = 32000: Max = –32000
For i = 1 To 10
If A(i) > Max Then
Max = A(i) ‘ вычисление максимума
imax = i ‘ и его номера
End If
If A(i) < Min Then
Min = A(i) ‘ вычисление минимума
imin = i ‘ и его номера
End If
Next i
Cells(2, 1) = "Max="
Cells(2, 2) = Max
Cells(2, 4) = "IMax"
Cells(2, 5) = imax
Cells(3, 1) = "Min="
Cells(3, 2) = Min
Cells(3, 4) = "IMin"
Cells(3, 5) = imin
R = A(IMax) ‘ меняем местами
A(IMax) = A(IMin) ‘ максимальный и
A(IMin) = R ‘ минимальный элементы
For i = 1 To 10
Cells(5, i) = A(i) ‘ вывод нового массива
Next i
End Sub
Врезультате работы этой программы на рабочем листеExcel появятся следующие данные (рис. 9).
Рис. 9. Вычисление минимального и максимального элементов массива
Сортировка элементов одномерного массива методом “пузырька”
Рассмотрим одномерный массив А:
– 4 6 – 2 10
Нужно расставить элементы этого массива по убыванию, т.е. получить массив
10 6 2 4.
Метод “пузырька” заключается в том, что сравниваются два соседних элемента массива, и если первый из них меньше второго, то их переставляют местами (сортировка по убыванию).
I просмотр
– 4 6 – 2 10
6 – 4 – 2 10
6 – 2 – 4 10
6 – 2 10 – 4
II просмотр
6 – 2 10 – 4
6 10 – 2 – 4
III просмотр
6 10 – 2 – 4
10 6 – 2 – 4
Для того чтобы поменять местами два элемента массива, необходимо в дополнительную переменную, например R, записать один элемент массива, на место этого элемента записать второй элемент, а на место второго записать значение переменной R.
Пример. Поменять местами первый и второй элементы массива.
R = A(1)
A(1) = A(2)
A(2) = R
Пример 17. Отсортировать массив методом “пузырька” по убыванию.
Программный код
Option Explicit
Sub PR17 ( )
Dim A(30) As Integer
Dim N, I, K, R As Integer
N = Val(InputBox("Введите N")) ‘ввод размерности массива
For I = 1 To N
Cells(1,I) = Int(Rnd * 100 – 50) ‘ заполнение ячеек рабочего листа случайными числами
A(I) = Cells(1,I) ‘ заполнение массива
Next I
For K = 1 To N–1 ‘ Сортировка массива
For I = 1 To N–K
If A(I) < A(I+1) Then
R = A(I) ‘ Перестановка элементов
A(I) = A(I+1)
A(I+1) = R
End If
Next I
Next K
Cells(3,3) = "Упорядоченный массив"
For I = 1 To N ‘ Распечатка полученного массива
Cells(5,I) = A(I) ‘на рабочем листе Excel
Next I
End Sub
При сортировке массива методом “пузырька” по возрастанию в программе следует изменить только знак “меньше” (<) на знак “больше” (>).