Guest User

Untitled

a guest
Mar 6th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.39 KB | None | 0 0
  1. /*
  2. Temat: Mnozenie macierzy
  3. Autor: Radoslaw i Skorzewski
  4. Data utworzenia: 01.03.2017
  5. Data poprawki/edycja: 03.03.2017
  6. */
  7. #include <iostream>
  8. #include <fstream>
  9. #include <cstdlib>
  10.  
  11. int m1_liczba_wierszy = 0;
  12. int m1_liczba_kolumn = 0;
  13.  
  14. int m2_liczba_wierszy = 0;
  15. int m2_liczba_kolumn = 0;
  16.  
  17. double **PobierzMacierzZPliku(char nazwa[255]);
  18.  
  19. double **IloczynMacierzy(double **tab1, double **tab2);
  20.  
  21. using namespace std;
  22.  
  23. int main()
  24. {
  25. double** Macierz1;
  26. double** Macierz2;
  27. double** Macierz3;
  28.  
  29. Macierz1 = PobierzMacierzZPliku("Macierz2.txt");
  30. Macierz2 = PobierzMacierzZPliku("Macierz3.txt");
  31. Macierz3 = IloczynMacierzy(Macierz1, Macierz2);
  32.  
  33. for (int i = 0; i < m1_liczba_wierszy; i++)
  34. {
  35. for (int j = 0; j < m1_liczba_kolumn; j++)
  36. {
  37. cout << Macierz1[i][j] << " ";
  38. }
  39. cout << endl;
  40. }
  41.  
  42. for (int i = 0; i < m2_liczba_wierszy; i++)
  43. {
  44. for (int j = 0; j < m2_liczba_kolumn; j++)
  45. {
  46. cout << Macierz2[i][j] << " ";
  47. }
  48. cout << endl;
  49. }
  50.  
  51. cout << endl;
  52.  
  53. for (int i = 0; i < m1_liczba_wierszy; i++)
  54. {
  55. for (int j = 0; j < m2_liczba_kolumn; j++)
  56. {
  57. cout << Macierz3[i][j] << " ";
  58. }
  59. cout << endl;
  60. }
  61.  
  62. //system("pause");
  63.  
  64. return 0;
  65. }
  66.  
  67. double **PobierzMacierzZPliku(char nazwa[255]){
  68. int m, n;
  69. fstream plik;
  70. plik.open(nazwa, ios::in);
  71. double **tab;
  72.  
  73.  
  74. if(plik.good()){
  75. plik >> m;
  76. plik >> n;
  77.  
  78. if(m1_liczba_wierszy != 0 && m1_liczba_kolumn != 0){
  79. m2_liczba_wierszy = m;
  80. m2_liczba_kolumn = n;
  81. }else{
  82. m1_liczba_wierszy = m;
  83. m1_liczba_kolumn = m;
  84. }
  85.  
  86. tab = new double*[m];
  87. for(int i = 0; i < m; i++){
  88. tab[i] = new double[n];
  89. }
  90.  
  91. for(int i = 0; i < m; i++){
  92. for(int j = 0; j < n; j++){
  93. plik >> tab[i][j];
  94. }
  95. }
  96. }
  97.  
  98. plik.close();
  99. return tab;
  100. }
  101.  
  102. double **IloczynMacierzy(double **tab1, double **tab2){
  103. double **tab = new double*[m1_liczba_wierszy];
  104. for(int i = 0; i < m1_liczba_wierszy; i++){
  105. tab[i] = new double[m2_liczba_kolumn];
  106. }
  107.  
  108. for(int i = 0; i < m1_liczba_wierszy; i++){
  109. for(int j = 0; j < m2_liczba_kolumn; j++){
  110. for(int k = 0; k < m2_liczba_kolumn; k++){
  111. tab[i][j] += tab1[i][k] * tab2[k][j];
  112. }
  113. }
  114. }
  115. return tab;
  116. }
Advertisement
Add Comment
Please, Sign In to add comment