Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

MatrVektVB

.doc
Скачиваний:
79
Добавлен:
10.04.2015
Размер:
202.75 Кб
Скачать

Основы алгоритмизации в задачах обработки массивов и ее реализация в среде Visual Basic

(лабораторная работа 2 семестр)

1. Вычислить координаты вектора W, разделив каждую координату вектора y на величину, равную среднему геометрическому координат вектора х.

Option Explicit

Private Sub Form_Click()

Dim i As Integer

Dim X(4) As Single, Y(4) As Single, W(4) As Single

Dim P As Single

For i = 1 To 4

X(i) = (1 + i) / Sqr(i ^ 2 + 4)

Y(i) = 10 * Sin(1 + i) / Sqr(i ^ 2 + 4)

Print X(i), Y(i)

Next i

P = 1

For i = 1 To 4

P = P * X(i)

Next i

P = (P) ^ (1 / 4)

Print

For i = 1 To 4

W(i) = Y(i) / P

Print W(i)

Next i

End Sub

2. Вычислить величину Q = S + V, где S сумма координат вектора х, а V произведение координат вектора y.

Option Explicit

Private Sub Form_Click()

Dim i As Integer

Dim X(4) As Single, Y(4) As Single

Dim S As Single, V As Single, Q As Single

For i = 1 To 4

X(i) = (1 + i) / Sqr(i ^ 2 + 4)

Y(i) = 10 * Sin(1 + i) / Sqr(i ^ 2 + 4)

Print X(i), Y(i)

Next i

S = 0

V = 1

For i = 1 To 4

S = S + X(i)

V = V + Y(i)

Next i

Q = S + V

Print

Print "Q = "; Q

End Sub

3. Вычислить длину вектора D = 2 x – 3 y.

Option Explicit

Private Sub Form_Click()

Dim i As Integer

Dim X(4) As Single, Y(4) As Single, D(4) As Single

Dim L As Single

For i = 1 To 4

X(i) = (1 + i) / Sqr(i ^ 2 + 4)

Y(i) = 10 * Sin(1 + i) / Sqr(i ^ 2 + 4)

D(i) = 2 * X(i) - 3 * Y(i)

L = L + D(i) ^ 2

Print X(i), Y(i)

Next i

L = Sqr(L)

Print

Print "Длина вектора D = "; L

End Sub

4. Вычислить величину R = S + L, где S  среднее арифметическое координат вектора х, а L  длина вектора y.

Option Explicit

Private Sub Form_Click()

Dim i As Integer

Dim X(4) As Single, Y(4) As Single

Dim S As Single, L As Single, R As Single

For i = 1 To 4

X(i) = (1 + i) / Sqr(i ^ 2 + 4)

Y(i) = 10 * Sin(1 + i) / Sqr(i ^ 2 + 4)

Print X(i), Y(i)

Next i

S = 0

L = 0

For i = 1 To 4

S = S + X(i)

L = L + Y(i) ^ 2

Next i

Print

S = S / 4

L = Sqr(L)

R = S + L

Print "R = "; R

End Sub

5. Вычислить координаты вектора W = С y, где С скалярное произведение векторов х и y.

Option Explicit

Private Sub Form_Click()

Dim i As Integer

Dim X(4) As Single, Y(4) As Single, W(4) As Single

Dim C As Single

For i = 1 To 4

X(i) = (1 + i) / Sqr(i ^ 2 + 4)

Y(i) = 10 * Sin(1 + i) / Sqr(i ^ 2 + 4)

Print X(i), Y(i)

Next i

C = 0

For i = 1 To 4

C = C + X(i) * Y(i)

Next i

Print

For i = 1 To 4

W(i) = C * Y(i)

Print W(i)

Next i

End Sub

6. Вычислить длину и произведение координат вектора .

Option Explicit

Private Sub Form_Click()

Dim i As Integer

Dim X(4) As Single, Y(4) As Single, V(4) As Single

Dim L As Single, P As Single

For i = 1 To 4

X(i) = (1 + i) / Sqr(i ^ 2 + 4)

Y(i) = 10 * Sin(1 + i) / Sqr(i ^ 2 + 4)

V(i) = X(i) / 2 + 0.3 * Y(i)

Print X(i), Y(i)

Next i

L = 0

P = 1

Print

For i = 1 To 4

L = L + V(i) ^ 2

P = P * V(i)

Next i

Print "L = "; L, "P = "; P

End Sub

7. Найти скалярное произведение вектора (2 x – y) и вектора (x + y).

Option Explicit

Private Sub Form_Click()

Dim i As Integer

Dim X(4) As Single, Y(4) As Single

Dim P As Single

P = 0

For i = 1 To 4

X(i) = (1 + i) / Sqr(i ^ 2 + 4)

Y(i) = 10 * Sin(1 + i) / Sqr(i ^ 2 + 4)

P = P + 2 * X(i) - Y(i) + X(i) + Y(i)

Next i

Print "P = "; P

End Sub

8. Вычислить длину вектора R, координаты которого определяются по формуле .

Option Explicit

Private Sub Form_Click()

Dim i As Integer

Dim X(4) As Single, Y(4) As Single, R(4) As Single

Dim L As Single

For i = 1 To 4

X(i) = (1 + i) / Sqr(i ^ 2 + 4)

Y(i) = 10 * Sin(1 + i) / Sqr(i ^ 2 + 4)

R(i) = X(i) - Y(i) ^ 2

Print X(i), Y(i)

Next i

L = 0

For i = 1 To 4

L = L + R(i) ^ 2

Next i

Print

Print "L = "; Format(Sqr(L), "#.00")

End Sub

9. Найти сумму положительных элементов матрицы А.

Option Explicit

Private Sub Form_Click()

Dim i As Integer, j As Integer, S As Single

Dim A(4, 4) As Single

Print "Исходная матрица А"

For i = 1 To 4

For j = 1 To 4

A(i, j) = 2 * Sin(i / Sqr(16 - j))

Print Format(A(i, j), "0.00"),

Next j

Print

Next i

Print

S = 0

For i = 1 To 4

For j = 1 To 4

If A(i, j) > 0 Then S = S + A(i, j)

Next j

Next i

Print "S = "; S

End Sub

10. Найти произведение отрицательных элементов матрицы С

Option Explicit

Private Sub Form_Click()

Dim i As Integer, j As Integer

Dim P As Single, C(4, 4) As Single

Print "Матрица А:"

For i = 1 To 4

For j = 1 To 4

C(i, j) = (5 * Log(2) - Exp(i + j)) / (4 ^ Abs(i + j) + 5)

Print Format(C(i, j), "0.00"),

Next j

Print

Next i

Print

P = 1

For i = 1 To 4

For j = 1 To 4

If C(i, j) < 0 Then P = P * C(i, j)

Next j

Next i

Print "P = "; P

End Sub

11. Получить матрицу F по формуле , где xj координаты вектора х.

Option Explicit

Private Sub Form_Click()

Dim i As Integer, j As Integer

Dim X(4) As Single, F(4, 4) As Single

For i = 1 To 4

X(i) = (1 + i) / Sqr(i ^ 2 + 4)

Print X(i)

Next i

Print

For i = 1 To 4

For j = 1 To 4

F(i, j) = X(j) ^ i

Print Format(F(i, j), "0.00"),

Next j

Print

Next i

End Sub

12. Найти след матрицы Т, каждый элемент которой вычисляется по формуле , где xi координаты вектора х, а yj координаты вектора y.

Option Explicit

Private Sub Form_Click()

Dim i As Integer, j As Single

Dim X(4) As Single, Y(4) As Single, T(4, 4) As Single

Dim S As Single

For i = 1 To 4

X(i) = (1 + i) / Sqr(i ^ 2 + 4)

Y(i) = 10 * Sin(1 + i) / Sqr(i ^ 2 + 4)

Next i

For i = 1 To 4

For j = 1 To 4

T(i, j) = X(i) * Y(j)

Print Format(T(i, j), "0.00"),

Next j

Print

Next i

Print

S = 0

For i = 1 To 4

S = S + T(i, i)

Next i

Print "S = "; S

End Sub

13. Вычислить длину вектора U, координатами которого являются элементы второго столбца матрицы А.

Option Explicit

Private Sub Form_Click()

Dim i As Integer, J As Integer, L As Single

Dim A(4, 4) As Single, U(4) As Single

For i = 1 To 4

For J = 1 To 4

A(i, J) = 2 * Sin(i / Sqr(16 - J))

