# 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); }