
- •1 Вибір варіанта завдання
- •2 Вимоги до виконання семестрової роботи
- •2.1 Загальна постановка завдання
- •2.2 Варіанти завдань
- •3 Деякі теоретичні відомості
- •3.1 Виклик редактору Visual Basic
- •Перелік кнопок
- •3.2 Склад проекту
- •3.3 Створення форм
- •3.4 Елементи управління
- •3.5 Деякі властивості та події елементів управління
- •3.6Умовний оператор і оператор вибору.
- •3.7 Оператори циклу
- •3.8 Одновимірні масиви
- •3.9 Матриці
- •4. Приклади виконання задач
- •4.1 Приклад виконання задачі 1.
- •4.2 Приклади задач обробки одновимірних масивів(Задача2)
- •4.3 Приклади завдання та розв’язок задач для двовимірних масивів
- •Література
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) та процедуру, з якої буде викликатись функція