[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]
Chữ cái S(dấu cách), T(tab) và N(dòng mới) được thêm vào dưới dạng chỉ tô sáng.
[..._some_action]chỉ thêm vào giải thích.
Hãy thử trực tuyến. Bạn sẽ phải tự sao chép-dán mã (lưu ý rằng SE chuyển đổi các tab thành một loạt khoảng trắng!) Để chạy mã tại trình biên dịch vii5ard trực tuyến vii5ard. Khi nhấp vào chạy, nó sẽ yêu cầu đầu vào (nghĩa là -285.5) và sau khi nhấp vào, nó sẽ tiếp tục và xuất ra-283 .
Giải thích bằng mã giả:
Integer i = STDIN as integer
Print i as integer
Khoảng trắng chỉ có thể sử dụng I / O làm số nguyên hoặc ký tự đơn, vì vậy trong trường hợp này, nó sẽ đọc đầu vào dưới dạng số nguyên và bỏ qua bất kỳ ký tự dấu nào khác. Tức là -283.5hoặc -283abc5cả hai sẽ là đầu vào (và do đó đầu ra) là-283 .
Thật không may, điều này ở trên không hoạt động trên TIO vì hai lý do (tất cả các trình biên dịch Whitespace hơi khác nhau ..):
- Nó sẽ
no parsebáo lỗi khi chúng ta cố đọc đầu vào dưới dạng số nguyên, đây không phải là số nguyên hợp lệ. Vì vậy, thay vào đó, chúng tôi sẽ đọc một ký tự một lần và dừng (có lỗi) ngay khi chúng tôi gặp phải .hoặc không có thêm đầu vào (tức là 50/-50 ).
- Trong trình biên dịch vii5ard, bạn cũng có thể ấn 0 chỉ
SSNtrong khi trên TIO, nó yêu cầu thêm Shoặc T: SSSN/ SSTN. Đầu tiên Slà Kích hoạt thao tác ngăn xếp ; thứ hai Slà Đẩy cái gì sau số nguyên ; thứ ba S/ Tlà tích cực / tiêu cực tương ứng; và bất kỳ S/ Tsau đó (theo sau là N) là số chúng tôi muốn đẩy ở dạng nhị phân, ở đâu S=0và T=1. Đối với số nguyên 0, phần nhị phân này không thành vấn đề, vì nó là 0 theo mặc định. Nhưng trên TIO, chúng tôi vẫn phải chỉ định dương / âm và với hầu hết các trình biên dịch khoảng trắng khác như vii5ard thì không.
[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]
Chữ cái S(dấu cách), T(tab) và N(dòng mới) được thêm vào dưới dạng chỉ tô sáng.
[..._some_action]chỉ thêm vào giải thích.
Dùng thử trực tuyến (chỉ có không gian thô, tab và dòng mới).
Giải thích bằng mã giả:
Start LOOP:
Character c = STDIN as character
If(c == '.'):
Exit program
Print c as character
Go to the next iteration of LOOP
3.00cho3.14?