Mayan numerals: Difference between revisions
Content added Content deleted
(New post.) |
|||
Line 430: | Line 430: | ||
|....|----|----|----|----|----|....|----|----|----|----|----|....| |
|....|----|----|----|----|----|....|----|----|----|----|----|....| |
||
+----+----+----+----+----+----+----+----+----+----+----+----+----+</pre> |
+----+----+----+----+----+----+----+----+----+----+----+----+----+</pre> |
||
=={{header|Amazing Hopper}}== |
|||
{{Trans|BASIC}} |
|||
<syntaxhighlight lang="c"> |
|||
#include <basico.h> |
|||
algoritmo |
|||
muestra="" |
|||
obtener total argumentos |
|||
cuando ' sea distinto a( 2 ) '{ terminar } |
|||
obtener parámetro alfanumérico (2), guardar en 'muestra' |
|||
lsimb={}, '" "," . "," .. ","... ","...."'#(utf8("────")), enlistar en 'lsimb' |
|||
largo=0, #( largo = len(muestra)) |
|||
sdígitos={}, separar( muestra, sdígitos, "") |
|||
ndígitos=0, #( ndígitos = number(sdígitos) ) |
|||
m=0, t=0 |
|||
#( m = largo-1) |
|||
// convertir dígitos a base 20,la base de los mayas: |
|||
iterar para( j=m, #(j>=1), --j ) |
|||
iterar para( i=1, #(i<=j), ++i ) |
|||
bit.and( #(ndígitos[i]), 1 ), por '10', |
|||
guardar en 't' |
|||
#( ndígitos[i+1] += t ) |
|||
#( ndígitos[i] = int(ndígitos[i]/2) ) |
|||
siguiente |
|||
siguiente |
|||
s=1 |
|||
iterar mientras ( #( ndígitos[s]==0 && s<largo) ) |
|||
++s |
|||
reiterar |
|||
// armar los cartuchos: |
|||
imprimir ( #(utf8("╔═════")),#(replicate( utf8("═════"), largo-s) ), #(utf8("═╗")), NL,\ |
|||
#(utf8("║┌────")),#(replicate( utf8("┬────"), largo-s) ), #(utf8("┐║")), NL ) |
|||
n=0 |
|||
iterar para ( l=3, #(l>=0), --l ) |
|||
imprimir (#(utf8("║"))) |
|||
iterar para ( i=s, #(i<=largo), ++i ) |
|||
si ( bit.or ( #(ndígitos[i]), l ), es igual a '0' ) |
|||
imprimir ( #(utf8("│ Θ ")) ) |
|||
sino |
|||
guardar ' #(ndígitos[i]-5*l) ' en 'n' |
|||
si ( #(n>5) ) |
|||
n=5 |
|||
sino si ( n, es negativo? ) |
|||
n=0 |
|||
fin si |
|||
imprimir( #(utf8("│")), #(lsimb[n+1]) ) |
|||
fin si |
|||
siguiente |
|||
imprimir (#(utf8("│║")),NL) |
|||
siguiente |
|||
imprimir ( #(utf8("║└────")),#(replicate( utf8("┴────"), largo-s) ), #(utf8("┘║")), NL,\ |
|||
#(utf8("╚═════")),#(replicate( utf8("═════"), largo-s) ), #(utf8("═╝")), NL ) |
|||
saltar |
|||
terminar |
|||
</syntaxhighlight> |
|||
{{out}} |
|||
<pre> |
|||
$ hopper3 basica/nummaya.bas 4005 |
|||
╔════════════════╗ |
|||
║┌────┬────┬────┐║ |
|||
║│ │ │ │║ |
|||
║│ │ │ │║ |
|||
║│────│ │ │║ |
|||
║│────│ Θ │────│║ |
|||
║└────┴────┴────┘║ |
|||
╚════════════════╝ |
|||
$ hopper3 basica/nummaya.bas 8017 |
|||
╔═════════════════════╗ |
|||
║┌────┬────┬────┬────┐║ |
|||
║│ │ │ │ .. │║ |
|||
║│ │ │ │────│║ |
|||
║│ │ │ │────│║ |
|||
║│ . │ Θ │ Θ │────│║ |
|||
║└────┴────┴────┴────┘║ |
|||
╚═════════════════════╝ |
|||
$ hopper3 basica/nummaya.bas 326205 |
|||
╔══════════════════════════╗ |
|||
║┌────┬────┬────┬────┬────┐║ |
|||
║│ │ │ │ │ │║ |
|||
║│ │ │────│ │ │║ |
|||
║│ │ │────│────│ │║ |
|||
║│ .. │ Θ │────│────│────│║ |
|||
║└────┴────┴────┴────┴────┘║ |
|||
╚══════════════════════════╝ |
|||
$ hopper3 basica/nummaya.bas 886205 |
|||
╔══════════════════════════╗ |
|||
║┌────┬────┬────┬────┬────┐║ |
|||
║│ │ │ │ │ │║ |
|||
║│ │ │────│ │ │║ |
|||
║│ │────│────│────│ │║ |
|||
║│────│────│────│────│────│║ |
|||
║└────┴────┴────┴────┴────┘║ |
|||
╚══════════════════════════╝ |
|||
$ hopper3 basica/nummaya.bas 98380658201233422 |
|||
╔═══════════════════════════════════════════════════════════════════════╗ |
|||
║┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐║ |
|||
║│ │ │ │ │ │ │ │ │ │ .. │ │ │ │ │║ |
|||
║│ │ │ │ │ │....│ │ │ │────│....│ │ . │ │║ |
|||
║│ │ │ │ .. │....│────│....│ │ .. │────│────│ │────│ │║ |
|||
║│ . │....│ Θ │────│────│────│────│....│────│────│────│... │────│ .. │║ |
|||
║└────┴────┴────┴────┴────┴────┴────┴────┴────┴────┴────┴────┴────┴────┘║ |
|||
╚═══════════════════════════════════════════════════════════════════════╝ |
|||
</pre> |
|||
=={{header|APL}}== |
=={{header|APL}}== |