Процедура будет располагаться в стандартном модуле. Матрица в отдельном файле последовательного доступа, вектор тоже в файле посл. доступа, и результат выводиться отдельно на форму и в другой файл посл. доступа. Процедуры обращения к файлам не нужны, только произведения.
- Код: Выделить всё
Option Explicit
Option Base 1
Public m As Integer, n As Integer, i As Integer, j As Integer
Public objForma As Object
Public sngMat1(1 To 4, 1 To 4) As Single, sngMat2(1 To 5, 1 To 5) As Single, sngMat3(1 To 4, 1 To 1) As Single, sngMat4(1 To 5, 1 To 1) As Single, sngP1(1 To 4, 1 To 1) As Single, sngP2(1 To 5, 1 To 1) As Single 'sngMat3 и sngMat4- это и есть вектора, а sngP1 и sngP2-произведения матриц на вектора
'процедура ввода матрицы из файла
Public Sub VvodMatFile(sngMat() As Single, m, n, FileName$, MatName$, objForma As Object)
Open FileName$ For Input As #1
For i = 1 To n
For j = 1 To m
Input #1, sngMat(i, j)
Next j
Next i
Close #1
Call VivodMatForm(sngMat(), n, m, MatName$, objForma)
End Sub
'процедура вывода матрицы на формы
Public Sub VivodMatForm(sngMat() As Single, m, n, MatName$, objForma)
Load objForma
objForma.Show
objForma.Print Tab(10); MatName$
For i = 1 To m
For j = 1 To n
objForma.Print Tab(10 * j); sngMat(i, j);
Next j
objForma.Print
Next i
End Sub
'процедура вывода матрицы в файл последовательного доступа
Public Sub VivodMatFile(sngMat() As Single, m, n, FileName$, MatName$)
Open FileName$ For Append As #2
Print #2, Tab(15); MatName$
For i = 1 To n
For j = 1 To m
Print #2, Tab(j * 10); sngMat(i, j);
Next j: Print #2,
Next i: Close #2
End Sub
'процедура вычисления произведения матрицы на вектор
'и запоминания ее в новом массиве
Public Sub ProizMat(sngMat() As Single, m, n, MatName$, sngP() As Single, objForma As Object)
Вот сюда нужна процедура!
Call VivodMatForm(sngMat(), m, n, MatName$, objForma)
End Sub
'процедура вывода произведения матрицы на вектор на форму
Sub VivodProizMatForm(sngP() As Single, n, Name$, objForma As Object)
Load objForma
objForma.Show
objForma.Print Tab(15); Name$
For i = 1 To n
objForma.Print " "; sngP(i);
Next i
End Sub
'процедура ввода произведения матрицы на вектор в файл
Sub VivodProizMatFile(sngP() As Single, n, Name$, FileName$)
Open FileName$ For Append As 2
Print #2, Name$
For i = 1 To n
Print #2, " "; sngP(i);
Next i
Print #2,
Close #2
End Sub