Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Alexandr000006
0 / 0 / 0
Регистрация: 28.06.2011
Сообщений: 79
#1

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

26.09.2011, 21:45. Просмотров 795. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Умножение 3 матриц (C++):

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

Умножение матриц - C++
int **calculation3(int **mat1,int **mat2,int q,int e,int w,int t){ int m,ww=0,x,z; for(x=0;x&lt;q;x++){ for(z=0;z&lt;w;z++){ ww=0;...

Умножение матриц - C++
Вообщем при вводе матриц размером 1х4 или 3х4, получается такое(на картинке), но если вводить матрицы к примеру 4х1 или 4х4, то все окей,...

Умножение матриц - C++
#include &lt;iostream&gt; using namespace std; int main(int argc, const char * argv) { int **C; int n,k; /*...

Умножение матриц - C++
#include &lt;iostream&gt; #include &lt;ctime&gt; // в ней функция time #include &lt;conio.h&gt; #include &lt;stdio.h&gt; using namespace std; void...

Умножение матриц - C++
Помогите пожалуйста написать прогу для умножения матриц с использованием malloc. Юзал обычные проги для умножения, но вот с malloc что то...

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
3035 / 2356 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 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
3035 / 2356 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 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
3035 / 2356 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 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
3035 / 2356 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
27.09.2011, 16:37 #10
Цитата Сообщение от Alexandr000006 Посмотреть сообщение
правильный вариант
А плин, это StringGrid.

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

Умножение матриц - C++
Доброго всем времени суток! Нужна Ваша помощь. Задали сделать задачку на C++ в консоли - умножение матриц 10 на 10 с помощью...

Умножение матриц - C++
Здравствуйте помогите пожалуйста, не понимаю почему не получается перемножить матрицы. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; ...

Умножение матриц - C++
Помогите с умножением матриц создал две идентичные таблицы 3х3 и тепер хочу вывести матрицу этих двух таблиц, но в переменной suma...

Умножение матриц - C++
Мне нужно перемножить матрицы скажите что не провильно,почему она не работает for (int i=0; i&lt; StrToInt(Edit1-&gt;Text);i++) for (int...


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

Или воспользуйтесь поиском по форуму:
10
Yandex
Объявления
27.09.2011, 16:37
Ответ Создать тему
Опции темы

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