Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
obch_texn_vba_camoc.doc
Скачиваний:
4
Добавлен:
19.08.2019
Размер:
3.34 Mб
Скачать

6.3 Контрольні запитання

  1. Що уявляє собою масив?

  2. Як масив розміщується у пам’яті?

  3. Введення та виведення елементів масиву.

  4. Алгоритми обчислення суми та кількості елементів масиву.

  5. Алгоритми знаходження максимального та мінімального елемента масиву.

Лабораторна робота № 7. Тема роботи: Матриці

Мета роботи: одержання практичних навичок програмування і розв’язання задач обробки матриць.

7.1 Теоретичні відомості

Двовимірний масив об’являється у програмі заданням імені та двох розмірів, які пишуться у круглих дужках. Наприклад:

Dim x(4,6)As Integer матриця цілих чисел з 4

рядків і 6 стовпців

Двовимірний масив розміщується в пам’яті рядками, займаючи послідовні ячейки пам’яті.

Задача 7.1 Переставити рядки двовимірного масиву цілих чисел, що має M рядків та N стовпців з максимальною та мінімальною сумою непарних елементів. Вважати, що ці суми єдині..Позначення:

min – мінімальна сума непарних елементів по рядках,

k_min – номер рядка, який її містить;

max – максимальна сума непарних елементів по рядках,

k_max – номер рядка з цією сумою.

Для обміну значеннями елементів використаємо змінну t. Для підрахунку суми використаємо змінну S.

Створимо форму як на рисунку 7.1.

Розмістимо на формі елемент управління напис – LblRez. На етапі проектува­ння встановимо його властивість LblRez.Caption = " " . В програмі напишемо код, який розміщує на його місці інформацію про те, які рядки поміняли місцями.

t xtM

t xtN

cmdRun –––––––→

txtA ––––→

LblRez ––––––→

←––––––––––– CmdExit

Рисунок 7.1 – Приклад роботи форми

Програмний код для кнопки cmdRun (подія Click)

Private Sub cmdRun_Click()

' Кнопка Пуск

Dim m As Integer , n As Integer

Dim min As Integer , max As Integer

Dim i As Integer , j As Integer

Dim k_min As Integer , k_max As Integer

Dim t As Integer , s As Integer

Dim a( ) As Integer

txtA .Value = ""

txtRez .Value = ""

m = CInt(txtM .Value)

n = CInt(txtN .Value)

ReDim a(m , n) As Integer

For i = 1 To m

For j = 1 To n

' Введення елементів масиву

a(i, j) = InputBox("Введіть елемент a(" & CStr(i) & "," & CStr(j) & ")")

' Виведення елементів першого масиву

txtA .Value = txtA .Value & CStr(a(i , j)) & " "

Next j

txtA .Value = txtA .Value & vbCrLf

Next i

' Знаходження суми елементів в рядку,

' максимальної та мінімальної суми

min = 32000 : max = –32000

For i = 1 To m

s = 0

For j = 1 To n

If a(i , j) Mod 2 = 1 Then s = s + a(i , j)

Next j

If min > s Then

min = s : k_min = i

End If

If max < s Then

max = s : k_max = i

End If

Next i

For j = 1 To n

t = a(k_min , j)

a(k_min , j) = a(k_max , j)

a(k_max , j) = t

Next

' Виведення елементів перетвореного масиву

For i = 1 To m

For j = 1 To n

txtRez .Value = txtRez .Value & CStr(a(i , j)) & " "

Next j

txtRez .Value = txtRez .Value & vbCrLf

LblRez .Caption = "Міняємо місцями " & Str(k_min) & " та " & _

Str(k_max) & " рядки"

Next i

End Sub

Програмний код для кнопки CmdExit (подія Click)

Private Sub CmdExit_Click()

' Кнопка Вихід

UserForm1 . Hide

End Sub

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]