Advertisement
Guest User

Untitled

a guest
Oct 16th, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.45 KB | None | 0 0
  1. #include<iostream>
  2. #include<math.h>
  3. #define MAXX 1001
  4. #define SCALAR 0.4
  5.  
  6. using namespace std;
  7.  
  8. double Answer;
  9.  
  10. void DIFFERENCE(double **p, double **p2, int m, int n)
  11. {
  12. for (int i = 0; i < m; ++i)
  13. {
  14. for (int j = 0; j < n; ++j)
  15. cout << p[i][j] - p2[i][j] << " ";
  16. cout << endl;
  17. }
  18. }
  19.  
  20. void SUM(double **p, double **p2, int m, int n)
  21. {
  22. for (int i = 0; i < m; ++i)
  23. {
  24. for (int j = 0; j < n; ++j)
  25. cout << p[i][j] + p2[i][j]<<" ";
  26. cout << endl;
  27. }
  28. }
  29.  
  30. void PROD__SCAL(double **p, int m , int n , double SCAL )
  31. {
  32. for (int i = 0; i < m; ++i)
  33. {
  34. for (int j = 0; j < n; ++j)
  35. cout << p[i][j] * SCAL<<" ";
  36. cout << endl;
  37. }
  38. }
  39.  
  40. void TRANSPUSA(double **p, int m, int n)
  41. {
  42. for (int i = 0; i <= n; ++i)
  43. {
  44. for (int j = 0; j <= m; ++j)
  45. cout << p[i][j] << " ";
  46. cout << endl;
  47. }
  48. }
  49.  
  50. double** READ(int m, int n)
  51. {
  52. double **s;
  53. s = new(nothrow)double*[m];
  54. for (int i = 0; i < m; ++i)
  55. s[i] = new(nothrow)double[n];
  56. for (int i = 0; i < m; ++i)
  57. for (int j = 0; j < n; ++j)
  58. cin >> s[i][j];
  59. return s;
  60. }
  61.  
  62. void SHOW_MATRIX(double **p , int l, int c)
  63. {
  64. for (int i = 0; i < l; ++i)
  65. {
  66. for (int j = 0; j < c; ++j)
  67. cout << p[i][j] << " ";
  68. cout << endl;
  69. }
  70. }
  71.  
  72. void PROD_MATRICE(double **p, double **p2, int l1, int c1, int l2, int c2)
  73. {
  74.  
  75. if (c1 != l2) {
  76. cout << "Nu se poate efectua produsul ";
  77. exit(1);
  78. }
  79.  
  80. for (int i = 1; i <= l1; ++i)
  81. {
  82. for (int j = 1; j <= c2; ++j)
  83. {
  84. Answer = 0;
  85. for (int KKK = 1; KKK <= c1; ++KKK)
  86. Answer = Answer + p[i][KKK] * p2[KKK][j];
  87. cout << Answer << " ";
  88.  
  89. }
  90. cout << endl;
  91. }
  92.  
  93. }
  94.  
  95.  
  96. int main()
  97.  
  98. { //MERGE DOAR PENTRU MATRICI PATRATICE
  99. int m, n;
  100. cin >> m >> n;
  101. double** mat1 = READ(m, n);
  102. int m2, n2;
  103. cin >> m2 >> n2;
  104. double** mat2 = READ(m2, n2);
  105. SUM(mat1, mat2, m, n);
  106. cout << endl;
  107. DIFFERENCE(mat1, mat2, m, n);
  108. cout << endl;
  109. PROD__SCAL(mat1, m, n, SCALAR);
  110. cout << endl;
  111. TRANSPUSA(mat1, m, n);
  112. cout << endl;
  113. PROD_MATRICE(mat1, mat2, m, n, m2, n2);
  114. cout << endl;
  115. //SHOW_MATRIX(mat1, m, n);
  116. /*int m, n;
  117. int m2, n2;
  118. mat1 = new(nothrow)int *[m];
  119. for (int i = 0; i < m ; ++i)
  120. mat1[i] = new(nothrow) int[n];
  121. //aloc dimanic tabloul dimanic de elemente dinamice ( matrice )
  122.  
  123. mat2 = new(nothrow)int*[m2];
  124. for (int i = 0; i < m2 ; ++i)
  125. mat2[i] = new(nothrow)int[n2];
  126. //aloc dimanic al doilea tabloul dimanic de elemente dinamice ( matrice )
  127. */
  128. system("pause");
  129. return 0;
  130. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement