Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2019, 19:47   #1
SkyGir
Пользователь
 
Регистрация: 24.05.2019
Сообщений: 31
По умолчанию [VBA] Сформировать две матрицы и рассчитать их: сумму; разность; произведение

Здравствуйте, пожалуйста подскажите, что не так. Вроде все считает, но считает как-то коряво.
Код:
Option Explicit 
Option Base 1
Sub Massiv()
    Dim a() As Double, b() As Double, i As Integer, j As Integer, s$, s1$, n As Integer, sum As Double, raz As Double, pro As Double
    n = InputBox (“Введите количество элементов массива", "Определение размера массива")
    ReDim a(1 To n, 1 To n) As Double
    ReDim b(1 To n, 1 To n) As Double
    Randomize
    For i = 1 To n
        For j = 1 To n
            a(i, j) = Int(10 * Rnd + 1)
            b(i, j) = Int(10 * Rnd + 1)
        Next j
    Next i
    For i = 1 To n
        For j = 1 To n
            sum = a(i, j) + b(i, j)
            raz = a(i, j) - b(i, j)
            pro = a(i, j) * b(i, j)
        Next j
    Next i
    s = ""
    s1 = ""
    For i = 1 To n
        For j = 1 To n
            s = s & a(i, j) & "   "
            s1 = s1 & b(i, j) & "   "
        Next j
        s = s & Chr(13)
        s1 = s1 & Chr(13)
    Next i
    MsgBox("Massiv1: " & Chr(13) & s & "Massiv2: " & Chr(13) & s1 & "Сумма= " & sum & Chr(13) & "Разность= " & raz & Chr(13) & "Произведение= " & pro)
End Sub
SkyGir вне форума Ответить с цитированием
Старый 24.05.2019, 20:11   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

С каких пор сумма, разность и произведение матриц - это сумма, разность и произведение их угловых элементов?
p51x вне форума Ответить с цитированием
Старый 24.05.2019, 20:22   #3
SkyGir
Пользователь
 
Регистрация: 24.05.2019
Сообщений: 31
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
С каких пор сумма, разность и произведение матриц - это сумма, разность и произведение их угловых элементов?
сам понимаю,что считается по этим элементам, но допилить код не соображу как
SkyGir вне форума Ответить с цитированием
Старый 24.05.2019, 22:24   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Т.е. код писали не вы. Иначе почему до сих пор переменные под результаты до сих пор не массивы?
p51x вне форума Ответить с цитированием
Старый 25.05.2019, 06:12   #5
SkyGir
Пользователь
 
Регистрация: 24.05.2019
Сообщений: 31
По умолчанию

Код мой. Выполняю ряд заданий и просто копирую из предыдущего. Вполне возможно, уже невнимательность/недомозгованность
SkyGir вне форума Ответить с цитированием
Старый 25.05.2019, 17:37   #6
SkyGir
Пользователь
 
Регистрация: 24.05.2019
Сообщений: 31
По умолчанию

Все допилил. Все работает
Код:
Option Explicit
Option Base 1
Sub Massiv()
    Dim a() As Double, b() As Double, i As Integer, j As Integer, s$, s1$, s2$, s3$, s4$, n As Integer, sum() As Double, raz() As Double, pro() As Double
    n = InputBox(“Введите количество элементов массива", "Определение размера массива")
    ReDim a(1 To n, 1 To n) As Double
    ReDim b(1 To n, 1 To n) As Double
    Randomize
    For i = 1 To n
        For j = 1 To n
            a(i, j) = Int(10 * Rnd + 1)
            b(i, j) = Int(10 * Rnd + 1)
        Next j
    Next i
    ReDim sum(1 To n, 1 To n) As Double
    ReDim raz(1 To n, 1 To n) As Double
    ReDim pro(1 To n, 1 To n) As Double
    For i = 1 To n
        For j = 1 To n
            sum(i, j) = a(i, j) + b(i, j)
            raz(i, j) = a(i, j) - b(i, j)
            pro(i, j) = a(i, j) * b(i, j)
        Next j
    Next i
    s = ""
    s1 = ""
    s2 = ""
    s3 = ""
    s4 = ""
    For i = 1 To n
        For j = 1 To n
            s = s & a(i, j) & "   "
            s1 = s1 & b(i, j) & "   "
            s2 = s2 & sum(i, j) & "   "
            s3 = s3 & raz(i, j) & "   "
            s4 = s4 & pro(i, j) & "   "
        Next j
        s = s & Chr(13)
        s1 = s1 & Chr(13)
        s2 = s2 & Chr(13)
        s3 = s3 & Chr(13)
        s4 = s4 & Chr(13)
    Next i
    MsgBox("Massiv1: " & Chr(13) & s & "Massiv2: " & Chr(13) & s1 & "Сумма массивов: " & s2 & Chr(13) & "Разность массивов: " & s3 & Chr(13) & Произведение массивов " & s4)
End Sub
SkyGir вне форума Ответить с цитированием
Старый 25.05.2019, 17:46   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Так не допилили же... матрицы не так умножаются.
p51x вне форума Ответить с цитированием
Старый 25.05.2019, 18:15   #8
SkyGir
Пользователь
 
Регистрация: 24.05.2019
Сообщений: 31
По умолчанию

Проверил. Согласен не так матрицы умножаются. Если не сложно, подскажите, пожалуйста, решение моего вопроса

Последний раз редактировалось SkyGir; 25.05.2019 в 18:17.
SkyGir вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сформировать одномерный массив как сумму отрицательных элементов строк матрицы Андрей564 Паскаль, Turbo Pascal, PascalABC.NET 10 20.06.2015 16:33
Даны два действительных числа х и у. Вычислить их сумму, разность, произведение и частное Raina97 Общие вопросы Delphi 4 05.01.2015 07:57
Дана матрица размером M х N и целое число К(1<=К<=N) .Найти сумму и произведение элементов К-го столбца данной матрицы Richik123 Паскаль, Turbo Pascal, PascalABC.NET 0 31.05.2012 17:19
Задача: сформировать новый массив, содержащий номера строк матрицы, имеющих отрицательную сумму элементов Striker14 Помощь студентам 1 23.02.2009 23:29