Из матрицы А по заданному правилу получить элементы вектора - VB
Формулировка задачи:
Помогите, пожалуйста! Никак не соображу 2 задание (1 вроде получилось)
1 Рассчитать элементы квадратной матрицы
2 Из матрицы А по заданному правилу получить элементы вектора i=1,2,…,n.
где bij- элементы матрицы, полученные заменой элементов побочной диагонали матрицы А на сумму поддиагональных элементов каждого столбца.
Листинг программы
- Private Sub Command1_Click()
- Picture1.Cls
- n = Val(Text1.Text)
- For i = 1 To n
- For j = 1 To n
- a = ((2 ^ i / i ^ 2) + (2 * j / j ^ 2)) / (Exp(i) / Exp(j))
- Picture1.Print Format(a, "##.###"), " ";
- Next j
- Picture1.Print Chr(13) + Chr(10)
- Next i
- End Sub
Решение задачи: «Из матрицы А по заданному правилу получить элементы вектора»
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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д