User:Jccsvq/Abacus diagrams and procedure tables
Abacus diagrams
[edit | edit source]Using images
[edit | edit source]Diagrams of this type:
| A | B | C | D | E | F | G | H | I | K | J | L | M | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 9 | 18 | 9 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 9 | 9 | 9 |
may be tailored in this way
{| cellspacing="0" style="text-align:center"
|+ '''Write caption here!'''
|-
|
!A
!B
!C
!D
!E
!F
!G
!H
!I
!K
!J
!L
!M
|
|-
| [[ File:suanpan-lw.png|25px]]
| [[ File:suanpan-9.png|25px]]
| [[ File:suanpan-18.png|25px]]
| [[ File:suanpan-9.png|25px]]
| [[ File:suanpan-0.png|25px]]
| [[ File:suanpan-0.png|25px]]
| [[ File:suanpan-1.png|25px]]
| [[ File:suanpan-0.png|25px]]
| [[ File:suanpan-0.png|25px]]
| [[ File:suanpan-0.png|25px]]
| [[ File:suanpan-0.png|25px]]
| [[ File:suanpan-9.png|25px]]
| [[ File:suanpan-9.png|25px]]
| [[ File:suanpan-9.png|25px]]
| [[ File:suanpan-rw.png|25px]]
|-
|
|9
|18
|9
|0
|0
|1
|0
|0
|0
|0
|9
|9
|9
|
|}
or you can use this rudimentary AWK code:
BEGIN{
letras="ABCDEFGHIKJLMNOPQRSTUVWXYZ"
}
{
print "{| cellspacing=\"0\" style=\"text-align:center\"";
print "|+ '''Write caption here!'''";
print "|-";
print "|";
for(i=1;i<=NF;i++){
print "!"substr(letras,i,1);
};
print "|";
print "|-";
print "| [[ File:suanpan-lw.png|25px]]";
for(i=1;i<=NF;i++){
print "| [[ File:suanpan-"$i".png|25px]]";
};
print "| [[ File:suanpan-rw.png|25px]]";
print "|-";
print "|";
for(i=1;i<=NF;i++){
print "|"$i;
};
print "|";
print "|}";
}
to automatically generate them from an input like:
9 18 9 0 0 1 0 0 0 0 9 9 9
txt-abacus
[edit | edit source]Generated with https://github.com/jccsvq/txt-abacus. Work on my desktop but not on my mobile devices because of accessible fonts. It is better to forget them for now!
9 18 8 0 0 1 9 9 9
╔═════════════════════════════════════════╗
║ │ │ │ ● ● ● ● ● ● ● │ │ │ ║
║ │ │ │ │ │ │ │ │ │ │ │ │ │ ║
║ ● ● ● │ │ │ │ │ │ │ ● ● ● ║
╠═════════════════════════════════════════╣
║ ● ● ● │ │ ● │ │ │ │ ● ● ● ║
║ ● ● ● │ │ │ │ │ │ │ ● ● ● ║
║ ● ● ● ● ● │ ● ● ● ● ● ● ● ║
║ ● │ │ ● ● ● ● ● ● ● ● ● ● ║
║ │ │ │ ● ● ● ● ● ● ● │ │ │ ║
║ ● ● ● ● ● ● ● ● ● ● │ │ │ ║
║ │ ● ● ● ● ● ● ● ● ● ● ● ● ║
╚═════════════════════════════════════════╝
A B C D E F G H I J K L M
| Header text | Header text |
|---|---|
9 18 8 0 0 1 9 9 9 |
Example |
Translating abacus procedure tables to wikitables
[edit | edit source]AWK code
[edit | edit source]BEGIN {
FS="|";
print "{| class=\"wikitable\" style=\"font-family:Courier; line-height: 1.10em;\"";
print "|+ Caption text";
print "|-";
print "! Abacus !! Comment";
}
{
sub(/\ *$/,"",$1)
gsub(/\ /,"\ ",$1);
print "|-";
print "| " $1;
print "| " $2;
}
END {
print "|}";
}
Example data
[edit | edit source] ABCDEFGHIJKLM|
4567890123|Entering radicand starting in CD (first group)
2 |First root digit in B
-4 |Subtract square of B from first group
2 567890123|Null remainder
4 567890123|Doubling B. Appending next group to remainder
41 567890123|5/4≈1, try 1 as next root digit
-4 |Continue division by 41, subtract 1✕41 from EF
-1|
41 157890123|15 as remainder
42 157890123|Double second root digit
42 157890123|Append next group
423157890123|157/42≈3, try 3 as next root digit
-12 |Continue division by 423, subtract 3✕423 from E-H
-06|
-09|
423 30990123|309 as remainder
426 30990123|Double third root digit
426 30990123|Append next group
etc.|
Generated wiki code
[edit | edit source]{| class="wikitable" style="font-family:Courier; line-height: 1.10em;"
|+ Caption text
|-
! Abacus !! Comment
|-
| ABCDEFGHIJKLM
|
|-
| 4567890123
| Entering radicand starting in CD (first group)
|-
| 2
| First root digit in B
|-
| -4
| Subtract square of B from first group
|-
| 2 567890123
| Null remainder
|-
| 4 567890123
| Doubling B. Appending next group to remainder
|-
| 41 567890123
| 5/4≈1, try 1 as next root digit
|-
| -4
| Continue division by 41, subtract 1✕41 from EF
|-
| -1
|
|-
| 41 157890123
| 15 as remainder
|-
| 42 157890123
| Double second root digit
|-
| 42 157890123
| Append next group
|-
| 423157890123
| 157/42≈3, try 3 as next root digit
|-
| -12
| Continue division by 423, subtract 3✕423 from E-H
|-
| -06
|
|-
| -09
|
|-
| 423 30990123
| 309 as remainder
|-
| 426 30990123
| Double third root digit
|-
| 426 30990123
| Append next group
|-
| etc.
|
|}
Generated table
[edit | edit source]After changing caption:
| Abacus | Comment |
|---|---|
| ABCDEFGHIJKLM | |
| 4567890123 | Entering radicand starting in CD (first group) |
| 2 | First root digit in B |
| -4 | Subtract square of B from first group |
| 2 567890123 | Null remainder |
| 4 567890123 | Doubling B. Appending next group to remainder |
| 41 567890123 | 5/4≈1, try 1 as next root digit |
| -4 | Continue division by 41, subtract 1✕41 from EF |
| -1 | |
| 41 157890123 | 15 as remainder |
| 42 157890123 | Double second root digit |
| 42 157890123 | Append next group |
| 423157890123 | 157/42≈3, try 3 as next root digit |
| -12 | Continue division by 423, subtract 3✕423 from E-H |
| -06 | |
| -09 | |
| 423 30990123 | 309 as remainder |
| 426 30990123 | Double third root digit |
| 426 30990123 | Append next group |
| etc. |