powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Сложение и транспонирование Матриц
16 сообщений из 16, страница 1 из 1
Сложение и транспонирование Матриц
    #33420860
Dianira
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если вам не сложно, не могли бы помочь с работой?
необходимо написать программу транспонирования и сложения матриц в VBA. Я собственно понимаю, что требуется, но не могу это записать. помогите пожалуйста
...
Рейтинг: 0 / 0
Сложение и транспонирование Матриц
    #33421157
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
' Транспонирование.

Public Sub TranspMatrix()
    Dim avarMatrix() As Variant
    Dim avarMatrixTransp() As Variant
    Dim intI As Integer
    Dim intJ As Integer
    
    ReDim avarMatrix( 1  To  3 ,  1  To  2 )
    
    Randomize
    
    Debug.Print "Исходная матрица: "
    
    For intI = LBound(avarMatrix,  1 ) To UBound(avarMatrix,  1 )
        For intJ = LBound(avarMatrix,  2 ) To UBound(avarMatrix,  2 )
            avarMatrix(intI, intJ) = Int(Rnd *  10 ) +  1 
            Debug.Print avarMatrix(intI, intJ);
        Next intJ
        Debug.Print ""
    Next intI
    
    Debug.Print "=========================="
        
    ReDim avarMatrixTransp( 1  To UBound(avarMatrix,  2 ),  1  To _
      UBound(avarMatrix,  1 ))
    
    Debug.Print "Транспонированная матрица: "
    
    For intJ = LBound(avarMatrix,  2 ) To UBound(avarMatrix,  2 )
        For intI = LBound(avarMatrix,  1 ) To UBound(avarMatrix,  1 )
            avarMatrixTransp(intJ, intI) = avarMatrix(intI, intJ)
            Debug.Print avarMatrixTransp(intJ, intI);
        Next intI
        Debug.Print ""
    Next intJ
End Sub

' Суммирование.

Public Sub SummMatrix()
    Dim avarMatrix1() As Variant
    Dim avarMatrix2() As Variant
    Dim avarMatrixSumm() As Variant
    Dim intI As Integer
    Dim intJ As Integer

    ReDim avarMatrix1( 1  To  3 ,  1  To  2 )
    ReDim avarMatrix2( 1  To  3 ,  1  To  2 )
    ReDim avarMatrixSumm( 1  To  3 ,  1  To  2 )
    
    Randomize

    Debug.Print "Матрица № 1: "
    
    For intI = LBound(avarMatrix1,  1 ) To UBound(avarMatrix1,  1 )
        For intJ = LBound(avarMatrix1,  2 ) To UBound(avarMatrix1,  2 )
            avarMatrix1(intI, intJ) = Int(Rnd *  10 ) +  1 
            Debug.Print avarMatrix1(intI, intJ);
        Next intJ
        Debug.Print ""
    Next intI
    
    Debug.Print "=========================="
    Debug.Print "Матрица № 2: "
    
    For intI = LBound(avarMatrix2,  1 ) To UBound(avarMatrix2,  1 )
        For intJ = LBound(avarMatrix2,  2 ) To UBound(avarMatrix2,  2 )
            avarMatrix2(intI, intJ) = Int(Rnd *  10 ) +  1 
            Debug.Print avarMatrix2(intI, intJ);
        Next intJ
        Debug.Print ""
    Next intI
    
    Debug.Print "=========================="
    Debug.Print "Суммированная матрица: "
    
    For intI = LBound(avarMatrixSumm,  1 ) To UBound(avarMatrixSumm,  1 )
        For intJ = LBound(avarMatrixSumm,  2 ) To UBound(avarMatrixSumm,  2 )
            avarMatrixSumm(intI, intJ) = avarMatrix1(intI, intJ) + _
              avarMatrix2(intI, intJ)
            Debug.Print avarMatrixSumm(intI, intJ);
        Next intJ
         Debug.Print ""
    Next intI
End Sub
...
Рейтинг: 0 / 0
Сложение и транспонирование Матриц
    #33423365
Dianira
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
огромнейшее спасибо...не всё понятно, но пойду разбираться
...
Рейтинг: 0 / 0
Сложение и транспонирование Матриц
    #33456329
Dianira
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
*смущённо* а нельзя то же самое, но с подгруппами?...
...
Рейтинг: 0 / 0
Сложение и транспонирование Матриц
    #33456651
Объясни поподробнее.
...
Рейтинг: 0 / 0
Сложение и транспонирование Матриц
    #33458437
Dianira
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Написать подпрограммы сложения и транспонирования матриц.

вот так звучит задание
...
Рейтинг: 0 / 0
Сложение и транспонирование Матриц
    #33458547
Так программы уже написаны.
...
Рейтинг: 0 / 0
Сложение и транспонирование Матриц
    #33458550
Dianira
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а просят, чтобы было с ПОДпрограммами
...
Рейтинг: 0 / 0
Сложение и транспонирование Матриц
    #33458609
Выдели части, отвечающие за сложение и транспонирование, и вынеси их в отдельные программы. Они как раз и будут подпрограммами обработки заданных массивов.
...
Рейтинг: 0 / 0
Сложение и транспонирование Матриц
    #33461170
Dianira
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
короче препод выдал мне вот такую весчь:

Option Explicit
Const min1 = 1, min2 = 3, max1 = 3, max2 = 7
Sub Test()
Dim intA(min1 To max1, min2 To max2) As Integer
Dim intB(min1 To max1, min2 To max2) As Integer
Dim intC(min1 To max1, min2 To max2) As Integer
Dim intFor1 As Integer
Dim intFor2 As Integer

