Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичні вказівки до другої конторольної робот...doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.9 Mб
Скачать

4.3 Приклади завдання та розв’язок задач для двовимірних масивів

Розглянемо приклади задач, в яких використовуються матриці.

Приклад 4.3.1

Задана цілочисельна матриця А розміром m*n. Знайти масив В(m), елементи якого дорівнюють відповідно сумам елементів тих рядків, які починаються з парних елементів.

Для наданої задачі розглянемо декілька способів рішення:

Спосіб 1

Додамо до проекту модуль, який утримує подальшу процедуру. Для введення елементів матриці використаємо вікно введення (InputBox). Для виведення самої матриці та побудованого масиву – вікно повідомлень (MsgBox). Для відображення матриці у вигляді таблиці використовується функція переходу на новий рядок VbCrlf.

Код програми:

Sub новий_масив()

оголошення змінних

Dim m As Integer, n As Integer, i As Integer, j As Integer

Dim k As Integer

Dim a() As Integer, b() As Integer, sa As String, sb As String

виклик вікон вводу змінних m та n

m = InputBox("кількість рядків m=", "вікно вводу початкових")

n = InputBox("кількість стовпців n=", "вікно вводу початкових")

завдання розміру масивів

ReDim a(m, n), b(m)

очищення текстових змінних

sa = ""

sb = ""

ввід елементів матриці

For i = 1 To m

For j = 1 To n

a(i, j) = InputBox("a(" & CStr(i) & "," & CStr(j) & ")=")

sa = sa & CStr(a(i, j)) & " "

Next j

sa = sa & vbCrLf

Next i

k = 0

For i = 1 To m

If a(i, 1) Mod 2 = 0 Then

k = k + 1

b(k) = 0

For j = 1 To n

b(k) = b(k) + a(i, j)

Next j

sb = sb & CStr(b(k)) & " "

End If

Next i

If k = 0 Then sb = "таких елементів немає”

MsgBox "матриця à:" & vbCrLf & sa & vbCrLf & _

"масив в:" & vbCrLf & sb

End Sub

Вікна введення даних наведені на рис. 4.15.

Рисунок 4.15 - Вікна введення

Результати роботи програми наведені на рис. 4.16.

Рисунок 4.16 - Результати роботи програми

Спосіб 2

Для відображення початкових значень та значень розрахунків використовуємо “Лист1” Excel. Розмістимо командну кнопку CommanButton1 на цьому листі, як показано на рис. 4.17. Встановимо значення для властивості Caption – „Створення масиву” , для FontНачертание значення - „жирный, „Размер” – 14. Вивести результати обчислень починаючи з клітини через стовпчик після матриці. В наведеному прикладі це клітина G5.

Рисунок 4.17 - Інтерфейс Лист1

Код програми:

Спосіб 3

Для організації введення даних і виведення результатів створимо форму, в якій розмістимо такі елементи керування:

  • написи Label1, Label2, Label3, Label4, у яких властивості Caption змінені на тексти. що зазначені на рис. 4.18. Крім того, у написів змінена властивість Font - шрифт, його розмір - 10, і жирність – Bold;

  • текстові поля TextBox1, TextBox2 для введення початкової інформації. У цих об’єктів також змінена властивість Font;

  • текстові поля TextBox3, TextBox4 призначені для виведення матриці та масиву результату. Змінена властивість Font , властивості MultiLine = True , WordWrap = True , щоб виводити в полі текст у декілька рядків, ScrollBars – 3 ;

  • командна кнопка CommandButton1 , з якою зв’язується процедура рішення задачі. Змінена властивість Caption на текст, що зазначений на кнопці, властивості Font - розмір, жирність.

Рисунок 4.18 - Форма до задачі 1 для способу 3

Код програми

Private Sub CommandButton1_Click()

Dim m As Integer, n As Integer, i As Integer, j As Integer

Dim k As Integer

Dim a() As Integer, b() As Integer, sa As String, sb As String

m = TextBox1.Text

n = TextBox2.Text

ReDim a(m, n), b(m)

sa = ""

sb = ""

For i = 1 To m

For j = 1 To n

a(i, j) = InputBox("a(" & CStr(i) & "," & CStr(j) & ")=")

sa = sa & CStr(a(i, j)) & " "

Next j

sa = sa & vbCrLf

Next i

TextBox3.Text = sa

k = 0

For i = 1 To m

If a(i, 1) Mod 2 = 0 Then

k = k + 1

b(k) = 0

For j = 1 To n

b(k) = b(k) + a(i, j)

Next j

sb = sb & CStr(b(k)) & " "

End If

Next i

If k = 0 Then sb = "таких елементів немає"

TextBox4.Text = sb

End Sub

Приклад форми по завершенню програми наведено на рис. 4.19.

Рисунок 4.19 - Форма в процесі роботи

Приклад 4.4.

Надані дійсні числа Обчислити вираз де

Задача присвячена використанню процедур та функцій. Створимо форму для введення та вивода даних

Рисунок 4.20- Форма для введення та вивода даних

Далі, у вікні редагування коду створимо функцію для обчислення f(u,v,w) та процедуру, з якої буде викликатись функція