モジュール詳細:int##

思考……停止?

画面上の数字の文字列はプログラムを示している。このプログラムはいくつかの命令で構成され、0〜9の数字を三つ繋げた文字列を演算結果として出力する。プログラムの実行内容(最初は左端から実行する)をトレースし、演算結果の三桁を求め、命令ボタンを使用して結果を入力する。

命令

三つの数字の初期状態はすべて0である。また、ポインタと呼ばれるものがあり、最初に三つの数字のうち一つを選んで、その数字を指し示す。現在の数字を参照する場合、ポインタが指し示している数字を参照すること。

さらに、「ステート」という値もあり、初期状態の値は0である。

ステートが5になると、プログラムは強制終了する。

0 ポインタを中央の数字に移動させる。
1 現在のステートが0の場合、プログラム内の「2」の命令にジャンプし、ステートを1に設定し、その命令を実行する。それ以外の場合、何もしない。
2 現在のステートを「0であれば3」「2であれば3」「4であれば5」に変更する。その他の値は変更しないままにする。
3 ポインタを左隣(ループあり)の数字に移動させる。
4 現在の数字が9の場合、0にする。それ以外の場合、現在の数字を1増加させる。
5 ポインタを右隣(ループあり)の数字に移動させる。
6 ポインタを左の数字に移動させる。
7 現在の数字が0の場合、9にする。それ以外の場合、現在の数字を1減少させる。
8 ポインタを右の数字に移動させる。
9 全ての数字を1増加させる(9である場合は0)。
EOF

(プログラムの終わりに達したことを示す)

現在のステートを「1であれば2」「3であれば4」に変更する。その他の値は変更しないままにする。その後、「1」の命令にジャンプし、その命令を実行する。

入力

入力の際は、別のポインタがあり、入力対象の数字を指し示す。三つの数字の初期状態はすべて0であり、ポインタは左の数字を指している。

右のボタンを使用すると、様々なコマンドを切り替えられる。左のボタンを使用すると、表示されたコマンドを実行する。

「{」コマンドを使用すると、入力を開始できる。

「+」「-」命令を使用してポインタの位置を移動させる。

「<」「>」命令を使用すると、現在の数字を1増加または1減少させられる(10で割った余りを使用)。

「,」「.」コマンドは全ての数字を0に戻す。

「.」コマンドを使用した場合、入力を再開するためには「{」ボタンを再度使用しなければいけない。

「}」コマンドを使用して、現在の入力を送信する。

送信した回答が間違っている場合、入力の数字はすべて0にリセットされ、ポインタは元の数字の位置に戻り、「{」コマンドを使用して再度入力を開始しなければいけない。