Пособие Серкова1
.pdfUserForm2.Hide
Exit Sub label:
MsgBox "Не найдено"
End Sub.
Задания для самостоятельной работы
VBA позволяет создавать три типа процедур Sub, Function и Property. При запуске процедуры Sub выполняются команды процедуры, а затем управление передается в приложение или процедуру, которая вызвала процедуру Sub.
Function (функция) также решает определенную задачу. Различие заключается в том, что функция возвращает единственное значение, поэтому обычно используется для выполнения вычислений.
Property используется для ссылки на свойство объекта. Применяется для установки или получения значения пользовательских свойств форм и модулей. Процедуры Sub подразделяются на процедуры, связанные с элементами управления (событийные) и процедуры общего назначения.
Пример выполнения работы.
Даны матрицы:
|
2.1 |
3.2 |
4.5 |
7.1 |
|
|
2.5 |
4.3 |
7.2 |
9.4 |
|
A |
. |
||||
|
3.2 |
4.8 |
9.3 |
|
|
|
18.1 |
Найти максимальный элемент в каждой матрице. Использовать подпрограмму.
101
Блок– схема процедуры
Точка входа maxum(d,k,L,mx) |
|
maxc=-1000 |
|
I=1;k;1 |
|
j=1;L;1 |
|
нет |
да |
Dij< maxc |
|
|
maxc=Dij |
mx= maxc
Точка выхода
102
Блок-схемы основной программы.
Начало
Ввод
матрицы А
i1=3, j1=4
maxum (а,i1,j1,mxa);
Вывод матрицы А
Ввод матрицы В
i1=5, j1=2
maxum (в,i1,j1,mxb);
Вывод матрицы В
Вывод mxa, mxb
конец
103
Рисунок 17– Результат работы приложения
Событийная процедура кнопки Вычислить. Dim c(1 To 6, 1 To 6) As Single
Function maxum(k, L, n, m) max = -10000
For i = 1 To n
For j = 1 To m
c(i, j) = Cells(i + k, j + L)
If c(i, j) > max Then max = c(i, j) Next j
Next i maxum = max End Function.
Private Sub CommandButton1_Click()
Dim c(1 To 6, 1 To 6) As Single
Dim b(1 To 6, 1 To 6) As Single
104
Dim i, j, k, L, m, n As Byte For i = 1 To 3
For j = 1 To 4
c(i, j) = Cells(i + 1, j) Next j
Next i n = 3 m = 4 k = 1 L = 0
maxa = maxum(k, L, n, m) TextBox1.Text = Format(maxa, "0.00") k = 6
L = 2
maxb = maxum(k, L, 5, 2) TextBox2.Text = Format(maxb, "0.00") End Sub.
Варианты заданий
Вариант 1.
Упорядочить по убыванию массив, содержащий 20 целых чисел. Найти сумму и произведение элементов массива. Использовать процедуру и функции.
Вариант 2.
Упорядочить по не возрастанию массив, содержащий 10 целых чисел. Найти минимальный и максимальный элемент массива. Использовать процедуру и функции.
Вариант 3.
Упорядочить по не убыванию массив, содержащий 15 вещественных чисел. Найти сумму и произведение положительных элементов массива. Использовать процедуру и функции.
Вариант 4.
Упорядочить по не возрастанию массив, содержащий 25 вещественных чисел. Найти сумму и произведение положительных элементов массива и их количество. Использовать процедуру и функции.
Вариант 5.
105
Дан массив целых чисел, содержащих 20 элементов. Записать в этот же массив сначала все отрицательные числа и нули, затем все положительные, сохраняя порядок их следования. Подсчитать количество положительных элементов, отрицательных элементов и нулей. Использовать процедуру и функции.
Вариант 6.
Дан массив целых чисел, содержащих 10 элементов. Записать в этот же массив сначала все положительные числа, затем все отрицательные и нули, сохраняя порядок их следования. Подсчитать сумму положительных элементов, отрицательных элементов и нулей. Использовать процедуру и функции.
Вариант 7.
Дан двухмерный массив, содержащий 4 строки и 5 столбцов. Элементами массива являются целые числа. Упорядочить массив по невозрастанию элементов пятого столбца. Подсчитать сумму положительных элементов, отрицательных элементов и нулей. Использовать процедуру и функции.
Вариант 8.
Дан двухмерный массив, содержащий 3 строки и 4 столбца. Элементами массива являются вещественные числа. Упорядочить массив по неубыванию элементов первого столбца. Подсчитать произведение и сумму положительных элементов массива. Использовать процедуру и функции.
Вариант 9.
Дан двухмерный массив, содержащий 4 строки и 4 столбца. Элементами массива являются вещественные числа. Упорядочить массив по невозрастанию элементов первой строки. Подсчитать количество строк, начинающихся с отрицательных элементов. Использовать процедуру и функции.
Вариант 10.
Дан двухмерный массив, содержащий 2 строки и 4 столбца. Элементами массива являются целые числа. Упорядочить массив по не убыванию элементов второй строки. Подсчитать количество четных элементов матрицы и их сумму. Использовать процедуру и функции.
Вариант 11.
Найти сумму элементов главной диагонали матрицы С(5,5) с нечетными индексами. Элементы матрицы задать самостоятельно. Использовать процедуру и функции.
Вариант 12.
106
Найти наименьший элемент матрицы Х(5,7) и записать нули в ту строку и столбец, где он находится. Отпечатать полученную матрицу. Элементы матрицы задать самостоятельно. Использовать процедуру и функции.
Вариант 13.
Даны три матрицы:
|
|
7.9 |
8.3 |
4.5 |
8.4 |
|
2.1 |
4.3 |
8.9 |
5.3 |
5.2 |
|||
|
|
|
8.1 |
9.3 |
5.1 |
|
, |
|
9.2 |
8.4 |
3.5 |
9.4 |
8.2 |
|
|
|
A |
3.1 |
B |
, |
|||||||||
|
|
|
5.2 |
8.4 |
5.9 |
|
|
|
4.1 |
9.5 |
8.4 |
5.3 |
8.1 |
|
|
|
|
7.3 |
|
|
|
||||||||
2.1 |
4.3 |
5.2 |
5.2 |
7.3 |
8.1 |
|
|
|
|
|
|
|
|
|
|
3.2 |
4.5 |
9.3 |
7.3 |
5.2 |
9.1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
C |
8.2 |
8.7 |
4.1 |
7.5 |
8.2 |
14.5 |
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
19.1 |
3.2 |
7.1 |
4.3 |
9.4 |
|
|
|
|
|
|
|
|
14.1 |
|
|
|
|
|
|
|
|
Поменять местами первую и третью строки в каждой матрице. Использовать процедуру.
Вариант 14.
Даны матрицы:
4.1 |
2.3 |
6.8 |
9.4 |
|
|
|
4.2 |
7.4 |
|
||
|
|
|
9.3 |
2.4 |
|
||||||
|
7.1 |
2.4 |
5.9 |
4.3 |
|
, |
B |
|
|
||
A |
|
|
|
12.3 |
, |
||||||
|
2.1 |
7.3 |
9.3 |
5.8 |
|
|
|
15.7 |
|
||
|
|
|
|
|
|
19.2 |
|
||||
|
|
|
|
|
|
|
|
14.7 |
|
Найти суммы элементов по столбцам. Использовать процедуру.
Вариант 15.
Дана матрица Z(6,6). Найти количество отличных от нуля элементов, расположенных ниже побочной диагонали. Нулевые элементы матрицы заменить на -1. Элементы матрицы Z задать самостоятельно. Использовать процедуру.
Вариант 16.
В исходной матрице найти количество четных элементов, больших 4, и количество нечетных элементов, меньших 67.
2.1 |
4.3 |
5.2 |
5.2 |
7.3 |
8.1 |
|
|
|
3.2 |
4.5 |
9.3 |
7.3 |
5.2 |
9.1 |
|
|
|
||||||
C |
8.2 |
8.7 |
4.1 |
7.5 |
8.2 |
14.5 |
. |
|
|
||||||
|
|
19.1 |
3.2 |
7.1 |
4.3 |
9.4 |
|
14.1 |
|
Использовать процедуру.
Вариант 17.
Сформировать матрицу С(5,5) по правилу: ci,j = arctg((i+j)/28)+4.
Hайти сумму отрицательных элементов матрицы, расположенных ниже побочной диагонали. Использовать процедуру.
Вариант 18.
107
Hайти разность двух произведений: произведения элементов выше главной диагонали и произведения элементов ниже побочной диагонали матрицы В.
2.1 |
4.3 |
8.9 |
5.3 |
5.2 |
|
|
|
9.2 |
8.4 |
3.5 |
9.4 |
8.2 |
|
B |
. |
|||||
|
4.1 |
9.5 |
8.4 |
5.3 |
8.1 |
|
|
|
Использовать процедуру.
Вариант 19.
Дана матрица А(5,5). Сформировать два массива В и С. В массив В войдут максимальные элементы каждого столбца, а в массив С – максимальные элементы каждой строки матрицы.
|
2 |
3 |
5 |
0 |
77 |
|
|
13 |
11 |
14 |
4 |
0 |
|
|
2 |
2 |
3 |
7 |
15 |
|
A |
. |
|||||
|
3 |
6 |
9 |
8 |
1 |
|
|
|
|||||
|
0 |
4 |
5 |
2 |
9 |
|
|
|
Использовать процедуру.
Вариант 20.
Сформировать матрицу С(5,5) по правилу: ci,j = arctg((i+j)/28)+4.
Hайти сумму отрицательных элементов матрицы, расположенных ниже побочной диагонали. Использовать процедуру.
Вариант 21.
Hайти все разности между максимальным элементом матрицы А (6,6) и всеми элементами матрицы, расположенными на главной диагонали.
ai,j = 14* /i + cos(j). Использовать процедуру.
Вариант 22.
В исходную матрицу А(7,5) добавить новую строку, элементами которой являются количество отрицательных элементов соответствующих столбцов. Элементы матрицы задать самостоятельно. Использовать процедуру.
Вариант 23.
Записать в массив X подряд отрицательные элементы матрицы В(7,5). Элементы матрицы В формируются по правилу: bi,j = COS(i+j).
Вывести X и B(7,5). Использовать процедуру.
Вариант 24.
108
Вычесть из суммы элементов матрицы В(5,5), расположенных ниже главной диагонали, произведение элементов побочной диагонали.
1 |
2 |
3 |
4 |
5 |
6 |
5 |
4 |
3 |
2 |
|
7 |
8 |
9 |
|
B 1 |
6 . |
|||
|
9 |
6 |
3 |
|
5 |
4 |
|||
|
7 |
8 |
6 |
|
1 |
2 |
Использовать процедуру.
Вариант 25.
В построенной матрице A(7,4) определить количество элементов, для которых выполнено условие: -0,5 < aij < 0,5. Элементы матрицы строятся по правилу: aij = sin (i + j / 2). Матрицу напечатать. Использовать процедуру.
Вариант 26.
Определить суммы положительных элементов матрицы А для каждой строки, исключая элементы главной диагонали.
2 |
6 |
4 |
1 |
||
|
4 |
0 |
13 |
2 |
|
A |
0.5 |
2 |
14 |
|
. |
|
7.1 |
||||
|
3 |
2.5 |
0.1 |
2 |
|
|
|
Использовать процедуру.
Вариант 27.
Подсчитать количество нулевых элементов среди элементов, расположенных выше главной диагонали матрицы В(8,8), которые формируются по правилу:
bij = cos |
(i j) – 16, (i, j = 1,…,8). |
|
2 |
Использовать процедуру.
109
Библиографический список
1.С. Браун. . Visual Basic 5 с самого начала [Текст]. - ПИТЕР. – С.-П., 1998.
2.Гарнаев А.Ю. Самоучитель по VBA [Текст] А. Ю. Гарнаев – СПб: БХВ – Санкт - Петербург, 1999. – 512 с.
3.Ломтадзе В. В. Информатика [Текст]: учебное пособие / В. В. Ломтадзе,
Л. П. Шишкина – Иркутск: Изд-во Иркутского госуд. технич. ун-та, 1999. – 116 с
4.Нестерова Л.А. Основы алгоритмизации и языки программирования. Конспект лекций [Текст]. Часть 1 и 2. – Киров. – 1997.
5.О.Н. Туманова и др. Практикум для проведения лабораторных работ по программированию на языке Турбо Паскаль [Текст]. Уч. Пособие. – Ухта 1996 г.
6.Шишкина Л.П. Лабораторный практикум по информатике. Часть II. Visual Basic for Applications [Текст] Л. П. Шишкина, Т. П. Бояринцева, Т. Н. Сержант – Иркутск: Изд-во Иркутского госуд. техн. ун-та, 2001. – 52 с.
110