Из матрицы А по заданному правилу получить элементы вектора - VB

Формулировка задачи:

Помогите, пожалуйста! Никак не соображу 2 задание (1 вроде получилось)
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
1 Рассчитать элементы квадратной матрицы 2 Из матрицы А по заданному правилу получить элементы вектора i=1,2,…,n. где bij- элементы матрицы, полученные заменой элементов побочной диагонали матрицы А на сумму поддиагональных элементов каждого столбца.

Код к задаче: «Из матрицы А по заданному правилу получить элементы вектора - VB»

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

14   голосов, оценка 4.143 из 5


СОХРАНИТЬ ССЫЛКУ