Лабораторная работа №8. Двумерные массивы (матрицы)
Оценка 4.7

Лабораторная работа №8. Двумерные массивы (матрицы)

Оценка 4.7
doc
07.05.2020
Лабораторная работа №8. Двумерные массивы (матрицы)
85. Лабораторная работа №8. Двумерные массивы (матрицы).doc

Лабораторная работа №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).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Рис. 48. Окно формы для примера 1 лабораторной работы № 8

 

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).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Рис. 52. Окно формы для примера 3 лабораторной работы № 8

 

 

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), и запомнить их в массиве Н.


Лабораторная работа №8. Двумерные массивы (матрицы)

Лабораторная работа №8. Двумерные массивы (матрицы)

Программный код: Private Sub

Программный код: Private Sub

Рис. 49. Результат работы программы для примера 1 лабораторной работы № 8

Рис. 49. Результат работы программы для примера 1 лабораторной работы № 8

Рис. 50. Окно формы для примера 2 лабораторной работы № 8 3

Рис. 50. Окно формы для примера 2 лабораторной работы № 8 3

L = "" For j = 1 To N L = L + " " +

L = "" For j = 1 To N L = L + " " +

Рис. 52. Окно формы для примера 3 лабораторной работы № 8 2

Рис. 52. Окно формы для примера 3 лабораторной работы № 8 2

K = K + 1 End If Next T(j) =

K = K + 1 End If Next T(j) =

Найти произведения отрицательных элементов каждого столбца матрицы

Найти произведения отрицательных элементов каждого столбца матрицы

Найти суммы нечетных элементов каждого столбца матрицы

Найти суммы нечетных элементов каждого столбца матрицы
Скачать файл