- 締切済み
CASLIIについて
CASLIIについて質問します。 キーボードから数字を入力し、計算した結果を画面に出したいのですが、計算するために数値に変換する方法と画面に出力するために文字に変換する方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
手前味噌ですが、参考URLが参考になるかと思います。
- ekuko_ecch
- ベストアンサー率17% (16/91)
サブルーチン作成のルール。 1. 引数を決める。 2. 戻り値を決める。 3. レジスタの値を保護する(呼出側で保護する方法もある) サブルーチンは、ブラックボックスです。必要なデータを与えたら、なんらかの処理をして、1つ(又は0)の結果を返すものです。 ※ 例 ※ 台形の面積を計算するサブルーチン 1. 引数 上辺の長さ、下辺の長さ、高さ この場合、引数は3つ。 2. 返却値 台形の面積 3. 保護するレジスタ CPUアーキテクチャによる。
- ekuko_ecch
- ベストアンサー率17% (16/91)
CASL IIのニーモニックは知りませんが、アルゴリズムとしては以下のようになります。 数字 → 数値変換 1. 数字のASCIIコードから'0'を引く。 例 '7' - '0' = 7 2. 2桁以上であれば、元の数値を10倍して新しい値を足す。 例 7 に '3' を加えて 73 にするには、7 * 10 + 3 とする。 数値 → 文字配列 1. 数値を10で割った余りに'0'を加算してスタックに積む。 例 123 % 10 = 12, 3。3 + '0' = '3'。'3'をスタックに積む。 2. 先の商を10で割り、余りに'0'を加算してスタックに積む。 例 12 % 10 = 1, 2。2 + '0' = '2'。 '2'をスタックに積む。 さらに、'1'をスタックに積む。ここで商が0荷なるので、終了。 3. 2.を商が0になるまで繰り返す。 4. スタックに積まれたものが変換した数字列になっている。 例 スタックは、'3', '2', '1'となっているので、 そのまま取り出せば、'1', '2', '3'となる。
補足
ありがとうございます。 もう少しお伺いしたいのですが、数字→数値変換、数値→文字を別々のサブルーチンにしようとしています。実際どのように作れば良いでしょうか。 ※キーボードから入力の桁数は1桁でもそれ以上でも対応できるようする場合。