Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 22.01.2011
Сообщений: 25

Умножение неквадратных матриц

23.01.2011, 07:57. Показов 1734. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проблема только в том, что квадратные матрицы умножает неправильно, а с не квадратными вообще что-тоне то делает. до умножения всё делает правильно.Ошибка я думаю где-то тут

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 void __fastcall TForm1::Button4Click(TObject *Sender)
{
StringGrid4->ColCount=(int)csedN->Value;
StringGrid4->RowCount=(int)csedN->Value;
for(int col=0;col<csedM->Value;col++)
 for(int row=0;row<csedN->Value;row++)
 {
    StringGrid4->Cells[col][row]=0;
    for (int k=0;k<csedN->Value;k++)
   {
    StringGrid4->Cells[col][row]=((StringGrid4->Cells[col][row]=="")?0:StrToInt(StringGrid4->Cells[col][row]))+StrToInt(StringGrid1->Cells[col][k])*StrToInt(StringGrid2->Cells[k][row]);
   }
 }
}
А если первую матрицу задать 2х3, то при умножении матриц выдаёт "is not a valid integer value"
Помогите пожалуйста

Добавлено через 14 часов 15 минут
Сделал следующим образом, теперь правильно перемножает любые матрицы
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void __fastcall TForm1::Button4Click(TObject *Sender)
{
int t=0;
StringGrid4->ColCount=(int)csedM->Value;
StringGrid4->RowCount=(int)csedM->Value;
if (csedM->Value>csedN->Value) t=csedM->Value;
      else t=csedN->Value;
for(int row=0;row<csedM->Value;row++)
 for(int col=0;col<csedM->Value;col++)
   {
    StringGrid4->Cells[col][row]=0;
      for (int k=0;k<t;k++)
       {
        if (k>(csedN->Value)-1||k>csedM->Value) continue;
        else
        StringGrid4->Cells[col][row]=StrToInt(StringGrid4->Cells[col][row])+StrToInt(StringGrid1->Cells[k][row])*StrToInt(StringGrid2->Cells[col][k]);
       }
   }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.01.2011, 07:57
Ответы с готовыми решениями:

Умножение НЕквадратных матриц (не работает код)
1) делал умножение матриц, где число строк и столбцов одинаковое кол-во, работает, но только с целыми числами , но работает, считает...

Умножение матриц
помогите найти ошибку //--------------------------------------------------------------------------- #include &lt;vcl.h&gt; #pragma...

Умножение матриц
Здравствуйте,пишу программу ,которая выполняет действия над матрицами вот код #include &lt;vcl.h&gt; #pragma hdrstop #include...

4
программист С++
 Аватар для sandye51
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
23.01.2011, 14:14
123lexx321, матрицы можно умножать, если число столбцов в первой равно числу строк во второй
0
0 / 0 / 0
Регистрация: 22.01.2011
Сообщений: 25
23.01.2011, 14:16  [ТС]
В моём задании нужно умножить матрицу на транспонированную себя.
0
программист С++
 Аватар для sandye51
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
23.01.2011, 14:19
123lexx321, пример умножения матриц
C++
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
#include <stdio.h>
#include <conio.h>
 
int main()
{
        size_t A[4][4] =  { {1, 2, 3, 4},
                        {2, 3, 4, 5},
                        {4, 5, 6, 7},
                        {1, 3, 4, 6},}; 
        size_t B[4][5] = { {45, 7, 8, 3},
                        {2, 78, 4, 0},
                        {4, 5, 11, 7},
                        {8, 3, 12, 6},}; 
        size_t C[4][4], i, j, k;
        for (i = 0; i < 4; ++i)
        {
                for (j = 0; j < 4; ++j)
                {
                        size_t S = 0;
                        for (k = 0; k < 4; ++k)
                                S += A[i][k] * B[k][j];
                        C[i][j] = S;
                        printf("%u  ", C[i][j]);
                }
                printf("\n");
        }
        getch();
        return 0;
}
0
0 / 0 / 0
Регистрация: 22.01.2011
Сообщений: 25
23.01.2011, 14:20  [ТС]
Спасибо большое, но я уже сам разобрался, в первом посте добавил как.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.01.2011, 14:20
Помогаю со студенческими работами здесь

Умножение матриц в С++ Rad XE3
Вроде бы простая и неоднократно просматриваемая тема, но при реализации в билдере на стрингридах появляються непонятные ошибки. Помогите...

Умножение матриц: исходная на обращённую
void __fastcall TForm1::Button4Click(TObject *Sender) { int i,j,k,n,m; double SG1,SG2,SG3; n=StrToFloat(LabeledEdit1-&gt;Text); ...

Умножение матриц (не работает для неквадратных матриц)
Доброго времени суток. Написал код для перемножения двух матриц. При вводе квадратной матрицы всё работает нормально. При вводе матриц с...

Умножение неквадратных матриц
Я написала код, но он делает умножение только квадратных матриц, помогите переделать чтобы можно было задавать размерность обеих матриц ...

Перемножение неквадратных матриц с использованием динамического массива
Программа не так считает итоговую матрицу (C=A*B). Наверно я что-то не понимаю ... #include &lt;iostream&gt; #include...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru