Facebook
From Baby Pelican, 5 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 183
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.     unsigned rozmiarmacierzy;
  9.     double** A;
  10.     double* b;
  11.     double* p;
  12.  
  13.     while(true)
  14.     {
  15.         int wybor;
  16.         cout << "\nMENU:" <<endl;
  17.         cout <<"1 - wczytanie danych" << endl;
  18.         cout <<"2 - metoda eliminacji Gaussa bez wyboru elementu"<< endl;
  19.         cout <<"3 - metoda eliminacji Gaussa z wyborem elementu w wierszach"<<endl;
  20.         cout <<"4 - metoda eliminacji Gaussa z wyborem elementu w kolumnach"<<endl;
  21.         cout <<"5 - metoda eliminacji Gaussa z pelnym wyborem elementu"<< endl;
  22.         cout <<"6 - wyjscie z programu"<<endl;
  23.  
  24.         cin>>wybor;
  25.  
  26.         switch(wybor)
  27.         {
  28.         case 1:
  29.  
  30.         {
  31.  
  32.             ifstream plik_zrodlowy("test.csv");
  33.             if (!plik_zrodlowy.is_open())
  34.             {
  35.                 cout <<"Plik nie zosstal otwarty!"<<endl;
  36.                 return -1;
  37.             }
  38.  
  39.             plik_zrodlowy >> rozmiarmacierzy;
  40.  
  41.             A = new double*[rozmiarmacierzy];
  42.  
  43.             A[0] = new double[rozmiarmacierzy*rozmiarmacierzy];
  44.  
  45.             for(unsigned i = 1; i< rozmiarmacierzy; i++)
  46.                 A[i] = A[i-1] + rozmiarmacierzy;
  47.  
  48.             b = new double[rozmiarmacierzy];
  49.  
  50.             char pol_kolumny;
  51.  
  52.             for (unsigned i = 0; i < rozmiarmacierzy+1; i++)
  53.                 plik_zrodlowy >> pol_kolumny;
  54.  
  55.             for (unsigned i = 0; i < rozmiarmacierzy; i++)
  56.             {
  57.                 for (unsigned j = 0; j < rozmiarmacierzy; j++)
  58.                 {
  59.                     plik_zrodlowy >> A[i][j];
  60.                     plik_zrodlowy >> pol_kolumny;
  61.                 }
  62.                 plik_zrodlowy >> pol_kolumny;
  63.                 plik_zrodlowy >> b[i];
  64.             }
  65.             plik_zrodlowy.close();
  66.  
  67.             cout << "\nPobrano dane"<<endl;
  68.             for(int i=0; i<rozmiarmacierzy; i++)
  69.             {
  70.                 for(int j=0; j<rozmiarmacierzy; j++)
  71.                 {
  72.                     cout <<"\t"<< A[i][j];
  73.                 }
  74.                 cout<<endl;
  75.             }
  76.             cout << rozmiarmacierzy<<endl;
  77.  
  78.             break;
  79.         }
  80.  
  81.  
  82.         case 2:
  83.  
  84.             int i,j;
  85.             p = new double[rozmiarmacierzy];
  86.  
  87.             for(int zmienna=0; zmienna < rozmiarmacierzy; zmienna++)
  88.             {
  89.                 for(i=zmienna; i<rozmiarmacierzy; i++)
  90.                 {
  91.                     for(j=zmienna; j<rozmiarmacierzy; j++)
  92.                     {
  93.                           p[i]=A[i][i];
  94.                         if(i>j)
  95.                         {
  96.                             p[i]=A[i][j];
  97.                             p[i]=p[i]/p[j];
  98.                             cout<<p[i]<<endl;
  99.                             A[i][j]=A[i][j]-A[i-1][j]*p[i];
  100.  
  101.                             A[i][j]=0;
  102.                             j++;
  103.  
  104.                         }
  105.  
  106.                     }
  107.                 }
  108.             }
  109.  
  110.  
  111.         for(int i=0; i<rozmiarmacierzy; i++)
  112.             {
  113.                 for(int j=0; j<rozmiarmacierzy; j++)
  114.                 {
  115.                     cout <<"\t"<< A[i][j];
  116.                 }
  117.                 cout<<endl;
  118.             }
  119.             break;
  120.         case 3:
  121.                 break;
  122.         case 4:
  123.                 break;
  124.         case 5:
  125.                 break;
  126.         case 6:
  127.                 return 0;
  128.         }
  129.     }
  130. }
  131.