- •Часть 4
- •Содержание
- •Предисловие
- •Задание в
- •Задание к работе Задание а
- •Варианты заданий а
- •Задание b
- •Варианты заданий в
- •Методические указания к выполнению задания а Определение массива
- •Обращение к элементам массива
- •Описание массива
- •Ввод и вывод массивов
- •Статические и динамические массивы
- •Новые значения свойств элементов управления формы
- •Пример выполнения задания a лабораторной работы
- •Задачи для самостоятельного выполнения
- •Методические указания к выполнению задания b
- •InputBox("Введите a(" & I & "," & j & ") элемент")
- •Пример выполнения задания в лабораторной работы
- •Контрольные вопросы
- •Содержание отчета
- •Библиографический список
- •3 46500, Г. Шахты, Ростовская обл., ул. Шевченко, 147
Новые значения свойств элементов управления формы
Элемент управления |
Свойство |
Значение по умолчанию |
Новое значение |
Label (метка) |
Name (имя) |
Label1 |
Lbl1 |
Caption (надпись) |
Label1 |
Массив А |
|
Label (метка) |
Name (имя) |
Label2 |
Lbl2 |
Caption (надпись) |
Label2 |
Массив В |
|
Label (метка) |
Name (имя) |
Label3 |
Lbl3 |
Caption (надпись) |
Label3 |
Массив С |
|
Label (метка) |
Name (имя) |
Label4 |
Lbl4 |
Caption (надпись) |
Label4 |
Индекс Элемент |
|
Label (метка) |
Name (имя) |
Label5 |
Lbl5 |
Caption (надпись) |
Label5 |
Индекс Элемент |
|
Label (метка) |
Name (имя) |
Label6 |
Lbl6 |
Caption (надпись) |
Label6 |
Индекс Элемент |
|
ListBox (список) |
Name (имя) |
ListBox1 |
LbxMassivA |
ListBox (список) |
Name (имя) |
ListBox2 |
LbxMassivB |
ListBox(срисок) |
Name (имя) |
ListBox3 |
LbxMassivC |
CommandButton (командная кнопка) |
Name (имя) |
CommandButton1
|
CmdMassivA |
Caption (надпись) |
CommandButton1
|
Вывод (визуализация) массива А |
|
CommandButton (командная кнопка) |
Name (имя) |
CommandButton2
|
CmdMassivB |
Caption (надпись) |
CommandButton2
|
Вывод (визуализация) массива B |
|
CommandButton (командная кнопка) |
Name (имя) |
CommandButton3
|
CmdSumma |
Caption (надпись) |
CommandButton3
|
Обработка (суммирование) массивов |
|
CommandButton (командная кнопка) |
Name (имя) |
CommandButton4
|
CmdMassivC |
Caption (надпись) |
CommandButton4
|
Вывод массива результатов С |
Рис. 4. Форма и её элементы управления
после переименования и изменения свойств
Таким образом, в программном коде следует записать четыре процедуры обработки события Click (кликанье левой кнопки мыши) для четырех командных кнопок.
Объявим переменные, используемые во всех процедурах.
Option Base 1 ‘нижняя граница индекса равна 1
Dim n As Integer ‘количество элементов массива
Dim i As Integer ‘индекс элемента
Dim a As Variant ‘объявление массива А
Dim b As Variant ‘объявление массива B
Dim c(6) As Variant ‘объявление массива C
Dim stri As String * 3 ‘строковая переменная для индекса
Dim stra As String ‘строковая переменная для элемента массива А
Dim strb As String ‘строковая переменная для элемента массива B
Dim strc As String ‘строковая переменная для элемента массива C
Сгенерируем процедуру обработки события Click (кликанье левой кнопки мыши) для командной кнопки CmdMassivA с надписью «Вывод (визуализация) массива А». Для этого достаточно быстро кликнуть на этой кнопке два раза левой кнопкой мыши. В результате будет создана нужная нам процедура, в которую надо ввести следующий код.
Private Sub CmdMassivA_Click()
a = Array(1.1, 2, 5, -7, 6, 3)
n = UBound(a)
For i = 1 To n
stri = Str(i)
stra = Str(a(i))
LbxMassivA.AddItem stri & " | " & stra
Next i
End Sub
Пояснение. Данная процедура предназначена для ввода одномерного массива А и вывода его на экран.
Для ввода массива А использована функция Array. В результате выполнения операторов
Dim A As Variant
a = Array(1.1, 2, 5, -7, 6, 3)
элементы массива А примут значения: А(1)=1.1, А(2)=2, А(3)=5, А(4)=-7, А(5)=6, А(6)=3.
С помощью функции UBound(a) можно выяснить, сколько элементов может вместить некоторое измерение массива.
Синтаксис:
UBound(Имя_Массива[,измерение])
Измерение задает целое число, которое указывает, какое измерение вас интересует. Если измерение не указано, функция UBound(a) возвратит размер первого измерения массива.
В нашем случае функция UBound(a) возвращает количество элементов одномерного массива А.
Ввод массивов А и B организован с помощью структуры «цикл с параметром». Причем оба массива вводятся в одном цикле. Структура «цикл с параметром» реализована на алгоритмическом языке оператором цикла For/Next. Параметром цикла является индекс I одномерных массивов А и В.
Для визуализации массивов А, В и С использовали три элемента управления (объекта) ListBox (Список).
Для добавления в список нового элемента массива используем метод AddItem, который является наиболее часто используемым методом элемента управления элемента ListBox (Список). Обратиться к методу объекта можно точно так же, как и к свойству объекта, с использованием точечной нотации.
Метод AddItem в качестве аргумента имеет строковую переменную. Отметим использование функции Str(), которая позволяет переводить преобразование десятичного числа в десятичное число в строковой форме. Аргументом функции является десятичное число, а значением – строка. Всегда форматирует строку в соответствии со стандартом английского языка США с точкой в качестве десятичного разделителя.
Для слияния строк использована операция & (конкатенация). Допустимо использовать также «+».
Private Sub CmdMassivB_Click()
b = Array(9, -5.9, 2, 3, -6, 4)
n = UBound(b)
For i = 1 To n
stri = Str(i)
strb = Str(b(i))
LbxMassivB.AddItem stri & " | " & strb
Next i
End Sub
Пояснение. Данная процедура предназначена для ввода одномерного массива В и вывода его на экран.
Сгенерируем процедуру обработки события Click (кликанье левой кнопки мыши) для третьей командной кнопки CmdSumma с надписью «Обработка (суммирование) массивов» и впишем в нее программный код.
Private Sub CmdSumma_Click()
For i = 1 To n
c(i) = a(i) + b(i)
Next i
End Sub
Пояснение. Данная поцедура предназначена для суммирования двух одномерных массивов А и В.
При «кликанье» левой кнопки мыши на третьей командной кнопке CmdSumma с надписью «Обработка (суммирование) массивов» результатов работы этой процедуры мы не увидим, так как массив результатов С пока хранится в оперативной памяти.
Чтобы их увидеть, создадим процедуру обработки события Click для четвертой командной кнопки CmdMassivC с надписью «Вывод массива результатов С» и впишем в нее программный код.
Private Sub CmdMassivC_Click()
n = UBound(c)
For i = 1 To n
stri = Str(i)
strc = Str(c(i))
LbxMassivc.AddItem stri & " | " & strc
Next i
End Sub
Пояснение. Данная процедура предназначена для вывода одномерного массива С, который получился в результате суммирования двух одномерных массивов А и В.
Программный код полностью представлен в окне программы VBA на рисунке 5.
Рис. 5. Программный код в окне программы VBA
Запустите ваше приложение, выбрав команду Run Run Sub/UserForm или нажав функциональную клавишу F5. Появится экранная форма (рис. 6).
Рис. 6. Экранная форма после запуска приложения
Щелкайте последовательно по каждой из четырех командных кнопок.
Результаты выполнения программного кода при значениях одномерного массива А = (1.1, 2, 5, -7, 6, 3) и массива В = (9, -5.9, 2, 3, -6, 4) представлены на рисунке 7.
Рис. 7. Результаты решения задачи суммирования
двух одномерных массивов при значениях одномерного массива
А = (1.1, 2, 5, -7, 6, 3) и массива В = (9, -5.9, 2, 3, -6, 4)
Проанализируйте результаты выполнения программы.