# Program to read a Linear System of Equations,then evaluate it by using Gauss-Elimination Method and show the result

``` # include <iostream.h>
# include   <stdlib.h>
# include    <stdio.h>
# include    <conio.h>
# include     <math.h>

const int max_size=5;

int n=0;

char Partial_pivoting=NULL;

long double input[max_size][max_size]={0};
long double output[max_size]={0};

void show_screen( );
void clear_screen( );
void get_size_of_linear_equations( );
void show_input(const int,const int,const int=0);
void get_input_linear_equation( );
void sort_system_of_linear_equations(const int);
void apply_gaussian_method( );
void generate_result( );
void show_result( );

int main( )
{
clrscr( );
textmode(C4350);

show_screen( );
get_size_of_linear_equations( );
get_input_linear_equation( );
apply_gaussian_method( );
generate_result( );
show_result( );

getch( );
return 0;
}

//--------------------------  show_screen( )  ---------------------------//

void show_screen( )
{
cprintf(\"\\n********************************************************************************\");
cprintf(\"***********************-                               -************************\");
cprintf(\"*----------------------- \");

textbackground(1);
cprintf(\" Gaussian Elimination Method \");
textbackground(8);

cprintf(\" ------------------------*\");
cprintf(\"*-*********************-                               -**********************-*\");
cprintf(\"*-****************************************************************************-*\");

for(int count=0;count<42;count++)
cprintf(\"*-*                                                                          *-*\");

gotoxy(1,46);
cprintf(\"*-****************************************************************************-*\");
cprintf(\"*------------------------------------------------------------------------------*\");
cprintf(\"********************************************************************************\");

gotoxy(1,2);
}

//-------------------------  clear_screen( )  ---------------------------//

void clear_screen( )
{
for(int count=0;count<37;count++)
{
gotoxy(5,8+count);
cout<<\"                                                                        \";
}

gotoxy(1,2);
}

//------------------  get_size_of_linear_equations( )  ------------------//

void get_size_of_linear_equations( )
{
do
{
clear_screen( );

gotoxy(40,11);
cout<<\"[ Maximum size = 4 ]\";

gotoxy(6,9);
cout<<\"Enter the size of the System of Linear Equations = n = \";

cin>>n;

if(n<=0 || n>max_size)
{
gotoxy(12,25);
cout<<\"Error : Wrong Input. Press <Esc> to exit or any other key\";

gotoxy(12,26);
cout<<\"        to try again.\";

n=int(getche( ));

if(n==27)
exit(0);
}
}
while(n<=0 || n>max_size);

gotoxy(6,15);
cout<<\"Do you want to use Partial Pivoting : (Y/N) ? : \";

cin>>Partial_pivoting;

gotoxy(1,2);
}

//-------------  show_input(const int,const int,const int)  -------------//

void show_input(const int x,const int y,const int y_cord)
{
int counter=0;
int number_of_inputs=((x*n)+y+x);

for(int count_1=0;count_1<n;count_1++)
{
gotoxy(6,(17+(count_1*2)+y_cord));
cout<<\"                                                                      \";

gotoxy(6,(17+(count_1*2)+y_cord));

for(int count_2=0;count_2<=n;count_2++)
{
if(counter==(number_of_inputs+1))
textbackground(12);

else
textbackground(8);

if(count_2==n)
gotoxy((wherex( )+5),(17+(count_1*2)+y_cord));

gotoxy(wherex( ),(17+(count_1*2)+y_cord));
cprintf(\"      \");

if(count_2==n)
gotoxy((wherex( )-5),(17+(count_1*2)+y_cord));

gotoxy((wherex( )-6),(17+(count_1*2)+y_cord));

if(counter<=number_of_inputs && counter!=-1)
{
if(count_2==n)
{
cout<<\"  =  \";
cout<<input[count_1][count_2];
}

else if(count_2==0)
cout<<input[count_1][count_2]<<\" x\"<<(count_2+1);

else
cout<<fabs(input[count_1][count_2])<<\" x\"<<(count_2+1);
}

else if(count_2==n)
cout<<\"  =  b\"<<(count_1+1);

else
cout<<\"a\"<<(count_1+1)<<(count_2+1)<<\" x\"<<(count_2+1);

if(count_2<(n-1) && input[count_1][(count_2+1)]>=0)
cout<<\"  +  \";

else if(count_2<(n-1))
cout<<\"  -  \";

counter++;
}
}
}

//--------------------  get_input_linear_equation( )  -------------------//

void get_input_linear_equation( )
{
clear_screen( );

gotoxy(6,9);
cout<<\"Size of the System of Linear Equations = n = \"<<n;

gotoxy(6,13);
cout<<\"System of Linear Equations :\";

gotoxy(6,14);
cout<<\"ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ\";

show_input(0,-1);

for(int count_1=0;count_1<n;count_1++)
{
for(int count_2=0;count_2<=n;count_2++)
{
gotoxy(5,35);
cout<<\"                                                                    \";

gotoxy(6,35);

if(count_2<n)
cout<<\"Enter the value of a\"<<(count_1+1)<<(count_2+1)<<\" =  \";

else
cout<<\"Enter the value of b\"<<(count_1+1)<<\" =  \";

cin>>input[count_1][count_2];

show_input(count_1,count_2);
}
}
}

//-------------  sort_system_of_linear_equations(const int)  ------------//

void sort_system_of_linear_equations(const int start_position)
{
for(int count_1=start_position;count_1<(n-1);count_1++)
{
for(int count_2=start_position;count_2<(n-1);count_2++)
{
long double temp[max_size]={0};

if(fabs(input[count_2][start_position])<fabs(input[(count_2+1)][start_position]))
{
for(int count_3=0;count_3<=n;count_3++)
temp[count_3]=input[count_2][count_3];

for(int count_4=0;count_4<=n;count_4++)
input[count_2][count_4]=input[(count_2+1)][count_4];

for(int count_5=0;count_5<=n;count_5++)
input[(count_2+1)][count_5]=temp[count_5];
}
}
}
}

//-----------------------  apply_gaussian_method( )  --------------------//

void apply_gaussian_method( )
{
for(int count_1=0;count_1<(n-1);count_1++)
{
if(Partial_pivoting==\'Y\' || Partial_pivoting==\'y\')
sort_system_of_linear_equations(count_1);

for(int count_2=(count_1+1);count_2<n;count_2++)
{
long double multiplier=
(input[count_2][count_1]/input[count_1][count_1]);

for(int count_3=0;count_3<=n;count_3++)
{
long double temp=(input[count_1][count_3]*multiplier);
input[count_2][count_3]=(input[count_2][count_3]-temp);
}
}
}
}

//------------------------  generate_result( )  -------------------------//

void generate_result( )
{
for(int count_1=(n-1);count_1>=0;count_1--)
{
output[count_1]=input[count_1][n];

for(int count_2=(n-1);count_2>count_1;count_2--)
input[count_1][count_2]=(input[count_1][count_2]*output[count_2]);

for(int count_3=(n-1);count_3>count_1;count_3--)
output[count_1]-=input[count_1][count_3];

output[count_1]/=input[count_1][count_1];
}
}

//-----------------------------  show_result( )  ------------------------//

void show_result( )
{
clear_screen( );

gotoxy(6,10);
cout<<\"Solved System of Linear Equations :\";

gotoxy(6,11);
cout<<\"ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ\";

show_input((n-1),n,-4);

gotoxy(6,26);
cout<<\"Result of Given System of Linear Equations :\";

gotoxy(6,27);
cout<<\"ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ\";

for(int count=0;count<n;count++)
{
gotoxy(10,(29+count+count));
cout<<\"x\"<<(count+1)<<\" = \"<<output[count];
}

if(Partial_pivoting==\'Y\' || Partial_pivoting==\'y\')
{
gotoxy(6,41);
cout<<\"Note : The given System of Linear Equations is solved by using\";

gotoxy(6,43);
cout<<\"       Partial Pivoting.\";
}

gotoxy(1,2);
}
```