Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Alexandr000006
0 / 0 / 0
Регистрация: 28.06.2011
Сообщений: 79
1

Умножение 3 матриц

26.09.2011, 21:45. Просмотров 894. Ответов 9
Метки нет (Все метки)

вод код моей процедуру
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
{
GetMatrixA(A);
GetMatrixB(B);
GetMatrixD(D);
for( p= 1; p<=count; p++)
for( j= 1; j<=n; j++)
    {
     C[p][j]= 0;
     for( i= 1; i<=n; i++)
     C[p][j]= C[p][j]+A[p][i]*B[i][j];
    }
   //матрица C(m,k)
//матрица D(n,m)
//E=C*D
for( p= 1; p<=count; p++)
for( j= 1; j<=count; j++)
    {
 
     E[p][j]= 0;
     for( i= 1; i<=n; i++)
     E[p][j]= E[p][j]+C[p][i]*D[i][j];
    }
   for( i= 1; i<=count ; i++)
  for( j= 1; j<=count; j++)
  Matrix_D->Cells[j-1][i-1]= FloatToStrF(E[i][j],ffFixed,5,1);
  }
программа компилируется,но после того как я задаю все значения и жму выполнить,выскакивает ошибка is not a valid floating point value
и выделяет вот эту строчку
C++
1
for( p= 1; p<=count; p++)
В чем может быть проблема?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.09.2011, 21:45
Ответы с готовыми решениями:

Умножение треугольных матриц«Методы обработки разреженных матриц»
Нужно перемножить треугольные матрицы в обычном виде и в свёрнутом. С обычным...

Умножение матриц
complex &lt;double&gt; c; for (int r = 0; r &lt; 4; r++) for (int...

Умножение матриц
Здравствуйте. Я новичок в программировании. Помогите, пожалуйста написать...

Умножение матриц
Решил немного вспомнить матрицы // Перемножение двух матриц минора....

Умножение матриц
Решенная задача на умножение матриц для сборника. Матрицы вводятся с...

9
Alexandr000006
0 / 0 / 0
Регистрация: 28.06.2011
Сообщений: 79
26.09.2011, 22:10  [ТС] 2
вот сама прога
0
Вложения
Тип файла: rar Новая папка (6).rar (365.4 Кб, 16 просмотров)
Alexandr000006
0 / 0 / 0
Регистрация: 28.06.2011
Сообщений: 79
27.09.2011, 15:58  [ТС] 3
аналогичный код в делфи работает без проблем
0
kazak
3058 / 2379 / 255
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
27.09.2011, 16:05 4
Для начала индексация в массивах в С начинается с 0.
0
Alexandr000006
0 / 0 / 0
Регистрация: 28.06.2011
Сообщений: 79
27.09.2011, 16:08  [ТС] 5
всмысле?
0
kazak
3058 / 2379 / 255
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
27.09.2011, 16:15 6
Цитата Сообщение от Alexandr000006 Посмотреть сообщение
for( p= 1; p<=count; p++)
Правильно
C++
1
for (p = 0; p < count; p++)
И потом ошибку вызывает эта функция

Цитата Сообщение от Alexandr000006 Посмотреть сообщение
GetMatrixD(D);
Добавлено через 2 минуты
А судя по описанию ошибки, некорректно отрабатывает преобразование
C++
1
D[i][j]= StrToFloat(Matrix_A->Cells[j-1][i-1]);
Опять же косяк с индексацией.
0
Alexandr000006
0 / 0 / 0
Регистрация: 28.06.2011
Сообщений: 79
27.09.2011, 16:19  [ТС] 7
спасибо огромное !!!!не заметил
0
kazak
3058 / 2379 / 255
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
27.09.2011, 16:25 8
И косяк с размерами массива, после нажатия кнопки "Задать размер", массивы то меняются, а текущий размер остается тотже, вот в GetMatrixD(D); и получается выход за пределы массива, потому что цикл ориентируется на старый размер массива.
0
Alexandr000006
0 / 0 / 0
Регистрация: 28.06.2011
Сообщений: 79
27.09.2011, 16:31  [ТС] 9
C++
1
for( p= 1; p<=count; p++)
правильный вариант

Добавлено через 2 минуты
ошибка была ток тут
C++
1
D[i][j]= StrToFloat(Matrix_A->Cells[j-1][i-1]);
0
kazak
3058 / 2379 / 255
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
27.09.2011, 16:37 10
Цитата Сообщение от Alexandr000006 Посмотреть сообщение
правильный вариант
А плин, это StringGrid.

Добавлено через 4 минуты
Но еще используется обычный массив типа double, для него индексация начинается с нуля. Тут нужно быть внимательным.
0
27.09.2011, 16:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.09.2011, 16:37

Умножение матриц
Ошибка: не хочет умножать. c=c+a*b; int **mat(int n){ int **matrix; ...

Умножение матриц
Даны две квадратные матрицы A и B, вычислить A2B2

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


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru