# 3x3 Matrix Multiplication Using Pascal Programming

The program below computes the product of two 3 by 3 matrices.

PROGRAM matrix (Input, Output);
VAR
A, B, C: ARRAY[1..3, 1..3] OF Integer;
Arow, AColumn, Brow, BColumn, I, J, K, SUM: Integer;
BEGIN
Write(' ':4O, 'MATRIX MULTIPLICATION PROGRAM');
Write(' ':4O, '-----------------------------');
Writeln;}
Writeln(' Enter the number of ROWS of Matrix A');
Writeln(' Enter the number of COLUMNS of Matrix A');
Writeln(' Enter the number of ROWS of Matrix B');
Writeln(' Enter the number of COLUMNS of Matrix B');
Writeln();
IF (AColumn = Brow) THEN
BEGIN
Writeln(' Enter the elements of Matrix A');
For I:= 1 to 3 DO
For J:= 1 TO 3 DO
Writeln(' Enter the elements of Matrix B');
For I:= 1 to 3 DO
For J:= 1 TO 3 DO<
Writeln;
{ Display the elements of Matrix A }
Writeln(' MATRIX A');
Writeln(' --------');
For I:= 1 TO 3 DO
BEGIN
For J:= 1 TO 3 DO
Write(A[I,J]:3);
Writeln;
END;
Writeln;
{ Display the elements of Matrix B }
Writeln(' MATRIX B');
Writeln(' --------');
For I:= 1 TO 3 DO
BEGIN
For J:= 1 TO 3 DO
Write(B[I,J]:3);
Writeln;
END;
Writeln;
{ Compute the Product of Matrices A and B }
For I:= 1 to 3 DO
For J:= 1 TO 3 DO
BEGIN
SUM:=0;
For K:= 1 TO 3 DO
SUM:= SUM + A[I,K] * B[K,J];
C[I,J]:= SUM;
END;
Writeln;
{ Display the Product of Matrices A and B }
Writeln(' MATRIX AB');
Writeln(' ---------');
Writeln;
For I:= 1 TO 3 DO
BEGIN
For J:= 1 TO 3 DO
Write(C[I,J]:5);
Writeln;
END;
END
ELSE
Writeln(' Matrix A and B cannot be multiplied. Enter Matrices in the order m x n and n x p');
Writeln();
Writeln(' PRESS THE ENTER KEY TO EXIT');
END.

 Sample Program Run
You can modify the program if you like. Some ideas are:
1. Modify the program using Functions/Procedures.
2. Modify the program such that it can compute the product for any size of two matrices provided the number of columns of first matrix is equal to the number of rows of the second matrix.

1. When I do the multiplication, I get
[30 23 19 ]
[84 65 58 ]
[138 107 97 ]
What could be going on that my calculation is close but differs from yours?

1. This site agrees with me: