Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- void wypisz(int tab[], int n)
- {
- for(int i=0; i < n; i++)
- {
- for(int j=0; j < n; j++)
- {
- cout << tab[i * n + j] << " ";
- }
- cout << endl;
- }
- cout << endl;
- cout << endl;
- }
- int main()
- {
- int n;
- cout << "Podaj wymiar macierzy: ";
- cin>>n;
- int matrix[n][n];
- int L[n][n];
- int U[n][n];
- cout << "Podaj kolejne wyrazy macierzy (" << n*n << "):" << endl;
- // wczytywanie
- for(int i=0; i < n; i++)
- {
- for(int j=0; j < n; j++)
- {
- cin >> matrix[i][j];
- }
- }
- cout << "\nInput:\n";
- wypisz(*matrix, n);
- // algorytm
- for(int i=0; i < n-1; i++)
- {
- // dzielenie kolumny pod a(k, k)
- for(int j=i+1; j < n; j++)
- {
- matrix[j][i] = matrix[j][i] / matrix[i][i];
- }
- // obliczanie wyrazow podmacierzy
- for(int j = i + 1; j < n; j++)
- {
- for(int k = i + 1; k < n; k++)
- {
- matrix[j][k] = matrix[j][k] - (matrix[j][i] * matrix[i][k]);
- }
- }
- }
- // gora L na 0 i gora U
- for(int i = 0; i < (n - 1); i++)
- {
- for(int j = i; j < n; j++)
- {
- L[i][j] = 0;
- U[i][j] = matrix[i][j];
- }
- }
- // przekatna L na 1 i przekatna U
- for(int i = 0; i < n; i++)
- {
- L[i][i] = 1;
- U[i][i] = matrix[i][i];
- }
- // dol L i dol U na 0
- for(int i = 1; i < n; i++)
- {
- for(int j = 0; j < i; j++)
- {
- L[i][j] = matrix[i][j];
- U[i][j] = 0;
- }
- }
- cout << "Macierz L: \n";
- wypisz(*L, n);
- cout << "Macierz U: \n";
- wypisz(*U, n);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement