گروه نرم افزاری پرتو

پروژه های کاربردی

گروه نرم افزاری پرتو

پروژه های کاربردی

پروژه : ماتریس ... ( زبان ++C )

۱- به دست آوردن ماتریس تحویل یافته سطری - پلکانی یک ماتریس m*n
۲- به دست آوردن ماتریس معکوس یک ماتریس مربعی n*n
۳- به دست آوردن جواب معادلات n معادله و n مجهول

#include<conio.h>
#include<iostream.h>
#include<iomanip.h>
#define Max 10
/***************************************************/
void Moarrefi( void )
{
 clrscr();
 cout << "\t\t\t\tBe Name Khoda\n"
  << "\n\nBarname Nevis : Mohammad Hasani Eghtedar"
  << "\n\nShomare Daneshjooti : 83525013"
  << "\n\nReshteye Tahsili : Olume Computer"
  << "\n\nMaghtae Tahsili : Karshenasi"
  << "\n\nSale Tahsili : 1384 - 1385 Nimehye Avval"
  << "\n\nMahale Tahsil : Daneshgahe Dolatiye Qom"
  << "\n\nOstad : Doktor Shir Del"
  << "\n\nE-Mail : mhe_hm@yahoo.com"
  << "\n\nSite : http://www.ecqom.tk"
  << "\n\nPersional Blog : http://360.yahoo.com/mhe_hm"
  << "\n\n\n\n\t\t\t\tKelidi Ra Befesharid";
 getch();
 clrscr();
}
/***************************************************/
struct Node
{
 float Roll, Port;
}A[Max][Max];
int m, n;
char Choise;
/***************************************************/
void PrintMatrix( struct Node D[Max][Max] )
{
 int i, j, k = -1;
 if( Choise == '2' )
  k = n / 2;
 else if( Choise == '3' )
  k = n - 1;
 for( i = 0; i <= n; i++ )
 {
  cout << "[" << i << "]\t";
  if( ( k != -1 ) && ( i == k ) )
  cout << "|\t";
 }
 for( i = 0; i < m; i++ )
 {
  cout << "\n\n[" << ( i+1 ) << "]";
  for( j = 0; j < n; j++)
  {
  if( ( k != -1 ) && ( j == k ) )
  cout << "\t|";
  cout << "\t" << setprecision( 3 ) << D[i][j].Roll / D[i][j].Port;
  }

 }
}
/***************************************************/
int MinRenge( void )
{
 int n1 = n;
 if( Choise == '3' )
  n1 = n - 1;
 if( m < n1 )
  return m;
 return n1;
}
/***************************************************/
void ChengeRow( int k, int t )
{
 int i;
 struct Node temp[Max];
 for( i = 0; i < n; i++ )
 {
  temp[i] = A[k][i];
  A[k][i] = A[t][i];
  A[t][i] = temp[i];
 }
}
/***************************************************/
void Evaluate( int Min )
{
 int i, j;
 char Harf;
 if( m >= n - 1 )
  for( i = Min; i < m; i++ )
  if( A[i][n - 1].Roll != 0 )
  {
  cout << "\n\nIn dastgah nasazegar boodeh va javab nadarad . Zira :";
  break;
  }
  cout << "\n\nDastgahe Moadelat :\n\n";
 for( i = 0; i < m; i++ )
 {
  Harf = 'a' + i;
  if( i < Min )
  {
  cout << Harf ;
  Harf = 'a' + Min - 1;
  }
  else
  cout << '0'; 
  for( j = Min; j < n - 1; j++ )
  if( A[i][j].Roll != 0 )
  {
  if( ( A[i][j].Roll / A[i][j].Port ) >= 0 )
  cout << " +";
  cout << " " << A[i][j].Roll / A[i][j].Port << ++Harf;
  }
  else
  Harf++;
  cout << " = " << A[i][n - 1].Roll / A[i][n - 1].Port << "\n";
 }

}
/***************************************************/
void G_J( void )
{
 int i, j, k, t, Min;
 Min = MinRenge();
 for( k = 0; k < Min; k++ )
 {
  t = k + 1;
  do
  {
  if( ( A[k][k].Roll == 0 ) && ( t < m ) )
  ChengeRow( k, t++ );
  else if( A[k][k].Roll == 0 )
  {
  cout << "\n\n# Matris R :\n\n";
  PrintMatrix( A );
  return;
  }
  }
  while( A[k][k].Roll == 0 );
  for( j = n-1; j >k ; j-- )
  {
  A[k][j].Roll = A[k][j].Roll * A[k][k].Port;
  A[k][j].Port = A[k][j].Port * A[k][k].Roll;
  }
  A[k][k].Roll = A[k][k].Port = 1;
  for( i = 0; i < m; i++ )
  {
  if( i != k )
  {
  for( j = k + 1; j < n; j++ )
  {
  A[i][j].Roll = ( A[i][j].Roll * A[k][j].Port * A[i][k].Port ) - ( A[i][j].Port * A[k][j].Roll * A[i][k].Roll );
  A[i][j].Port = A[i][j].Port * A[k][j].Port * A[i][k].Port;
  }
  }
  }
  for( i = 0; i < m; i++ )
  {
  if( i != k )
  {
  A[i][k].Roll = 0;
  A[i][k].Port = 1;
  }
  }
 }
 if( Choise == '1' )
  cout << "\n\n# Matris [ R ] :\n\n";
 else if( Choise == '2' )
  cout << "\n\n# Matris [ I|A' ] :\n\n";
 else
  cout << "\n\n# Matris [ R|B' ] :\n\n";
 PrintMatrix( A );
 if( Choise == '3' )
  Evaluate( Min );
}
/***************************************************/
void ReadMatrix( void )
{
 int i, j;
 cout << "Lotfan gozinehye morede nazar ra entekhab konid :\n\n"
  << "1: Be dast avardane matrise tahvili shodehye satri - pellekani\n"
  << "2: Be dast avardane matris makoos\n"
  << "3: Be dast avardane javab dastgahe moadelate be soorate ( Ax = B )";
 Choise = getch();
 clrscr();
 if( ( Choise == '1' ) || ( Choise == '2' ) || ( Choise == '3' ) )
  cout << "Lotfan renge matris [ A ] ra vared konid : ";
 else
  return;
 if( Choise == '2' )
 {
  cin >> m;
  n = m;
 }
 else
  cin >> m >> n;
 cout << "\nLotfan anasore matris [ A ] ra vared konid :\n\n";
 cout << " i\t j\tMeghdar\n";
 for( i = 0; i < m; i++ )
 {
  cout << "\n[" << ( i + 1 ) << "]";
  for( j = 0; j < n; j++ )
  do
  {
  cout << "\t[" << ( j + 1 ) << "]\t";
  cin >> A[i][j].Roll;
  cout << "\t\t /\n\t\t ";
  cin >> A[i][j].Port;
  if( A[i][j].Port == 0 )
  cout << "\t\tERROR : Makhraj nemitavanad '0' bashad .\n";
  }
  while( A[i][j].Port == 0 );
 }
 if( Choise == '1' )
 {
  clrscr();
  cout << "# Matris [ A ] :\n\n";
 }
 else if( Choise == '2' )
 {
  n = 2 * m;
  for( i = 0; i < m; i++ )
  A[i][i + 3].Roll = 1;
  for( i = 0; i < m; i++ )
  for( j = m; j < n; j++ )
  A[i][j].Port = 1;
  clrscr();
  cout << "# Matris [ A|I ] :\n\n";
 }
 else
 {
  cout << "\nLotfan anasore matris [ B ] ra vared konid :\n\n";
  for( i = 0; i < m; i++ )
  {
  cout << "[" << ( i + 1 ) << "]";
  do
  {
  cout << "\t[" << ( j + 1 ) << "]\t";
  cin >> A[i][n].Roll;
  cout << "\t\t /\n\t\t ";
  cin >> A[i][n].Port;
  if( A[i][n].Port == 0 )
  cout << "\t\tERROR : Makhraj nemitavanad '0' bashad .\n";
  }
  while( A[i][n].Port == 0 );
  }
  n++;
  clrscr();
  cout << "# Matris [ A|B ] :\n\n";
 }
 PrintMatrix( A );
 getch();
 G_J();
}

/***************************************************/
void main( void )
{
 Moarrefi();
 ReadMatrix();
  getch();
}


نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد