Задачка в С++
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Задачка в С++ - 2007-11-17 19:58:16.766666
|
|
|
Narvas
Сообщений: 4
Оценки: 0
Присоединился: 2007-08-19 22:09:31.850000
|
Всем привет!) Задание таково => нужно вычислить определитель матрици (методом разложения ел.строки * алг.доролнение )))[&:] Я то чтото накатал )) но непойму как опрелить определитель МинорА
#include <iostream.h>
#include <math.h>
void main()
{
int i,j,size;float detA, detM;
cout<<"Rozmir matruci NxN = ";
cin>>size;cout<<"\n\n";
float **A;
A=new float*[size];
for (i=0 ; i<size ; i++)
A[i]=new float [size];
/**********************************************************************/
cout<<"***********************************************"<<endl;
for (i=0;i<size;i++)
{ cout<<"------------Ryadok "<<i+1<<"------------"<<endl;
for(j=0;j<size;j++)
{
cout<<"A["<<i+1<<"]["<<j+1<<"] = ";
cin>>A[i][j];
}}cout<<endl;
/**********************************************************************/
cout<<"***********************************************"<<endl;
cout<<" Vvdena matrucya : "<<endl;
for (i=0;i<size;i++)
{
for(j=0;j<size;j++)
{
cout<<A[i][j]<<"\t";
}cout<<endl;
}cout<<endl;
/******************** Determinant **********************************/
detA=0;
float **M;
M = new float*[size-1];
for (int k = 0; k < size-1; k++)
M[k] = new float[size-1];
detM=0;
if (size == 1)
detA=A[0][0];
if (size == 2)
detA=(A[0][0])*(A[1][1])-(A[0][1])*(A[1][0]);
????????????????????????????????????????????????????
for (j=0;j<size ; j++)
detA+=float (pow((-1),j+2) * A[0][j])*detM;
cout<<"DETERMINANT = "<<detA<<endl;
}
Знакомый мне показал вар с использование функиций :'( Но важно сделать без их использования Заранее спасибо ![sm=az.gif]
|
|
|
RE: Задачка в С++ - 2007-11-18 13:15:06.793333
|
|
|
Narvas
Сообщений: 4
Оценки: 0
Присоединился: 2007-08-19 22:09:31.850000
|
[sm=bc.gif]
|
|
|
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 < nSize; ++i) {
int ti = 0, tj;
for(int mi = 1; mi < nSize; ++mi) {
tj = 0;
for(int mj = 0; mj < 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;
}
|
|
|
|
|