Print Format(A(i, J), "00.00"),

Next J

Print

Next i

Print

L = 0

For i = 1 To 4

L = L + A(i, 2)

Next i

Print "L = "; L

End Sub

14. Найти произведение матрицы А на вектор х.

Option Explicit

Private Sub Form_Click()

Dim i As Integer, J As Integer

Dim X(4) As Single, A(4, 4) As Single, V(4) As Single

Dim L As Single

For i = 1 To 4

For J = 1 To 4

A(i, J) = 2 * Sin(i / Sqr(16 - J))

Print Format(A(i, J), "00.00"),

Next J

Print

Next i

Print

For i = 1 To 4

X(i) = (1 + i) / Sqr(i ^ 2 + 4)

Print X(i)

Next i

Print

For i = 1 To 4

V(i) = 0

For J = 1 To 4

V(i) = V(i) + A(i, J) * X(i)

Next J

Print Format(V(i), "#.00")

Next i

End Sub

15. Из элементов матрицы С сформировать два вектора U и V, координатами вектора U являются элементы главной диагонали матрицы С, а координатами вектора V являются элементы побочной диагонали матрицы С.

Option Explicit

Private Sub Form_Click()

Dim i As Integer, J As Integer

Dim U(4) As Single, C(4, 4) As Single, V(4) As Single

For i = 1 To 4

For J = 1 To 4

C(i, J) = (5 * Log(2) - Exp(i + J)) / (4 ^ Abs(i - J) + 5)

Print Format(C(i, J), "00.00"),

Next J

Print

Next i

Print

For i = 1 To 4

U(i) = C(i, i)

V(i) = C(i, 4 + 1 - i)

Print Format(U(i), "00.00"), Format(V(i), "00.00")

Next

End Sub

16. Определить вектор Z, координаты которого равны соответственно произведениям элементов столбцов матрицы А.

Option Explicit

Private Sub Form_Click()

Dim i As Integer, J As Integer

Dim X(4) As Single, A(4, 4) As Single, Z(4) As Single

For i = 1 To 4

For J = 1 To 4

A(i, J) = 2 * Sin(i / Sqr(16 - J))

Print Format(A(i, J), "00.00"),

Next J

Print

Next i

Print

For J = 1 To 4

Z(J) = 1

For i = 1 To 4

Z(J) = Z(J) * A(i, J)

Next i

Print Z(J)

Next J

End Sub

17. Определить вектор Z, координаты которого равны соответственно суммам элементов строк матрицы В.

Option Explicit

Private Sub Form_Click()

Dim i As Integer, J As Integer

Dim B(4, 4) As Single, Z(4) As Single

For i = 1 To 4

For J = 1 To 4

B(i, J) = ((1 + (i + J) * J) / (i * (J + 1)) * 4 ^ (i - J))

Print Format(B(i, J), "00.00"),

Next J

Print

Next i

Print

For i = 1 To 4

Z(i) = 0

For J = 1 To 4

Z(i) = Z(i) + B(i, J)

Next J

Print Z(i)

Next i

18. Получите новую матрицу D, элементы первых n столбцов которой совпадают с элементами матрицы А, а элементы (n + 1)-го столбца равны координатам вектора х.

Option Explicit

Private Sub Form_Click()

Dim i As Integer, J As Integer

Dim X(4) As Single, A(4, 4) As Single, D(4, 5) As Single

Dim L As Single

For i = 1 To 4

For J = 1 To 4

A(i, J) = 2 * Sin(i / Sqr(16 - J))

Print Format(A(i, J), "00.00"),

Next J

Print

Next i

Print

For i = 1 To 4

X(i) = (1 + i) / Sqr(i ^ 2 + 4)

Print Format(X(i), "00.00")

Next i

For J = 1 To 5

For i = 1 To 4

If J = 5 Then

D(i, J) = X(i)

Else

D(i, J) = A(i, J)

End If

Next i

Next J

Print

For i = 1 To 4

For J = 1 To 5

Print Format(D(i, J), "00.00"),

Next J

Print

Next i

End Sub

19. Получить новую квадратную матрицу F порядка n путем замены в матрице А элементов (n - 1)-го столбца координатами вектора х, а элементов n–го столбца координатами вектора y.

Option Explicit

Private Sub Form_Click()

Dim i As Integer, J As Integer

