[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]
Huruf S(spasi), T(tab), dan N(baris baru) ditambahkan hanya sebagai penyorotan.
[..._some_action]ditambahkan sebagai penjelasan saja.
Cobalah online. Anda harus menyalin-tempel kode sendiri (perhatikan bahwa SE mengonversi tab menjadi banyak spasi!) Untuk menjalankan kode di vii5ard Whitespace-compiler online. Saat mengklik jalankan, ia akan meminta input (yaitu -285.5), dan setelah mengklik enter akan melanjutkan dan menghasilkan -283.
Penjelasan dalam pseudo-code:
Integer i = STDIN as integer
Print i as integer
Spasi hanya dapat menggunakan I / O sebagai bilangan bulat atau karakter tunggal, jadi dalam hal ini akan membaca input sebagai bilangan bulat dan mengabaikan karakter trailing lainnya. Yaitu -283.5atau -283abc5keduanya akan menjadi input (dan dengan demikian output) sebagai-283 .
Sayangnya ini di atas tidak berfungsi pada TIO karena dua alasan (semua kompiler Whitespace sedikit berbeda ..):
- Ini akan memberikan
no parsekesalahan ketika kita mencoba membaca input sebagai integer, yang bukan integer yang valid. Jadi, alih-alih kami akan membaca satu karakter pada satu waktu, dan berhenti (dengan kesalahan) segera setelah kami menemukan .atau tidak ada input lagi (yaitu 50/ -50).
- Dalam vii5ard compiler juga dimungkinkan untuk menekan 0 dengan adil
SSN, sedangkan pada TIO memerlukan tambahan Satau T: SSSN/ SSTN. Yang pertama Sadalah Enable Stack Manipulation ; yang kedua Sadalah Push yang mengikuti sebagai integer ; yang ketiga S/ Tpositif / negatif masing-masing; dan setiap S/ Tsetelah itu (diikuti oleh N) adalah angka yang ingin kita dorong dalam biner, di mana S=0dan T=1. Untuk integer 0 bagian biner ini tidak masalah, karena ini 0 secara default. Tetapi pada TIO kita masih harus menentukan positif / negatif, dan dengan sebagian besar kompiler Whitespace lainnya seperti vii5ard tidak.
Spasi (dengan TIO compiler ), 48 byte
[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]
Huruf S(spasi), T(tab), dan N(baris baru) ditambahkan hanya sebagai penyorotan.
[..._some_action]ditambahkan sebagai penjelasan saja.
Cobalah online (dengan spasi, tab, dan hanya baris baru).
Penjelasan dalam pseudo-code:
Start LOOP:
Character c = STDIN as character
If(c == '.'):
Exit program
Print c as character
Go to the next iteration of LOOP
3.00untuk3.14?