Текст программы
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
void Kramer(double C[3][3],double D[3][1]);//Prototip funkcii
void main()
{
int i,j;
double A[3][3],B[3][1];
char z='y';
cout<<"\n"<<endl;
cout<<"\n"<<endl;
cout<<"Vipolnil stydent gryppi KI-05-3"<<endl;
cout<<"Homenko Igor"<<endl;
cout<<"\n"<<endl;
cout<<"\n"<<endl;
while (z=='y')
{
cout<<"Vvedite koefisienti pri neizvestnih x1,x2,x3 v 1-om,2-om,3-em yravneniax"<<endl;
for(i=0;i<3;i++)//vvod matrici koeficientov pri neizvesnix
for(j=0;j<3;j++)
cin>>A[i][j];
cout<<"\n"<<endl;
cout<<"Vvedite cvobodnii chleni v 1-om,2-om,3-em yravneniax"<<endl;
for (i=0;i<3;i++)// Vvod stolbca svobodnix chlenov
cin>>B[i][0];
cout<<"\n"<<endl;
cout<<"Dannaya sistema vigladit tak"<<endl;//Vvivod na ekran SLY
if(A[0][1]>=0 && A[0][2]>=0)
cout<<A[0][0]<<"x1"<<"+"<<A[0][1]<<"x2"<<"+"<<A[0][2]<<"x3"<<"="<< B[0][0]<<endl;
if(A[0][1]>=0 && A[0][2]<0)
cout<<A[0][0]<<"x1"<<"+"<<A[0][1]<<"x2"<<A[0][2]<<"x3"<<"="<<B[0][0] <<endl;
if(A[0][2]>=0 && A[0][1]<0)
cout<<A[0][0]<<"x1"<<A[0][1]<<"x2"<<"+"<<A[0][2]<<"x3"<<"="<<B[0][0] <<endl;
if(A[0][1]<0 && A[0][2]<0)
cout<<A[0][0]<<"x1"<<A[0][1]<<"x2"<<A[0][2]<<"x3"<<"="<<B[0][0] <<endl;
if(A[1][1]>=0 && A[1][2]>=0)
cout<<A[1][0]<<"x1"<<"+"<<A[1][1]<<"x2"<<"+"<<A[1][2]<<"x3"<<"="<< B[1][0]<<endl;
if(A[1][1]>=0 && A[1][2]<0)
cout<<A[1][0]<<"x1"<<"+"<<A[1][1]<<"x2"<<A[1][2]<<"x3"<<"="<<B[1][0] <<endl;
if(A[1][2]>=0 && A[1][1]<0)
cout<<A[1][0]<<"x1"<<A[1][1]<<"x2"<<"+"<<A[1][2]<<"x3"<<"="<<B[1][0] <<endl;
if(A[1][1]<0 && A[1][2]<0)
cout<<A[1][0]<<"x1"<<A[1][1]<<"x2"<<A[1][2]<<"x3"<<"="<<B[1][0]
<<endl;
if(A[2][1]>=0 && A[2][2]>=0)
cout<<A[2][0]<<"x1"<<"+"<<A[2][1]<<"x2"<<"+"<<A[2][2]<<"x3"<<"="<< B[2][0]<<endl;
if(A[2][1]>=0 && A[2][2]<0)
cout<<A[2][0]<<"x1"<<"+"<<A[2][1]<<"x2"<<A[2][2]<<"x3"<<"="<<B[2][0] <<endl;
if(A[2][2]>=0 && A[2][1]<0)
cout<<A[2][0]<<"x1"<<A[2][1]<<"x2"<<"+"<<A[2][2]<<"x3"<<"="<<B[2][0] <<endl;
if(A[2][1]<0 && A[2][2]<0)
cout<<A[2][0]<<"x1"<<A[2][1]<<"x2"<<A[2][2]<<"x3"<<"="<<B[2][0]
<<endl;
cout<<"\n"<<endl;
cout<<"C pomochy rashirenoi matrici mi mogem predstaviy dannyy sistemy tak:"<<endl;//Vivod na ekran rachirennoi matrici
cout<<A[0][0]<<setw(4)<<A[0][1]<<setw(4)<<A[0][2]<<setw(5)<<"|"<<setw (5)<<B[0][0]<<endl;
cout<<A[1][0]<<setw(4)<<A[1][1]<<setw(4)<<A[1][2]<<setw(5)<<"|"<<setw (5)<<B[1][0]<<endl;
cout<<A[2][0]<<setw(4)<<A[2][1]<<setw(4)<<A[2][2]<<setw(5)<<"|"<<setw (5)<<B[2][0]<<endl;
cout<<"\n"<<endl;
Kramer(A,B);//vizov funkcii Kramer
cout<<"Dlya novogo vvoda nagmite 'y', dla vihoda-'n' \n";
cin>>z;
}
}
void Kramer(double C[3][3],double D[3][1])//realizacia funkcii Kramer
{
double det,det1,det2,det3,x1,x2,x3;
cout<<"Nahogdenie opredelitelei"<<endl;
det=C[0][0]*C[1][1]*C[2][2]+C[1][0]*C[2][1]*C[0][2]+C[0][1]*C[1][2]*C[2][0]-C[0][2]*C[1][1]*C[2][0]-C[1][0]*C[0][1]*C[2][2]-C[0][0]*C[2][1]*C[1][2];
cout<<"opredelitel="<<det<<endl;//vichislenie opredelitela
det1=D[0][0]*C[1][1]*C[2][2]+D[1][0]*C[2][1]*C[0][2]+C[0][1]*C[1][2]*D[2][0]-C[0][2]*C[1][1]*D[2][0]-D[1][0]*C[0][1]*C[2][2]-D[0][0]*C[2][1]*C[1][2];
cout<<"opredelitel1="<<det1<<endl;//vichislenie opredelitela1
det2=C[0][0]*D[1][0]*C[2][2]+C[1][0]*D[2][0]*C[0][2]+D[0][0]*C[1][2]*C[2][0]-C[0][2]*D[1][0]*C[2][0]-C[1][0]*D[0][0]*C[2][2]-C[0][0]*D[2][0]*C[1][2];
cout<<"opredelitel2="<<det2<<endl;//vichislenie opredelitela2
det3=C[0][0]*C[1][1]*D[2][0]+C[1][0]*C[2][1]*D[0][0]+C[0][1]*D[1][0]*C[2][0]-D[0][0]*C[1][1]*C[2][0]-C[1][0]*C[0][1]*D[2][0]-C[0][0]*C[2][1]*D[1][0];
cout<<"opredelitel3="<<det3<<endl;//vichislenie opredelitela3
cout<<"\n"<<endl;
if(det!=0)
{x1=det1/det;//vichislenie x1
x2=det2/det;//vichislenie x2
x3=det3/det;//vichislenie x3
cout<<"x1="<<x1<<endl;
cout<<"x2="<<x2<<endl;
cout<<"x3="<<x3<<endl;}
else
cout<<"Sistema ne imeet reshenii, tak kak opredelitel=0"<<endl;
getch() ;
}
ЛИСТ-ЗАДАНИЕ
Методом Крамера и с помощью расширенной матрицы решить систему линейных уравнений, например,
3x1+6x2+x3=20
2x1+x2=0
x1+5x2-x3=9