Dim X(4) As Single, Y(4) As Single

Dim F(4, 4) As Single, A(4, 4) As Single

For i = 1 To 4

For J = 1 To 4

A(i, J) = 2 * Sin(i / Sqr(16 - J))

Print Format(A(i, J), "00.00"),

Next J

Print

Next i

Print

For i = 1 To 4

X(i) = (1 + i) / Sqr(i ^ 2 + 4)

Y(i) = 10 * Sin(1 + i) / Sqr(i ^ 2 + 4)

Print Format(X(i), "00.00"), Format(Y(i), "00.00")

Next i

For J = 1 To 4

For i = 1 To 4

If J = 3 Then

F(i, J) = X(i)

ElseIf J = 4 Then

F(i, J) = Y(i)

Else

F(i, J) = A(i, J)

End If

Next i

Next J

Print

For i = 1 To 4

For J = 1 To 4

Print Format(F(i, J), "00.00"),

Next J

Print

Next i

End Sub

20. Вычислить матрицу D, каждый элемент которой определяются по формуле Di,j = Аi,j + Fi,j. Причем матрица А задана, а элементы матрицы F заданы соотношениями: Fi,j = Аi,j, если Аi,j > 0 и Fi,j = 1, если Аi,j  0 (i, j = 1, 2, …n).

Option Explicit

Private Sub Form_Click()

Dim i As Integer, J As Integer

Dim F(4, 4) As Single, A(4, 4) As Single, D(4, 4) As Single

For i = 1 To 4

For J = 1 To 4

A(i, J) = 2 * Sin(5 * i / Sqr(16 - J))

Print Format(A(i, J), "00.00"),

Next J

Print

Next i

Print

For i = 1 To 4

For J = 1 To 4

If A(i, J) > 0 Then

F(i, J) = A(i, J)

Else

F(i, J) = 1

End If

Print Format(F(i, J), "00.00"),

Next J

Print

Next i

Print

For i = 1 To 4

For J = 1 To 4

D(i, J) = A(i, J) + F(i, J)

Print Format(D(i, J), "00.00"),

Next J

Print

Next i

End Sub

21. Получить матрицу D, каждый элемент которой определяется формулой Di,j = 2Аi,jFi,j. Матрица А задана, а элементы матрицы F вычисляются по формулам Fi,j = sin (Аi,j), если Аi,j > 0 и Fi,j = cos (Аi,j), если Аi,j  0. (i, j = 1, 2, …n).

Option Explicit

Private Sub Form_Click()

Dim i As Integer, J As Integer

Dim A(4, 4) As Single, F(4, 4) As Single

Dim D(4, 4) As Single

For i = 1 To 4

For J = 1 To 4

A(i, J) = 2 * Sin(i / Sqr(16 - J))

Next J

Next i

For i = 1 To 4

For J = 1 To 4

If A(i, J) > 0 Then

F(i, J) = Sin(A(i, J))

Else

F(i, J) = Cos(A(i, J))

End If

Next J

Next i

For i = 1 To 4

For J = 1 To 4

D(i, J) = 2 * A(i, J) - F(i, J)

Print Format(D(i, J), "00.00"),

Next J

Print

Next i

End Sub

22. Найти произведение наибольшего элемента вектора х и наименьшего элемента вектора y.

Option Explicit

Private Sub Form_Click()

Dim i As Integer

Dim X(4) As Single, Y(4) As Single

Dim P As Single, MaxX As Single, MinY As Single

For i = 1 To 4

X(i) = (1 + i) / Sqr(i ^ 2 + 4)

Y(i) = 10 * Sin(1 + i) / Sqr(i ^ 2 + 4)

Print X(i), Y(i)

Next i

MaxX = X(1): MinY = Y(1)

For i = 1 To 4

If X(i) > MaxX Then MaxX = X(i)

If X(i) > MinY Then MinY = X(i)

Next i

P = MaxX * MinY: Print

Print "P = "; P

End Sub

23. Вычислить элементы вектора , где k сумма наибольших элементов векторов x и y. Получение наибольшего элемента вектора организовать в виде процедуры Function.

Option Explicit

Private Sub Form_Click()

Dim i As Integer, k As Single

Dim X(4) As Single, Y(4) As Single, V(4) As Single

For i = 1 To 4

