15_matrixMult.cvc 1.4 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. //Fill in Matrix B
  32. for (int i = 0, rowsMatrixB)
  33. {
  34. for (int j = 0, colMatrixB)
  35. {
  36. matrixB[i, j] = i + j;
  37. printInt(matrixB[i, j]);
  38. printSpaces(3);
  39. }
  40. printNewlines(1);
  41. }
  42. //Do Multiplication
  43. for (int i = 0, rowsMatrixA)
  44. {
  45. for (int j = 0, colMatrixB)
  46. {
  47. matrixProduct[i, j] = 0;
  48. for (int m = 0, colMatrixA)
  49. {
  50. matrixProduct[i, j] = matrixProduct[i, j] + (matrixA[i, m] * matrixB[m,j]);
  51. }
  52. }
  53. }
  54. for (int i = 0, rowsMatrixA)
  55. {
  56. for (int j = 0, colMatrixB)
  57. {
  58. printInt(matrixProduct[i, j]);
  59. printSpaces(3);
  60. }
  61. printNewlines(1);
  62. }
  63. }
  64. return 0;
  65. }