Multiplication tables: Difference between revisions
Content added Content deleted
(Added Bracmat example) |
|||
Line 398: | Line 398: | ||
11 121 132 |
11 121 132 |
||
12 144</pre> |
12 144</pre> |
||
=={{header|Bracmat}}== |
|||
<lang Bracmat> ( multiplicationTable |
|||
= high i j row row2 matrix padFnc tmp |
|||
, celPad leftCelPad padFnc celDashes leftDashes |
|||
. !arg:?high |
|||
& ( padFnc |
|||
= L i w d |
|||
. @(!arg:? [?L) |
|||
& 1+(!L:?i):?L |
|||
& " ":?w |
|||
& "-":?d |
|||
& whl |
|||
' ( !i+-1:~<0:?i |
|||
& " " !w:?w |
|||
& "-" !d:?d |
|||
) |
|||
& str$!w:?w |
|||
& ( |
|||
' ( |
|||
. @(str$(rev$!arg ()$w):?arg [($L) ?) |
|||
& rev$!arg |
|||
) |
|||
. str$!d |
|||
) |
|||
) |
|||
& padFnc$(!high^2):((=?celPad).?celDashes) |
|||
& @(!high:?tmp [-2 ?) |
|||
& padFnc$!tmp:((=?leftCelPad).?leftDashes) |
|||
& 0:?i |
|||
& :?row:?row2 |
|||
& whl |
|||
' ( 1+!i:~>!high:?i |
|||
& !row celPad$!i:?row |
|||
& !celDashes !row2:?row2 |
|||
) |
|||
& str$(leftCelPad$X "|" !row \n !leftDashes "+" !row2 \n) |
|||
: ?matrix |
|||
& 0:?j |
|||
& whl |
|||
' ( 1+!j:~>!high:?j |
|||
& 0:?i |
|||
& :?row |
|||
& whl |
|||
' ( 1+!i:<!j:?i |
|||
& celPad$() !row:?row |
|||
) |
|||
& leftCelPad$!j "|" !row:?row |
|||
& whl |
|||
' ( 1+!i:~>!high:?i |
|||
& !row celPad$(!i*!j):?row |
|||
) |
|||
& !matrix str$(!row \n):?matrix |
|||
) |
|||
& str$!matrix |
|||
) |
|||
& out$(multiplicationTable$12) |
|||
& done;</lang> |
|||
Output: |
|||
<pre> X| 1 2 3 4 5 6 7 8 9 10 11 12 |
|||
--+------------------------------------------------ |
|||
1| 1 2 3 4 5 6 7 8 9 10 11 12 |
|||
2| 4 6 8 10 12 14 16 18 20 22 24 |
|||
3| 9 12 15 18 21 24 27 30 33 36 |
|||
4| 16 20 24 28 32 36 40 44 48 |
|||
5| 25 30 35 40 45 50 55 60 |
|||
6| 36 42 48 54 60 66 72 |
|||
7| 49 56 63 70 77 84 |
|||
8| 64 72 80 88 96 |
|||
9| 81 90 99 108 |
|||
10| 100 110 120 |
|||
11| 121 132 |
|||
12| 144</pre> |
|||
=={{header|C}}== |
=={{header|C}}== |