X(i) = (1 + i) / Sqr(i ^ 2 + 4)

Y(i) = 10 * Sin(1 + i) / Sqr(i ^ 2 + 4)

Print X(i), Y(i)

Next i

k = Max(X) + Max(Y)

Print

Print "k = "; k

Print

Print "V(4)"

For i = 1 To 4

V(i) = (X(i) + Y(i)) / k

Print V(i)

Next i

End Sub

Function Max(M() As Single)

Dim i As Integer, J As Integer, Mx As Single

Mx = M(1)

For i = 1 To 4

If M(i) >= Mx Then Mx = M(i)

Next i

Max = Mx

End Function

24. Дана матрица А порядка n. Получить новую матрицу D, разделив все элементы матрицы А на ее наибольший элемент.

Option Explicit

Private Sub Form_Click()

Dim i As Integer, J As Integer

Dim A(4, 4) As Single, D(4, 4) As Single

Dim MaxA As Single

For i = 1 To 4

For J = 1 To 4

A(i, J) = 2 * Sin(i / Sqr(16 - J))

Next J

Next i

MaxA = A(1, 1)

For i = 1 To 4

For J = 1 To 4

If A(i, J) > MaxA Then MaxA = A(i, J)

Next J

Next i

For i = 1 To 4

For J = 1 To 4

D(i, J) = A(i, J) / MaxA

Print Format(D(i, J), "00.00"),

Next J

Print: Next i: End Sub

25. Вычислить вектор V по формуле: V = k x + l y, где k  наибольший элемент матрицы А, а l  наименьший элемент матрицы В. Получение наибольшего элемента матрицы организовать в виде процедуры Function.

Option Explicit

Private Sub Form_Click()

Dim i As Integer, J As Integer

Dim A(4, 4) As Single, B(4, 4) As Single

Dim X(4) As Single, Y(4) As Single, V(4) As Single

Dim k As Single, l As Single

For i = 1 To 4

For J = 1 To 4

A(i, J) = 2 * Sin(i / Sqr(16 - J))

B(i, J) = ((1 + (i + J) * J) / (i * (J + 1)) * 4 ^ (i - J))

Print Format(A(i, J), "00.00"),

Next J

Print

X(i) = (1 + i) / Sqr(i ^ 2 + 4)

Y(i) = 10 * Sin(1 + i) / Sqr(i ^ 2 + 4)

Next i

Print

k = A(1, 1)

l = B(1, 1)

For i = 1 To 4

For J = 1 To 4

If A(i, J) > k Then k = A(i, J)

If B(i, J) < l Then l = B(i, J)

Next J

Next i

Print "k = "; k, "l = "; l

Print

For i = 1 To 4

V(i) = k * X(i) + l * Y(i)

Print V(i)

Next i

Print: End Sub

26. Вычислить угол между векторами x и y. Вычисление скалярного произведения и длин векторов организовать в виде одной процедуры Function.

Option Explicit

Private Sub Form_Click()

Dim X(3) As Single, Y(3) As Single, i As Integer

Dim C As Single, Alfa As Single

Print "Вычислить угол Alfa между векторами (X(3) и Y(3)"

Print

Print "X(3) Y(3)"

For i = 1 To 3

X(1) = 1: X(2) = 1: X(3) = 0

Y(1) = 1: Y(2) = 0: Y(3) = 0

Print X(i), Y(i)

Next i

C = P(X(), Y()) / Sqr(P(X(), X())) * Sqr(P(Y(), Y()))

Print

Alfa = 2 * Atn(1) - Atn(C / Sqr(1 - C ^ 2))

Print "Alfa = "; Alfa * 180 / (4 * Atn(1))

End Sub

Function P(V() As Single, U() As Single) As Single

Dim i As Integer, E As Single

E = 0

For i = 1 To 3

E = E + V(i) * U(i)

Next i

P = E

End Function

27. Вычислить элементы матрицы D с помощью матричного многочлена D = А В  4 С 2. Вычисление произведения матриц организовать в виде процедуры Function.

Option Explicit

Private Sub Form_Click()

Dim i As Integer, J As Integer, k As Integer

Dim A(4, 4) As Single, B(4, 4) As Single, C(4, 4) As Single

Dim D(4, 4) As Single, E(4, 4) As Single, F(4, 4) As Single

For i = 1 To 4

