Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Сложение и транспонирование Матриц / 16 сообщений из 16, страница 1 из 1
06.12.2005, 22:17
    #33420860
Dianira
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложение и транспонирование Матриц
если вам не сложно, не могли бы помочь с работой?
необходимо написать программу транспонирования и сложения матриц в VBA. Я собственно понимаю, что требуется, но не могу это записать. помогите пожалуйста
...
Рейтинг: 0 / 0
07.12.2005, 09:02
    #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
07.12.2005, 18:41
    #33423365
Dianira
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложение и транспонирование Матриц
огромнейшее спасибо...не всё понятно, но пойду разбираться
...
Рейтинг: 0 / 0
25.12.2005, 17:12
    #33456329
Dianira
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложение и транспонирование Матриц
*смущённо* а нельзя то же самое, но с подгруппами?...
...
Рейтинг: 0 / 0
26.12.2005, 08:19
    #33456651
Сложение и транспонирование Матриц
Объясни поподробнее.
...
Рейтинг: 0 / 0
26.12.2005, 23:31
    #33458437
Dianira
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложение и транспонирование Матриц
Написать подпрограммы сложения и транспонирования матриц.

вот так звучит задание
...
Рейтинг: 0 / 0
27.12.2005, 08:19
    #33458547
Сложение и транспонирование Матриц
Так программы уже написаны.
...
Рейтинг: 0 / 0
27.12.2005, 08:21
    #33458550
Dianira
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложение и транспонирование Матриц
а просят, чтобы было с ПОДпрограммами
...
Рейтинг: 0 / 0
27.12.2005, 09:11
    #33458609
Сложение и транспонирование Матриц
Выдели части, отвечающие за сложение и транспонирование, и вынеси их в отдельные программы. Они как раз и будут подпрограммами обработки заданных массивов.
...
Рейтинг: 0 / 0
28.12.2005, 10:37
    #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
28.12.2005, 11:19
    #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
28.12.2005, 18:07
    #33462881
Dianira
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложение и транспонирование Матриц
да, я видела. только это не совсем моё. просто моим именем воспользовались. но всё равно спасибо, что помогли.

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


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