Advertisement
Guest User

Untitled

a guest
Dec 13th, 2019
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.91 KB | None | 0 0
  1. #include <iostream>
  2. #include <iomanip>
  3.  
  4. using namespace std;
  5.  
  6. void wyswietlTablice(float **a, int n) {
  7. cout << setfill('-') << setw(16*n) << "" << endl;
  8. cout << setfill(' ');
  9. for (int i = 0; i < n; i++) {
  10. for (int j = 0; j < n; j++) {
  11. cout << "a[" << i << ", " << j << "]: " << setw(4) << a[i][j] << " | ";
  12. }
  13. cout << endl;
  14. }
  15. cout << setfill('-') << setw(16*n) << "" << endl;
  16. cout << setfill(' ');
  17. }
  18.  
  19. void gauss(float **a, int n) {
  20. float p[n];
  21.  
  22. for (int k = 0; k < n; k++) {
  23. cout << endl << "Krok " << k << endl;
  24.  
  25. if (a[k][k] == 0) {
  26. cout << "Zero w elemencie [" << k << ", " << k << "]" << endl;
  27. return;
  28. }
  29.  
  30. // Obliczanie P
  31. for (int i = k+1; i < n; i++) {
  32. p[i] = a[i][k] / a[k][k];
  33. cout << "P[" << i << "]: " << p[i] << endl;
  34.  
  35. // Zmiana wiersza
  36. for (int j = 0; j < n; j++) {
  37. a[i][j] -= p[i] * a[0][j];
  38. }
  39. }
  40.  
  41. wyswietlTablice(a, n);
  42. }
  43. }
  44.  
  45. float** stworzTablice(int n) {
  46. float **a = new float*[n];
  47. for (int i = 0; i < n; i++) {
  48. a[i] = new float[n];
  49. }
  50.  
  51. return a;
  52. }
  53.  
  54. int main() {
  55.  
  56.  
  57. cout << "1. Wpolczynniki 1" << endl;
  58. cout << "2. Wpolczynniki 2" << endl;
  59. cout << "3. Wpolczynniki 3" << endl;
  60. cout << "4. Wpolczynniki wlasne" << endl;
  61. cout << "Wybor: ";
  62. int wybor;
  63. cin >> wybor;
  64.  
  65. switch(wybor) {
  66. case 1: {
  67. // Demo wspolczynniki
  68. int n = 3;
  69. float **a = stworzTablice(n);
  70. a[0][0] = 1;
  71. a[0][1] = 2;
  72. a[0][2] = -1;
  73. a[1][0] = 2;
  74. a[1][1] = 1;
  75. a[1][2] = 0;
  76. a[2][0] = -1;
  77. a[2][1] = 1;
  78. a[2][2] = 2;
  79. wyswietlTablice(a, n);
  80.  
  81. gauss(a, n);
  82. break;
  83. }
  84. case 2: {
  85. // Demo wspolczynniki
  86. int n = 4;
  87. float **a = stworzTablice(n);
  88. a[0][0] = 1;
  89. a[0][1] = 1;
  90. a[0][2] = -3;
  91. a[0][3] = 1;
  92. a[1][0] = 0;
  93. a[1][1] = 2;
  94. a[1][2] = -1;
  95. a[1][3] = 2;
  96. a[2][0] = 1.5;
  97. a[2][1] = 3.5;
  98. a[2][2] = -3.5;
  99. a[2][3] = 6.5;
  100. a[3][0] = 0.5;
  101. a[3][1] = 1.5;
  102. a[3][2] = 0;
  103. a[3][3] = 7.5;
  104. wyswietlTablice(a, n);
  105.  
  106. gauss(a, n);
  107. break;
  108. }
  109. case 4:
  110. // Wlasne wspolczynniki
  111. int n;
  112. cout << "Podaj ilosc wspolczynnikow (n): ";
  113. cin >> n;
  114.  
  115. float **a = stworzTablice(n);
  116.  
  117. for (int i = 0; i < n; i++) {
  118. for (int j = 0; j < n; j++) {
  119. a[i][j] = 0;
  120. cout << "a[" << i << ", " << j << "]: ";
  121. cin >> a[i][j];
  122. }
  123. }
  124.  
  125. wyswietlTablice(a, n);
  126.  
  127. gauss(a, n);
  128. break;
  129. }
  130.  
  131. return 0;
  132. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement