Смекни!
smekni.com

Решение системы линейных уравнений методом Крамера и с помощью расширенной матрицы 2 (стр. 4 из 4)

Текст программы

#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<<"&bsol;n"<<endl;

cout<<"&bsol;n"<<endl;

cout<<"Vipolnil stydent gryppi KI-05-3"<<endl;

cout<<"Homenko Igor"<<endl;

cout<<"&bsol;n"<<endl;

cout<<"&bsol;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<<"&bsol;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<<"&bsol;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<<"&bsol;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<<"&bsol;n"<<endl;

Kramer(A,B);//vizov funkcii Kramer

cout<<"Dlya novogo vvoda nagmite 'y', dla vihoda-'n' &bsol;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<<"&bsol;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