-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSimplyMatrixMultiplication.py
126 lines (122 loc) · 1.86 KB
/
SimplyMatrixMultiplication.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
BEGIN
NUMBER rowA
NUMBER colA
NUMBER a[20, 20]
NUMBER rowB
NUMBER colB
NUMBER b[20, 20]
NUMBER i
NUMBER j
NUMBER res[20, 20]
NUMBER x
NUMBER y
NUMBER z
NUMBER fillx
NUMBER filly
NUMBER val
NUMBER comp
i := 0
j := 0
x := 0
y := 0
z := 0
fillx := 0
filly := 0
comp := 0
WHILE fillx < 5
BEGIN
WHILE filly < 5
BEGIN
res[fillx, filly] := 0
filly := filly + 1
END
filly := 0
fillx := fillx + 1
END
PRINT " "
PRINT "Matrix A"
PRINT "========"
PRINT "Rows:"
READ rowA
PRINT " "
PRINT "Cols:"
READ colA
PRINT " "
PRINT "Values:"
WHILE i < rowA
BEGIN
WHILE j < colA
BEGIN
READ a[i, j]
j := j + 1
END
j := 0
i := i + 1
END
PRINT " "
PRINT "Matrix B"
PRINT "========"
PRINT "Rows:"
READ rowB
PRINT " "
PRINT "Cols:"
READ colB
PRINT " "
PRINT "Values:"
i := 0
j := 0
WHILE i < rowB
BEGIN
WHILE j < colB
BEGIN
READ b[i, j]
j := j + 1
END
j := 0
i := i + 1
END
PRINT " "
IF colA ~= rowB
BEGIN
PRINT "Incompatible Dimensions"
comp := 1
END
ELSE
BEGIN
WHILE x < rowA
BEGIN
WHILE y < colB
BEGIN
WHILE z < rowB
BEGIN
val := a[x, z] * b[z, y]
val := val + res[x, y]
res[x, y] := val
z := z + 1
END
z := 0
y := y + 1
END
y := 0
x := x + 1
END
END
IF comp = 0
BEGIN
PRINT "A x B = "
i := 0
j := 0
WHILE i < rowA
BEGIN
PRINT "Row ", i + 1
WHILE j < colB
BEGIN
PRINT res[i, j]
j := j + 1
END
PRINT "--------"
j := 0
i := i + 1
END
END
END