MatrVektVB
.docОсновы алгоритмизации в задачах обработки массивов и ее реализация в среде 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)
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 "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 "Длина вектора 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
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
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
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 "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
Next i
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
Next i
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
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
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
Next i
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
Next i
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
Next i
For i = 1 To 4
X(i) = (1 + i) / Sqr(i ^ 2 + 4)
Print X(i)
Next i
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
Next i
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
Next i
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
Next i
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
Next i
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
For i = 1 To 4
For J = 1 To 5
Print Format(D(i, J), "00.00"),
Next J
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
Next i
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
For i = 1 To 4
For J = 1 To 4
Print Format(F(i, J), "00.00"),
Next J
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
Next i
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
Next i
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
Next i
End Sub
21. Получить матрицу D, каждый элемент которой определяется формулой Di,j = 2Аi,j Fi,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
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 "k = "; k
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
X(i) = (1 + i) / Sqr(i ^ 2 + 4)
Y(i) = 10 * Sin(1 + i) / Sqr(i ^ 2 + 4)
Next i
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
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 "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()))
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
Next i
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
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
Next i
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)
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
Next i
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
Next i
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
Next i
For i = 1 To 4
For J = 1 To 4
Print Format(D(i, J), "00.00"),
Next J
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
Next i
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
Next i
End Sub
34. Найти разность наименьших элементов матриц А и В. Получение наименьшего элемента матрицы организовать в виде процедуры Function.