For intFor1 = min1 To max1
For intFor2 = min2 To max2
intA(intFor1, intFor2) = intFor1
intB(intFor1, intFor2) = -intFor1
intC(intFor1, intFor2) = -intFor1
Next intFor2
Next intFor1
' SumMatrix intA, intB, intC
PrintMatr intA
PrintMatr intB
PrintMatr intC
End Sub
Sub PrintMatr(intA() As Integer)
Dim intI As Integer
Dim intJ As Integer
Debug.Print "Печать матрицы"
For intI = LBound(intA, 1) To UBound(intA, 1)
For intJ = LBound(intA, 2) To UBound(intA, 2)
Debug.Print intA(intI, intJ);
Next intJ
Debug.Print
Next intI
End Sub

вот можете подробно объяснить, что это и как мне сделать такое же для транспонирования. желательно до завтра, а то капец моей рыжей пустой голове...(((
...
Рейтинг: 0 / 0
Сложение и транспонирование Матриц
    #33461300
Посмотри.

Код: plaintext
Const min1 As Integer =  1 \nConst min2 As Integer =  3 \nConst max1 As Integer =  3 \nConst max2 As Integer =  7 \n\nSub Test()\n    Dim intA(min1 To max1, min2 To max2) As Integer\n    Dim intB(min1 To max1, min2 To max2) As Integer\n    Dim intC(min1 To max1, min2 To max2) As Integer\n    Dim intFor1 As Integer\n    Dim intFor2 As Integer\n\n    For intFor1 = min1 To max1\n        For intFor2 = min2 To max2\n            intA(intFor1, intFor2) = intFor1\n            intB(intFor1, intFor2) = -intFor1\n            intC(intFor1, intFor2) = -intFor1\n        Next intFor2\n    Next intFor1\n    \n    PrintMatr intA\n    PrintMatr intB\n    PrintMatr intC\n    \n    SumMatrix intA, intB, intC\n    \n    TranspMatrix intA\n    TranspMatrix intB\n    TranspMatrix intC\nEnd Sub\n\nSub SumMatrix( _\n  intMx1() As Integer, _\n  intMx2() As Integer, _\n  intMx3() As Integer)\n    Dim intI As Integer\n    Dim intJ As Integer\n    Dim aintSummMatrix() As Integer\n    \n    ReDim aintSummMatrix(LBound(intMx1,  1 ) To UBound(intMx1,  1 ), _\n      LBound(intMx1,  2 ) To UBound(intMx1,  2 ))\n    \n    Debug.Print "Суммированная матрица:"\n    Debug.Print "=========================="\n    \n    For intI = LBound(aintSummMatrix,  1 ) To UBound(aintSummMatrix,  1 )\n        For intJ = LBound(aintSummMatrix,  2 ) To UBound(aintSummMatrix,  2 )\n            aintSummMatrix(intI, intJ) = intMx1(intI, intJ) + _\n              intMx2(intI, intJ) + intMx3(intI, intJ)\n            Debug.Print aintSummMatrix(intI, intJ);\n        Next intJ\n        Debug.Print\n    Next intI\nEnd Sub\n\nSub TranspMatrix( _\n  intMx() As Integer)\n    Dim intI As Integer\n    Dim intJ As Integer\n    Dim aintTranspMatrix() As Integer\n    \n    ReDim aintTranspMatrix( 1  To UBound(intMx,  2 ),  1  To _\n      UBound(intMx,  1 ))\n      \n    Debug.Print "Транспонированная матрица:"\n    Debug.Print "=========================="\n      \n    For intJ = LBound(intMx,  2 ) To UBound(intMx,  2 )\n        For intI = LBound(intMx,  1 ) To UBound(intMx,  1 )\n            aintTranspMatrix(intJ, intI) = intMx(intI, intJ)\n            Debug.Print aintTranspMatrix(intJ, intI);\n        Next intI\n        Debug.Print\n    Next intJ\nEnd Sub\n  \nSub PrintMatr( _\n  intA() As Integer)\n    Dim intI As Integer\n    Dim intJ As Integer\n    \n    Debug.Print "Печать матрицы:"\n    Debug.Print "=========================="\n    \n    For intI = LBound(intA,  1 ) To UBound(intA,  1 )\n        For intJ = LBound(intA,  2 ) To UBound(intA,  2 )\n            Debug.Print intA(intI, intJ);\n        Next intJ\n        Debug.Print\n    Next intI\nEnd Sub

Кстати свой топик про случайные числа смотрела?
...
Рейтинг: 0 / 0
Сложение и транспонирование Матриц
    #33462881
Dianira
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да, я видела. только это не совсем моё. просто моим именем воспользовались. но всё равно спасибо, что помогли.

а вот это можно закомментировать или хотя бы пояснить в чём смысл.
...
Рейтинг: 0 / 0
Сложение и транспонирование Матриц
    #33463209
Dianira
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
лан, всё уже не нужно. Спасибо огромнейшее за помощь. Крайне благодарна!
...
Рейтинг: 0 / 0
Сложение и транспонирование Матриц
    #33463361
Всмысле не нужно? Сама разобралась?
...
Рейтинг: 0 / 0
Сложение и транспонирование Матриц
    #33463403
Dianira
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да, я попросила помочь брата и мы всё сделали и разобрали. Большое спасибо за оказанную помощь.
...
Рейтинг: 0 / 0
Сложение и транспонирование Матриц
    #34095960
hirsty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
СпасоБо коНэшн!!! но у мя ещё один вопросик.... у меня матрица 5*5.
мне надо найти обратную...
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Сложение и транспонирование Матриц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]