モジュール詳細: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」の命令にジャンプし、その命令を実行する。 |