For J = 1 To 4

A(i, J) = 2 * Sin(i / Sqr(16 - J))

B(i, J) = ((1 + (i + J) * J) / (i * (J + 1)) * 4 ^ (i - J))

C(i, J) = (5 * Log(2) - Exp(i + J)) / (4 ^ Abs(i - J) + 5)

Print Format(A(i, J), "00.00"),

Next J

Print

Next i

Print

Print

Proizvedenie A(), B(), F()

Proizvedenie C(), C(), E()

For i = 1 To 4

For J = 1 To 4

F(i, J) = 0

For k = 1 To 4

D(i, J) = F(i, k) - 4 * E(k, J)

Next k

Next J

Next i

For i = 1 To 4

For J = 1 To 4

Print Format(D(i, J), "00.00"),

Next J

Print

Next i

End Sub

Sub Proizvedenie(M() As Single, G() As Single, H() As Single)

Dim i As Integer, J As Integer, k As Integer

For i = 1 To 4

For J = 1 To 4

H(i, J) = 0

For k = 1 To 4

H(i, J) = H(i, J) + M(i, k) * G(k, J)

Next k : Next J : Next i

End Sub

28. Вычислить суммы элементов, расположенных на главных диагоналях матриц А, В и С. Найти среднее геометрическое этих сумм. Вычисление суммы элементов, расположенных на главных диагоналях матрицы организовать в виде процедуры Function.

Option Explicit

Private Sub Form_Click()

Dim i As Integer, J As Integer

Dim A(4, 4) As Single, B(4, 4) As Single, C(4, 4) As Single

Dim SG As Single

For i = 1 To 4

For J = 1 To 4

A(i, J) = 2 * Sin(i / Sqr(16 - J))

B(i, J) = ((1 + (i + J) * J) / (i * (J + 1)) * 4 ^ (i - J))

C(i, J) = (5 * Log(2) - Exp(i + J)) / (4 ^ Abs(i - J) + 5)

Print Format(A(i, J), "00.00"),

Next J

Print

Next i

Print

SG = (Sum(A()) * Sum(B()) * Sum(B())) ^ (1 / 3)

Print "SG = "; SG

End Sub

Function Sum(M() As Single)

Dim i As Integer, J As Integer

Sum = 0

For i = 1 To 4

Sum = Sum + M(i, i)

Next i

End Function

29. Найти наибольший элемент вектора z, координаты которого вычисляются по формулам: zi = xi yi, если xi + yi > 0 и zi = xi + yi, если xi + yi 0.

Option Explicit

Private Sub Form_Click()

Dim i As Integer

Dim X(4) As Single, Y(4) As Single, Z(4) As Single

Dim MaxZ As Single

For i = 1 To 4

X(i) = (1 + i) / Sqr(i ^ 2 + 4)

Y(i) = 10 * Sin(1 + i) / Sqr(i ^ 2 + 4)

Print X(i), Y(i)

Next i

For i = 1 To 4

If X(i) + Y(i) > 0 Then

Z(i) = X(i) * Y(i)

Else

Z(i) = X(i) + Y(i)

End If

Next i

MaxZ = Z(1)

Print

For i = 1 To 4

If Z(i) > MaxZ Then MaxZ = Z(i)

Next i

Print "MaxZ = "; MaxZ

End Sub

30. Вычислить среднее арифметическое наименьших элементов матриц А, В и С. Получение наименьшего элемента матоицы организовать в виде процедуры Function.

Option Explicit

Private Sub Form_Click()

Dim i As Integer, J As Integer

Dim A(4, 4) As Single, B(4, 4) As Single, C(4, 4) As Single

Dim SA As Single

Print "Исходная матрица А"

For i = 1 To 4

For J = 1 To 4

A(i, J) = 2 * Sin(i / Sqr(16 - J))

B(i, J) = ((1 + (i + J) * J) / (i * (J + 1)) * 4 ^ (i - J))

C(i, J) = (5 * Log(2) - Exp(i + J)) / (4 ^ Abs(i - J) + 5)

Print Format(A(i, J), "0.00"),

Next J

Print

Next i

Print

Print "Min A(4) = "; Format(Min(A), "0.00")

SA = (Min(A) + Min(B) + Min(C)) / 3

Print "SA = "; SA

End Sub

Function Min(M() As Single)

Dim i As Integer, J As Integer, Mn As Single

Mn = M(1, 1)

For i = 1 To 4

For J = 1 To 4

If M(i, J) <= Mn Then Mn = M(i, J)

Next J

Next i

Min = Mn

End Function

31. Вычислить среднее геометрическое модулей наибольших элементов матриц А, В и С. Получение наибольшего элемента матрицы организовать в виде процедуры Function.

Option Explicit

Private Sub Form_Click()

Dim i As Integer, J As Integer

Dim A(4, 4) As Single, B(4, 4) As Single, C(4, 4) As Single

Dim SG As Single

For i = 1 To 4

For J = 1 To 4

A(i, J) = 2 * Sin(i / Sqr(16 - J))

B(i, J) = ((1 + (i + J) * J) / (i * (J + 1)) * 4 ^ (i - J))

C(i, J) = (5 * Log(2) - Exp(i + J)) / (4 ^ Abs(i - J) + 5)

Print Format(A(i, J), "00.00"),

Next J

Print

Next i

Print

SG = (Max(A()) * Max(B()) * Max(C())) ^ (1 / 3)

Print "SG = "; SG

End Sub

Function Max(M() As Single)

Dim i As Integer, J As Integer, Mx As Single

Mx = M(1, 1)

For i = 1 To 4

For J = 1 To 4

If M(i, J) <= Mx Then Mx = M(i, J)

Next J

Next i

Max = Abs(Mx)

End Function

32. Вычислить матрицу D = АТВ С и заменить отрицательные элементы матрицы D нулями.

Option Explicit

Private Sub Form_Click()

Dim i As Integer, J As Integer, k As Integer

Dim A(4, 4) As Single, B(4, 4) As Single, C(4, 4) As Single

Dim D(4, 4) As Single, P(4, 4) As Single

For i = 1 To 4

For J = 1 To 4

A(i, J) = 2 * Sin(i / Sqr(16 - J))

B(i, J) = ((1 + (i + J) * J) / (i * (J + 1)) * 4 ^ (i - J))

C(i, J) = (5 * Log(2) - Exp(i + J)) / (4 ^ Abs(i - J) + 5)

Next J

Next i

For i = 1 To 4

For J = 1 To 4

P(i, J) = 0

For k = 1 To 4

P(i, J) = P(i, J) + B(i, k) * C(k, J)

Next k

Next J

Next i

For i = 1 To 4

For J = 1 To 4

D(i, J) = A(j, i) - P(i, J)

Print Format(D(i, J), "00.00"),

If D(i, J) < 0 Then D(i, J) = 0

Next J

Print

Next i

Print

For i = 1 To 4

For J = 1 To 4

Print Format(D(i, J), "00.00"),

Next J

Print

Next i

End Sub

33. Найти матрицу D = 4 АВ С и заменить в ней положительные элементы единицами.

Option Explicit

Private Sub Form_Click()

Dim i As Integer, J As Integer, k As Integer

Dim A(4, 4) As Single, B(4, 4) As Single, C(4, 4) As Single

Dim D(4, 4) As Single, P(4, 4) As Single, R(4, 4) As Single

Dim F(4, 4) As Single

For i = 1 To 4

For J = 1 To 4

A(i, J) = 2 * Sin(i / Sqr(16 - J))

B(i, J) = ((1 + (i + J) * J) / (i * (J + 1)) * 4 ^ (i - J))

C(i, J) = (5 * Log(2) - Exp(i + J)) / (4 ^ Abs(i - J) + 5)

R(i, J) = C(i, J) - B(i, J)

Next J

Next i

For i = 1 To 4

For J = 1 To 4

P(i, J) = 0

For k = 1 To 4

P(i, J) = P(i, J) + B(i, k) * C(k, J)

Next k

Next J

Next i

For i = 1 To 4

For J = 1 To 4

D(i, J) = 4 * A(i, J) - P(i, J)

Print Format(D(i, J), "00.00"),

Next J

Print

Next i

Print

For i = 1 To 4

For J = 1 To 4

If D(i, J) > 0 Then D(i, J) = 1

Print Format(D(i, J), "00.00"),

Next J

Print

Next i

End Sub

34. Найти разность наименьших элементов матриц А и В. Получение наименьшего элемента матрицы организовать в виде процедуры Function.

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