Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Задачка в С++

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Задачка в С++
Имя
Сообщение << Старые топики   Новые топики >>
Задачка в С++ - 2007-11-17 19:58:16.766666   
Narvas

Сообщений: 4
Оценки: 0
Присоединился: 2007-08-19 22:09:31.850000
Всем привет!)
Задание таково => нужно вычислить определитель матрици (методом разложения ел.строки * алг.доролнение )))[&:]

Я то чтото накатал )) но непойму как опрелить определитель МинорА
#include &lt;iostream.h&gt; #include &lt;math.h&gt; void main() { &nbsp;&nbsp;&nbsp; int i,j,size;float detA, detM; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cout&lt;&lt;"Rozmir matruci NxN = "; &nbsp;&nbsp;&nbsp; cin&gt;&gt;size;cout&lt;&lt;"\n\n"; &nbsp;&nbsp;&nbsp; float **A; &nbsp;&nbsp;&nbsp; A=new float*[size]; &nbsp;&nbsp;&nbsp; for (i=0 ; i&lt;size ; i++) &nbsp;&nbsp;&nbsp; A[i]=new float [size]; /**********************************************************************/ &nbsp;&nbsp;&nbsp; cout&lt;&lt;"***********************************************"&lt;&lt;endl; &nbsp;&nbsp;&nbsp; for (i=0;i&lt;size;i++) &nbsp;&nbsp;&nbsp; {&nbsp;&nbsp; cout&lt;&lt;"------------Ryadok "&lt;&lt;i+1&lt;&lt;"------------"&lt;&lt;endl; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for(j=0;j&lt;size;j++) &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cout&lt;&lt;"A["&lt;&lt;i+1&lt;&lt;"]["&lt;&lt;j+1&lt;&lt;"] = "; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cin&gt;&gt;A[i][j]; &nbsp;&nbsp;&nbsp; }}cout&lt;&lt;endl; /**********************************************************************/ &nbsp;&nbsp;&nbsp; cout&lt;&lt;"***********************************************"&lt;&lt;endl; &nbsp;&nbsp;&nbsp; cout&lt;&lt;"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Vvdena matrucya :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "&lt;&lt;endl; &nbsp;&nbsp;&nbsp; for (i=0;i&lt;size;i++) &nbsp;&nbsp;&nbsp; {&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for(j=0;j&lt;size;j++) &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cout&lt;&lt;A[i][j]&lt;&lt;"\t"; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }cout&lt;&lt;endl; &nbsp;&nbsp;&nbsp; }cout&lt;&lt;endl; /******************** Determinant **********************************/ &nbsp;&nbsp;&nbsp; detA=0; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; float **M; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; M = new float*[size-1]; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for (int k = 0; k &lt; size-1; k++) &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; M[k] = new float[size-1]; &nbsp;&nbsp;&nbsp; detM=0; &nbsp;&nbsp;&nbsp; if (size == 1) &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; detA=A[0][0]; &nbsp;&nbsp;&nbsp; if (size == 2) &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; detA=(A[0][0])*(A[1][1])-(A[0][1])*(A[1][0]); &nbsp;&nbsp;&nbsp; ???????????????????????????????????????????????????? &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for (j=0;j&lt;size ; j++) &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; detA+=float (pow((-1),j+2) * A[0][j])*detM; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cout&lt;&lt;"DETERMINANT = "&lt;&lt;detA&lt;&lt;endl; } Знакомый мне показал вар с использование функиций :'( Но важно сделать без их использования

Заранее спасибо ![sm=az.gif]
Post #: 1
RE: Задачка в С++ - 2007-11-18 13:15:06.793333   
Narvas

Сообщений: 4
Оценки: 0
Присоединился: 2007-08-19 22:09:31.850000
[sm=bc.gif]
Post #: 2
RE: Задачка в С++ - 2007-11-18 17:56:43.233333   
redsh

Сообщений: 338
Оценки: 0
Присоединился: 2007-06-17 22:35:25.540000
Дискретку уже не помню =( Но вот текст проги остался…

typedef FLOAT MATRIX[8][8]; typedef MATRIX *PMATRIX; FLOAT Det(MATRIX pMat, INT nSize) { if(nSize == 1) return pMat[0][0]; MATRIX matNext; FLOAT val = 0; for(int i = 0; i &lt; nSize; ++i) { int ti = 0, tj; for(int mi = 1; mi &lt; nSize; ++mi) { tj = 0; for(int mj = 0; mj &lt; nSize; ++mj) { if(mj != i) { matNext[ti][tj] = pMat[mi][mj]; tj++; } } ti++; } if(i % 2 == 0) val += Det(matNext, nSize-1) * pMat[0][i]; else val -= Det(matNext, nSize-1) * pMat[0][i]; } return val; }
Post #: 3
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Задачка в С++







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.