Лабораторная работа №8. Двумерные массивы (матрицы)
Предварительные сведения
Описание двумерного массива похоже на описание одномерного массива. Оно имеет следующий вид:
Const N = 10
Dim M(1 To N, 1 To N) As Integer 'статический массив
Или:
N = TextBox1.text
ReDim M(1 To N, 1 To N) As Integer 'динамический массив
Так же, как и в случае с одномерным массивом, для переопределения массива без потери данных используется ключевое слово Preserve.
Пример 1
Дана матрица A(M, N). Найти сумму элементов k-й строки.
Выполнение:
1 Экранная форма для этой задачи имеет вид (рис. 48).
![]() |
2 Блок-схема алгоритма:
![]() |
3 Программный код:
Private Sub CommandButton1_Click()
Dim M As Integer, N As Integer, k As Integer
Dim L As String, S As Integer
Dim A() As Integer
M = TextBox1.Text
N = TextBox2.Text
k = TextBox3.Text
ReDim A(1 To M, 1 To N) As Integer
For i = 1 To M
L = ""
For j = 1 To N
A(i, j) = Rnd * 10 - 5
L = L + " " + Str(A(i, j))
Next
ListBox1.AddItem (L)
Next
S = 0
For j = 1 To N
S = S + A(k, j)
Next
Label6.Caption = Str(S)
End Sub
Замечание
В приведенном выше алгоритме не производится проверки, действительно ли номер строки (k) лежит в диапазоне от 1 до М. Если задать k больше, чем М, программа завершит свое выполнение сообщением об ошибке.
Напишите самостоятельно код, позволяющий при нарушении этого условия выдавать сообщение о неверном вводе и корректно завершать программу.
4 Результат работы программы показан на рис. 49.
Рис. 49. Результат работы программы для примера 1
лабораторной работы № 8
Пример 2
Дана матрица A(M, N). Заменить элементы k-й строки нулями. Вывести полученную матрицу.
Выполнение:
1 В данном случае форма должна иметь два элемента ListBox, в которые мы будем выводить исходный массив и массив-результат (рис. 50).
2 Блок-схема алгоритма:
![]() |
|||
![]() |
Рис. 50. Окно формы для примера 2 лабораторной работы № 8
3 Программный код:
Dim M As Integer, N As Integer, k As Integer
Dim L As String
Dim A() As Integer
Private Sub CommandButton1_Click()
M = TextBox1.Text
N = TextBox2.Text
k = TextBox3.Text
ReDim A(1 To M, 1 To N) As Integer
For i = 1 To M
L = ""
For j = 1 To N
A(i, j) = Rnd * 10 - 5
L = L + " " + Str(A(i, j))
Next
ListBox1.AddItem (L)
Next
For j = 1 To N
A(k, j) = 0
Next
End Sub
Private Sub CommandButton2_Click()
For i = 1 To M
L = ""
For j = 1 To N
L = L + " " + Str(A(i, j))
Next
ListBox2.AddItem (L)
Next
End Sub
4 Результат работы программы приведен на рис. 51.
Рис. 51. Результат работы программы для примера 2
лабораторной работы № 8
Пример 3
Определить количество отрицательных элементов каждого столбца матрицы В(M, N), и запомнить их в массиве T.
Выполнение:
1 Форма имеет вид (рис. 52).
![]() |
2 Алгоритм вычисления массива Т:
Dim M As Integer, N As Integer, K As Integer
Dim L As String
Dim B() As Integer
Dim T() As Integer
Private Sub CommandButton1_Click()
M = TextBox1.Text
N = TextBox2.Text
ReDim B(1 To M, 1 To N) As Integer
ReDim T(1 To N) As Integer
For i = 1 To M
L = ""
For j = 1 To N
B(i, j) = Rnd * 10 - 5
L = L + " " + Str(B(i, j))
Next
ListBox1.AddItem (L)
Next
End Sub
Private Sub CommandButton2_Click()
For j = 1 To N
K = 0
For i = 1 To M
If B(i, j) < 0 Then
K = K + 1
End If
Next
T(j) = K
Next
L = ""
For j = 1 To N
L = L + " " + Str(T(j))
Next
ListBox2.AddItem (L)
End Sub
3 Блок-схема алгоритма приведена в приложении 2, стр. 131.
4 Результат работы программы показан на рис. 53.
Рис. 53. Результат работы программы для примера 3
лабораторной работы № 8
Варианты
1 Вычислить суммы элементов каждого столбца матpицы А(М, N), и запомнить их в массиве В.
2 Найти произведения отрицательных элементов каждого столбца матрицы X(M, N), и запомнить их в массиве Т.
3 Определить количества положительных элементов каждого столбца матрицы А(М, N), и запомнить их в массиве R.
4 Дана матрица B(M, N). Найти произведение элементов k-й строки.
5 Дана матрица W(M, N). Найти сумму элементов k-го столбца.
6 Дана матрица Y(M, N). Заменить элементы k-й строки единицами. Вывести полученную матрицу.
7 Найти количества нечетных элементов каждого столбца матрицы А(М, N) и запомнить их в массиве В.
8 Найти суммы четных элементов каждого столбца матрицы В(М, N), и запомнить их в массиве А.
9 Дана матрица А(M, N). Заменить элементы h-го столбца нулями. Вывести полученную матрицу.
10 Дана матрица Х(M, N). Увеличить элементы k-й строки на 1. Вывести полученную матрицу.
11 Определить количества отрицательных элементов каждой строки матрицы В(М, N), и запомнить их в массиве Y.
12 Найти произведения положительных элементов каждой строки матрицы X(M, N), и запомнить их в массиве R .
13 Дана матрица В(M, N). Увеличить элементы k-й строки в 2 раза. Вывести полученную матрицу.
14 Дана матрица А(M, N). Найти произведение элементов k-го столбца.
15 Найти количества нулевых элементов каждого столбца матрицы Х(М, N), и запомнить их в массиве Y.
16 Найти количества четных элементов каждой строки матрицы А(М, N), и запомнить их в массиве W.
17 Найти произведения нечетных элементов каждого столбца матрицы В(М, N), и запомнить их в массиве Т.
18 Найти суммы нечетных элементов каждого столбца матрицы А(М, N), и запомнить их в массиве Х.
19 Определить количества нулевых элементов каждой строки матрицы Y(М, N), и запомнить их в массиве Z.
20 Дана матрица Z(M, N). Увеличить элементы k-го столбца в 3 раза. Вывести полученную матрицу.
21 Дана матрица Х(M, N). Увеличить элементы s-й строки на 10. Вывести полученную матрицу.
22 Дана матрица А(M, N). Увеличить элементы w-го столбца на число 5. Вывести полученную матрицу.
23 Определить квадраты сумм элементов каждого столбца матрицы D(М, N), и запомнить их в массиве Y.
24 Определить квадраты произведений элементов каждой строки матрицы А(М, N), и запомнить их в массиве Т.
25 Дана матрица Х(M, N). Найти количество отрицательных элементов в k-й строке матрицы.
26 Дана матрица B(M, N). Найти куб произведения элементов h-й строки.
27 Дана матрица Y(M, N). Найти количество четных элементов в k-м столбце матрицы.
28 Дана матрица W(M, N). Найти сумму нечетных элементов s-й строке матрицы.
29 Дана матрица Z(M, N). Найти произведение четных элементов в h-м столбце матрицы.
30 Определить количества кратных трем элементов каждого столбца матрицы А(М, N), и запомнить их в массиве Н.
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.