Код:

а не моглибы вы прокомментировать(что в какой строке делается) программу я взял у паренька но он кудато пропал и я не пойму что в ней творится особенно в конце
было задание решение СЛАУ методом Крамера
#include <iostream.h>
#include <stdio.h>
#include <math.h>
double DET (unsigned int columns);
bool PROVCOL(unsigned int num, char colNum);
unsigned int Column1(unsigned int num, char colNum);
unsigned int Column0(unsigned int num, char colNum);
double **Matrix;
int n;
main()
{
int i, j;
double mainDET;
cout<<"Vvedite kolichestvo uravneniy "<<endl;
cin>>n;
while (n > 10 || n < 1)
{
cout<<"Vu ne mogete vvesti bol'she 10 ili men'she 1 uravneniya, vvedite esche raz ";
cin>>n;
}
Matrix = (double**) new double[n];
for (i=0; i<= n-1; i++)
{Matrix[i] = new double[n+1];}
for (i = 0; i <= n-1; i++)
for (j = 0; j <= n; j++)
{
cout<<"Vvedite element matricu s koordinatami ("<<i<<","<<j<<") ";
cin>>Matrix[i][j];
}
cout<<"Vasha matrica:\n";
for (i = 0; i <= n-1; i++)
{for (j = 0; j <= n; j++)
cout<<Matrix[i][j]<<"\t";
cout<<endl;
}
mainDET = DET(pow(2,n));
if (mainDET == 0)
{
cout<<"Net resheniy!\n";
}
else
{
printf ("Korni sistemu:\n");
for (i=0; i <= n-1; i++)
printf ("%.3f ", -pow(-1,n+i)*DET(pow(2,i))/mainDET);
printf ("\n");
}
cout<<"Detrmenant sistemu raven: "<<mainDET<<endl;
for (i = 0; i <= (n-1); i++)
delete Matrix[i];
delete Matrix;
cout<<"Vuchisleniya zakonchenu. Spasibo chto vubrali nas!\n";
return 0;
}
double DET (unsigned int columns)
{double det = 0;
int i, numCols = 0, lastFalse, cntr = 0;
for (i=0; i<=n; i++)
{
if (PROVCOL(columns, i))
numCols++;
else lastFalse = i;
}
if ((n - numCols) == 0) det = Matrix[n-1][lastFalse];
else
for (i = 0; i <= n; i++)
if (!PROVCOL(columns, i))
{
columns = Column1(columns, i);
det += pow(-1,(cntr))*Matrix[numCols-1][i]*DET(columns);
columns = Column0(columns, i);
cntr++;
}
return det;
}
bool PROVCOL(unsigned int num, char colNum)
{
_asm
{
xor eax, eax;
xor ebx, ebx;
mov bl, colNum;
bt num, ebx;
jnc none;
inc eax;
none:
}
}
unsigned int Column1(unsigned int num, char colNum)
{
_asm
{
xor eax, eax;
mov al, colNum;
bts num, eax;
}
return num;
}
unsigned int Column0(unsigned int num, char colNum)
{
_asm
{
xor eax, eax;
mov al, colNum;
btr num, eax;
}
return num;
}