Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <iomanip>
- using namespace std;
- void wyswietlTablice(float **a, int n) {
- cout << setfill('-') << setw(16*n) << "" << endl;
- cout << setfill(' ');
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < n; j++) {
- cout << "a[" << i << ", " << j << "]: " << setw(4) << a[i][j] << " | ";
- }
- cout << endl;
- }
- cout << setfill('-') << setw(16*n) << "" << endl;
- cout << setfill(' ');
- }
- void gauss(float **a, int n) {
- float p[n];
- for (int k = 0; k < n; k++) {
- cout << endl << "Krok " << k << endl;
- if (a[k][k] == 0) {
- cout << "Zero w elemencie [" << k << ", " << k << "]" << endl;
- return;
- }
- // Obliczanie P
- for (int i = k+1; i < n; i++) {
- p[i] = a[i][k] / a[k][k];
- cout << "P[" << i << "]: " << p[i] << endl;
- // Zmiana wiersza
- for (int j = 0; j < n; j++) {
- a[i][j] -= p[i] * a[0][j];
- }
- }
- wyswietlTablice(a, n);
- }
- }
- float** stworzTablice(int n) {
- float **a = new float*[n];
- for (int i = 0; i < n; i++) {
- a[i] = new float[n];
- }
- return a;
- }
- int main() {
- cout << "1. Wpolczynniki 1" << endl;
- cout << "2. Wpolczynniki 2" << endl;
- cout << "3. Wpolczynniki 3" << endl;
- cout << "4. Wpolczynniki wlasne" << endl;
- cout << "Wybor: ";
- int wybor;
- cin >> wybor;
- switch(wybor) {
- case 1: {
- // Demo wspolczynniki
- int n = 3;
- float **a = stworzTablice(n);
- a[0][0] = 1;
- a[0][1] = 2;
- a[0][2] = -1;
- a[1][0] = 2;
- a[1][1] = 1;
- a[1][2] = 0;
- a[2][0] = -1;
- a[2][1] = 1;
- a[2][2] = 2;
- wyswietlTablice(a, n);
- gauss(a, n);
- break;
- }
- case 2: {
- // Demo wspolczynniki
- int n = 4;
- float **a = stworzTablice(n);
- a[0][0] = 1;
- a[0][1] = 1;
- a[0][2] = -3;
- a[0][3] = 1;
- a[1][0] = 0;
- a[1][1] = 2;
- a[1][2] = -1;
- a[1][3] = 2;
- a[2][0] = 1.5;
- a[2][1] = 3.5;
- a[2][2] = -3.5;
- a[2][3] = 6.5;
- a[3][0] = 0.5;
- a[3][1] = 1.5;
- a[3][2] = 0;
- a[3][3] = 7.5;
- wyswietlTablice(a, n);
- gauss(a, n);
- break;
- }
- case 4:
- // Wlasne wspolczynniki
- int n;
- cout << "Podaj ilosc wspolczynnikow (n): ";
- cin >> n;
- float **a = stworzTablice(n);
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < n; j++) {
- a[i][j] = 0;
- cout << "a[" << i << ", " << j << "]: ";
- cin >> a[i][j];
- }
- }
- wyswietlTablice(a, n);
- gauss(a, n);
- break;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement