Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
 Аватар для vovasy
4 / 4 / 1
Регистрация: 19.03.2013
Сообщений: 21

Использования файлов для работы с матрицами

01.04.2013, 00:17. Показов 1438. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Даны два файла вещественных чисел с именами Sa и Sb, содержащие элементы прямоугольной матрицы А и В (по строкам) , причем первый элемент каждого файла содержит количество столбцов соответствующей матрицы. Создать фаил той же структуры с именем Sc, содержащий элементы произведения А*В. Если матрицы А*В нельзя перемножить то оставить файл Sc пустым???
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.04.2013, 00:17
Ответы с готовыми решениями:

Класс: Разработать класс для работы с матрицами(операции над матрицами)...
Добрый вечер, хочу попросить о помощи с отловом проблемы. Сама задача: разработать класс для работы с матрицами(операции над...

Функции для работы с матрицами
Программа выполняет вставку одного массива в середину другого, нужно записать функциями создание массива и заполнение рандомными числами,...

Класс для работы с матрицами
Разработать класс обеспечивающий представление матрицы произвольного размера с возможностью изменения числа строки столбцов,вывода на экран...

4
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
02.04.2013, 01:09
Лучший ответ Сообщение было отмечено как решение

Решение

Visual Basic
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
Private Sub cmdCreateMatrix_Click()  ' Создаем матрицы
    Dim Sa() As Double, Sb() As Double
    CreateRandomMatrix Sa, Int(Rnd * 5) + 2, Int(Rnd * 5) + 2
    CreateRandomMatrix Sb, Int(Rnd * 5) + 2, Int(Rnd * 5) + 2
    SaveMatrixToFile Sa, App.Path & "\Sa"
    SaveMatrixToFile Sb, App.Path & "\Sb"
    txtLog.Text = "Созданные матрицы: " & vbNewLine
    PrintMatrix Sa, "Sa"
    PrintMatrix Sb, "Sb"
End Sub
Private Sub cmdMulMatrix_Click()    ' Перемножаем
    Dim Sa() As Double, Sb() As Double, Sc() As Double
    If Not LoadMatrixFromFile(Sa, App.Path & "\Sa") Then MsgBox ("Ошибка открытия файла"): Exit Sub
    If Not LoadMatrixFromFile(Sb, App.Path & "\Sb") Then MsgBox ("Ошибка открытия файла"): Exit Sub
    txtLog.Text = "Загрузка и перемножение: " & vbNewLine
    PrintMatrix Sa, "Sa"
    PrintMatrix Sb, "Sb"
    If MulMatrix(Sa, Sb, Sc) Then SaveMatrixToFile Sc, App.Path & "\Sc" Else MsgBox ("Матрицы нельзя умножить"): Exit Sub
    PrintMatrix Sc, "Sc"
End Sub
Private Function MulMatrix(Mtrx1() As Double, Mtrx2() As Double, MtrxOut() As Double) As Boolean 'Функция умножения двух матриц
    If UBound(Mtrx1, 2) <> UBound(Mtrx2, 1) Then Exit Function
    ReDim MtrxOut(UBound(Mtrx1, 1), UBound(Mtrx2, 2))
    For i = 0 To UBound(Mtrx1, 1): For j = 0 To UBound(Mtrx2, 2): MtrxOut(i, j) = 0
        For k = 0 To UBound(Mtrx1, 2)
            MtrxOut(i, j) = MtrxOut(i, j) + Mtrx2(k, j) * Mtrx1(i, k)
        Next
    Next: Next
    MulMatrix = True
End Function
Private Function PrintMatrix(Mtx() As Double, Name As String) ' Отображаем матрицу
    Dim i As Long, j As Long, q As String
    txtLog.Text = txtLog.Text & Name & " {" & vbNewLine
    For i = 0 To UBound(Mtx, 1): For j = 0 To UBound(Mtx, 2)
        q = Space(5)
        LSet q = Str$(Mtx(i, j))
        txtLog.Text = txtLog.Text & q & "  "
    Next
    txtLog.Text = txtLog.Text & vbNewLine
    Next
    txtLog.Text = txtLog.Text & "}" & vbNewLine
End Function
Private Function LoadMatrixFromFile(Mtx() As Double, Path As String) As Boolean ' Процедура, загружающая матрицу из файла
    Dim fNum As Integer, D As Long, L As Long
    Dim i As Long, j As Long
    If Dir$(Path) = vbNullString Then Exit Function 'Если файла не существует то выходим
    fNum = FreeFile
    Open Path For Binary As fNum
    Get fNum, , D
    If D <= 0 Or D > 7 Then Exit Function    ' Если количество столбцов некорректно, то выходим
    L = Int(CSng((LOF(fNum) - 4) / 8) / D + 0.5) ' Определяем количество строк
    ReDim Mtx(D - 1, L - 1)
    For i = 0 To UBound(Mtx, 1): For j = 0 To UBound(Mtx, 2)
        Get fNum, , Mtx(i, j)
    Next: Next
    Close fNum
    LoadMatrixFromFile = True
End Function
Private Sub SaveMatrixToFile(Mtx() As Double, Path As String) 'Процедура, сохраняющая матрицу в файл
    Dim fNum As Integer
    Dim i As Long, j As Long
    If Not Dir$(Path) = vbNullString Then Kill Path
    fNum = FreeFile
    Open Path For Binary As fNum
    ' Записываем число столбцов
    Put fNum, , CLng(UBound(Mtx, 1) + 1)
    ' Записываем данные по строкам
    For i = 0 To UBound(Mtx, 1): For j = 0 To UBound(Mtx, 2)
        Put fNum, , Mtx(i, j)
    Next: Next
    Close fNum
End Sub
Private Sub CreateRandomMatrix(Mtx() As Double, ByVal Col As Long, ByVal Row As Long) 'Процедура, создающая произвольную матрицу
    Dim i As Long, j As Long
    ReDim Mtx(Col - 1, Row - 1)
    For i = 0 To UBound(Mtx, 1): For j = 0 To UBound(Mtx, 2)
        Mtx(i, j) = Int(Rnd * 10)
    Next: Next
End Sub
Вложения
Тип файла: rar MatrixMultiply.rar (2.3 Кб, 10 просмотров)
3
 Аватар для vovasy
4 / 4 / 1
Регистрация: 19.03.2013
Сообщений: 21
02.04.2013, 20:28  [ТС]
Сколько ж ты на эту задачу убил времени)
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
03.04.2013, 00:27
Цитата Сообщение от vovasy Посмотреть сообщение
Сколько ж ты на эту задачу убил времени)

