Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите написать процедуру произведения матрица на вектор.

44K
21 ноября 2008 года
Svet'Lana
1 / / 19.11.2008
Помогите, пожалуйста, написать чайнику процедуру произведения матрицы на вектор.
Процедура будет располагаться в стандартном модуле. Матрица в отдельном файле последовательного доступа, вектор тоже в файле посл. доступа, и результат выводиться отдельно на форму и в другой файл посл. доступа. Процедуры обращения к файлам не нужны, только произведения.

Код:
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
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог