Из матрицы А по заданному правилу получить элементы вектора - VB
Формулировка задачи:
Помогите, пожалуйста! Никак не соображу 2 задание (1 вроде получилось)
1 Рассчитать элементы квадратной матрицы
2 Из матрицы А по заданному правилу получить элементы вектора i=1,2,…,n.
где bij- элементы матрицы, полученные заменой элементов побочной диагонали матрицы А на сумму поддиагональных элементов каждого столбца.
Решение задачи: «Из матрицы А по заданному правилу получить элементы вектора»
textual
Листинг программы
Option Explicit Dim n As Integer, i As Integer, j As Integer Dim a() As Double, B() As Double, X() As Double, sum As Double Private Sub Command1_Click() Picture1.Cls n = Val(Text1.Text) ReDim a(1 To n, 1 To n), B(1 To n, 1 To n), X(1 To n) Picture1.Print "Матрица А" For i = 1 To n For j = 1 To n a(i, j) = ((2 ^ i / i ^ 2) + (2 * j / j ^ 2)) / (Exp(i) / Exp(j)) Picture1.Print Round(a(i, j), 3) & vbTab; Next j Picture1.Print Next i B = a ' матрицу В приавниваем к А Picture1.Print Picture1.Print "Сумма элементов под побочной диагональю" For j = 1 To n sum = 0 For i = n - (j - 2) To n sum = sum + B(i, j) 'вычисляем сумму под побочной диагональю Next i B(n - j + 1, j) = sum 'заменяем элементы побочной диагонали матрицы В на сумму поддиагональных элементов Picture1.Print Round(sum, 3) & vbTab; Next j Picture1.Print vbCrLf Picture1.Print "Матрица В" For i = 1 To n sum = 0 For j = 1 To n Picture1.Print Round(B(i, j), 3) & vbTab; Next j Picture1.Print Next i Picture1.Print Picture1.Print "Вектор Х" For i = 1 To n sum = 0 For j = 1 To n sum = sum + Sin(B(i, j)) Next j X(i) = sum Picture1.Print Round(X(i), 3) & vbTab; Next i Sort X Picture1.Print vbCrLf Picture1.Print "Упорядоченный вектор Х (нечётные-по убыванию,чётные-по возрастанию)" For i = 1 To n Picture1.Print Round(X(i), 3) & vbTab; Next i End Sub Sub Sort(ByRef a() As Double) Dim q As Integer, i As Integer, n As Integer, tmp As Double n = UBound(a, 1) Do q = 0 For i = 1 To n - 2 If i Mod 2 <> 0 Then If a(i + 2) > a(i) Then q = -1 tmp = a(i) a(i) = a(i + 2) a(i + 2) = tmp End If Else If a(i + 2) < a(i) Then q = -1 tmp = a(i) a(i) = a(i + 2) a(i + 2) = tmp End If End If Next i If q = 0 Then Exit Do Loop End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д