Не по теме:

Просто опубликовать задание и самому даже не пытаться, конечно, значительно быстрей!



vovasy,

Не по теме:

Ты вот посмотри!
Из всех созданных тобой тем ты ни разу даже не пытался что-то хоть попробовать сделать!
Даже когда тебе посказывают как сделать.
Ни единой строчки самостоятельного кода!
А здесь не решебник!
Здесь помогают разобраться


Правила гласят:
Как можно более полно описывайте суть проблемы или вопроса, что было сделано для ее решения и какие результаты получены.
0
 Аватар для vovasy
4 / 4 / 1
Регистрация: 19.03.2013
Сообщений: 21
03.04.2013, 11:20  [ТС]
Цитата Сообщение от Alex77755 Посмотреть сообщение

Не по теме:

Просто опубликовать задание и самому даже не пытаться, конечно, значительно быстрей!



vovasy,

Не по теме:

Ты вот посмотри!
Из всех созданных тобой тем ты ни разу даже не пытался что-то хоть попробовать сделать!
Даже когда тебе посказывают как сделать.
Ни единой строчки самостоятельного кода!
А здесь не решебник!
Здесь помогают разобраться


Правила гласят:
Я понял вас спасибо, я исправлюсь вот увидите)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.04.2013, 11:20
Помогаю со студенческими работами здесь

Класс для работы с матрицами
Добрый день. Подскажите, пожалуйста, существует ли какой-то общепринятый класс для работы с матрицами (сложение, умножение, вычисление...

Класс для работы с матрицами
Разработать класс обеспечивающий представление матрицы произвольного размера с возможностью изменения числа строки столбцов,вывода на экран...

Класс для работы с матрицами
Неплохая библиотека :) . Люди, у кого есть нервы скачать весь сайт и в архиве прислать ко мне на мыло :) (Библиотека хорошая, а на качалку...

Библиотека для работы с матрицами
Пожалуйста, подскажите библиотеку, где можно находить определитель матрицы. И какой функцией если можно))

Конструкторы для работы с матрицами
Доброго времени суток, многоуважаемые форумчане. Ситуация такая: преподаватель дал задание - создать класс матриц, НО предварительно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru