[S S N
_Push_0][S N
S _Duplicate_0][T N
T T _Read_STDIN_as_integer][T T T _Retrieve_input][T N
S T _Print_as_integer]
Se agregaron letras S
(espacio), T
(tabulación) y N
(nueva línea) solo como resaltado.
[..._some_action]
agregado solo como explicación.
Pruébalo en línea. Tendrá que copiar y pegar el código usted mismo (¡tenga en cuenta que SE convierte las pestañas en un montón de espacios!) Para ejecutar el código en el compilador de espacios en línea vii5ard. Al hacer clic en Ejecutar, solicitará una entrada (es decir -285.5
), y después de hacer clic en Intro continuará y saldrá-283
.
Explicación en pseudocódigo:
Integer i = STDIN as integer
Print i as integer
Los espacios en blanco solo pueden usar E / S como números enteros o caracteres individuales, por lo que en este caso leería la entrada como número entero e ignoraría cualquier otro carácter final. Es decir, -283.5
o -283abc5
ambos serían de entrada (y, por tanto, de salida) como -283
.
Desafortunadamente, lo anterior no funciona en TIO por dos razones (todos los compiladores de Whitespace son ligeramente diferentes ...):
- Dará un
no parse
error cuando intentemos leer una entrada como un entero, que no es un entero válido. Entonces, en su lugar, leeremos un carácter a la vez y nos detendremos (con un error) tan pronto como nos encontremos con el .
o no haya más entradas (es decir, 50
/ -50
).
- En el compilador vii5ard también es posible presionar 0 con solo
SSN
, mientras que en TIO requiere un adicional S
o T
: SSSN
/ SSTN
. El primero S
es Habilitar manipulación de pila ; el segundo S
es Empujar lo que sigue como entero ; el tercero S
/ T
es positivo / negativo respectivamente; y any S
/ T
after that (seguido de an N
) es el número que queremos ingresar en binario, donde S=0
y T=1
. Para el entero 0, esta parte binaria no importa, ya que es 0 por defecto. Pero en TIO todavía tendríamos que especificar lo positivo / negativo, y con la mayoría de los otros compiladores de espacios en blanco como vii5ard no.
Espacio en blanco (con compilador TIO ), 48 bytes
[N
S S N
_Create_Label_LOOP][S S S N
_Push_0][S N
S _Duplicate_0][T N
T S _Read_STDIN_as_character][T T T _Retrieve_input][S N
S _Duplicate_input][S S S T S T T T S N
_Push_46_.][T S S T _Subtract][N
T S S N
_If_0_Jump_to_Label_EXIT][T N
S S _Print_as_character][N
S N
N
_Jump_to_Label_LOOP]
Se agregaron letras S
(espacio), T
(tabulación) y N
(nueva línea) solo como resaltado.
[..._some_action]
agregado solo como explicación.
Pruébelo en línea (solo con espacios en bruto, pestañas y nuevas líneas).
Explicación en pseudocódigo:
Start LOOP:
Character c = STDIN as character
If(c == '.'):
Exit program
Print c as character
Go to the next iteration of LOOP
3.00
para3.14
?