66 lines
2 KiB
Text
66 lines
2 KiB
Text
#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
|