matrix_mult.cvc 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. extern void printInt( int val);
  2. extern void printFloat( float val);
  3. extern int scanInt( );
  4. extern float scanFloat( );
  5. extern void printSpaces( int num);
  6. extern void printNewlines( int num);
  7. export int main()
  8. {
  9. //Read dimensions of matrix from input
  10. int rowsMatrixA =5;
  11. int colMatrixA = 5;
  12. int rowsMatrixB =5;
  13. int colMatrixB = 5;
  14. int[rowsMatrixA, colMatrixA] matrixA;
  15. int[rowsMatrixB, colMatrixB] matrixB;
  16. int[rowsMatrixA, colMatrixB] matrixProduct;
  17. //Product cannot be done if the following condition does not stand
  18. if (colMatrixA == rowsMatrixB)
  19. {
  20. //Fill in Matrix A
  21. for (int i = 0, rowsMatrixA)
  22. {
  23. for (int j = 0, colMatrixA)
  24. {
  25. matrixA[i, j] = i + j;
  26. printInt(matrixA[i, j]);
  27. printSpaces(3);
  28. }
  29. printNewlines(1);
  30. }
  31. printNewlines(1);
  32. //Fill in Matrix B
  33. for (int i = 0, rowsMatrixB)
  34. {
  35. for (int j = 0, colMatrixB)
  36. {
  37. matrixB[i, j] = i + j;
  38. printInt(matrixB[i, j]);
  39. printSpaces(3);
  40. }
  41. printNewlines(1);
  42. }
  43. printNewlines(1);
  44. //Do Multiplication
  45. for (int i = 0, rowsMatrixA)
  46. {
  47. for (int j = 0, colMatrixB)
  48. {
  49. matrixProduct[i, j] = 0;
  50. for (int m = 0, colMatrixA)
  51. {
  52. matrixProduct[i, j] = matrixProduct[i, j] + (matrixA[i, m] * matrixB[m,j]);
  53. }
  54. }
  55. }
  56. for (int i = 0, rowsMatrixA)
  57. {
  58. for (int j = 0, colMatrixB)
  59. {
  60. printInt(matrixProduct[i, j]);
  61. printSpaces(3);
  62. }
  63. printNewlines(1);
  64. }
  65. }
  66. return 0;
  67. }