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

Динамічні масиви

Якщо у програмі неможливо передбачити максимальну кількість еле­мен­тів масиву, то його треба описати як динамічний масив, тобто масив із змін­ною кількістю елементів. Роботу з динамічними масивами можна розбити на два кроки.

На першому кроці описується масив за до­по­могою оператора Dim, де після імені масиву йдуть пусті дужки і тип йо­го елементів. Наприклад:

Dim a( ) as Single

На другому кроці у тій частині програми, де використовується цей масив, задається його розмір за допомогою оператора ReDim а(n). Параметр n має ма­ти числове значення. Після цього кількість елементів масиву змінюється. Якщо но­ва кількість елементів більша за стару, то виділяється до­дат­ко­ва пам’ять для но­вих елементів. Якщо нова кількість менша за стару, тоді частина елементів буде втра­чена.

Хід роботи

Варіант 1.

Побудувати квадратну матрицю А, елементи якої задаються формулою:

  • Обчислити добуток елементів матриці А.

  • Знайти найбільший елемент серед елементів матриці А, розміщених під го­лов­ною діа­го­наллю.

  • Побудувати одновимірний масив В із елементів k-го стовпця матриці А і об­числити середнє арифметичне значення елементів масиву В.

Private Sub Run_Click()

Dim a(50, 50) As Single, b(50) As Single

n = Val(txtn)

p = 1: d = 1

For i = 1 To n

p = p * i

s = 0

For j = 1 To n

s = s + j

a(i, j) = p / s

‘обчислення добутку елементів матриці А

d = d * a(i, j)

Next j

Next i

Print "d=", d

‘Знаходження найбільшого елемента серед елементів

‘матриці А, розміщених під головною діагоналлю

Max = a(2, 1)

For i = 2 To n

For j = 1 To i-1

If a(i, j) > Max Then

Max = a(i, j)

End If

Next j

Next i

Print "max=", Max

‘Побудова одновимірного масив В із елементів k-го стовпця

‘і обчислення середнього арифметичного елементів масиву В

k = Val(txtk)

s = 0

For i = 1 To n

b(i) = a(i, k)

s = s + b(i)

Next i

sа = s / n

Print "середнє арифметичне=", sа

End Sub

Варіант 2.

Побудувати матрицю А, елементи якої задаються формулою:

  • Обчислити суму елементів k-го рядка матриці А.

  • Знайти індекси найбільшого елемента матриці А.

  • Побудувати вектор В із елементів матриці А, сума індексів яких менша за задане число і обчислити добуток елементів цього вектора.

Private Sub Run_Click()

Dim b() As Single, a(50, 50) As Single

n = Val(txtn): m = Val(txtm)

k1=val(txtk1): x = Val(txtx)

For i = 1 To n

p = 1

For j = 1 To m

p = p * j

a(i, j) = i + Sin(p * x)

Next j

Next i

‘Обчислення суми елементів k-го рядка матриці А

k = Val(txtk)

s = 0

For j = 1 To m

s = s + a(k, j)

Next j

Print "S=", s

Print "_________________"

‘Знажодження індексів найбільшого елемента матриці А

Max = a(1, 1): imax = 1: jmax = 1

kilk = 0

For i = 1 To n

For j = 1 To m

If a(i, j) > Max Then

Max = a(i, j): imax = i: jmax = j

End If

‘Обчислення розмірності вектора В

If i + j < k1 Then kilk = kilk + 1

Next j

Next i

Print "imax=", imax

Print "jmax=", jmax

Print "_________________"

‘Побудова вектора В із елементів матриці А, сума індексів

‘яких ‘менша за k1 і обчислення добутку елементів вектора В

Print kilk

ReDim b(kilk)

r = 0

p = 1

For i = 1 To n

For j = 1 To m

If i + j < k1 Then

r = r + 1

b(r) = a(i, j)

p = p * b(r)

End If

Next j

Next i

Print "p=", p

End Sub

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