• 締切済み

CASLIIについて

CASLIIについて質問します。 キーボードから数字を入力し、計算した結果を画面に出したいのですが、計算するために数値に変換する方法と画面に出力するために文字に変換する方法を教えてください。

みんなの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

手前味噌ですが、参考URLが参考になるかと思います。

参考URL:
http://okwave.jp/kotaeru.php3?q=1120145
全文を見る
すると、全ての回答が全文表示されます。
回答No.2

サブルーチン作成のルール。 1. 引数を決める。 2. 戻り値を決める。 3. レジスタの値を保護する(呼出側で保護する方法もある) サブルーチンは、ブラックボックスです。必要なデータを与えたら、なんらかの処理をして、1つ(又は0)の結果を返すものです。 ※ 例 ※ 台形の面積を計算するサブルーチン 1. 引数  上辺の長さ、下辺の長さ、高さ  この場合、引数は3つ。 2. 返却値  台形の面積 3. 保護するレジスタ  CPUアーキテクチャによる。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

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'となる。

yuu-yu77
質問者

補足

ありがとうございます。 もう少しお伺いしたいのですが、数字→数値変換、数値→文字を別々のサブルーチンにしようとしています。実際どのように作れば良いでしょうか。 ※キーボードから入力の桁数は1桁でもそれ以上でも対応できるようする場合。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • CASLIIの問題について

    CASLIIの勉強をはじめたのですが、書籍などを調べても参考のようなものが載っておらず、どうしても分からない問題がありましたので、どなたかお分かりの方いらっしゃいましたらアドバイスをお願いいたします。 【問題】キーボードから入力し出力する電卓を作成せよ。 注)割り算は、余りも出力する事。 〔入力例〕 3 * 5 〔出力例〕 15

  • CASLIIの問題で困っています

    文字の'123'を数値の123に変換するプログラムをCASLで作るという課題が出来ずに困っています。 下記の手順を説明されたのですが、特に(2)と(3)がわからず困っています。 (1)数字を数値に変換 (2)3回ループするロジックを作る (3)1,2,3という1つ1つの数値を計算して123に変換する CASLがわかる方よろしくお願いします。

  • CASLIIの質問です。

    入力された最大256桁の10進正整数について9の倍数か否かを判定し、結果を出力するプログラムをCASLIIの言語で教えて下さい。

  • CASLII:文字列→数字への変換の原理

    CASLIIにおいて 文字列を数字へ変換する場合、000FでAND演算をしますよね?この方法で変換が行なえることはわかるのですが、なぜ000FでAND演算をすると変換されるのか、その原理が分かりません。 ご教授のほどお願い致します。

  • CASLIIについて質問

    『キーボードから任意の数値を二つ入力し、その積を出力するプログラムを作成しなさい。なお、入力される数値は二桁までとする。』という問題なのですが、どうすればいいのかわかりません((+_+))なるべく詳しく教えて頂けないでしょうか(/_;)できれば、プログラムと説明お願いします!

  • c言語プログラミングHELP!

    c言語でプログラムを組んでるんですが、どうしてもわからないものがありまして、 まず一つ目がキーボードから英小文字を一つ入力し、その文字を大文字に変換して出力するプログラミングです。結果がまずひとつの英小文字を入力して、入力した文字と、大文字に変換した文字を出力するプログラミングです。 ちなみにヒントは'a'=97,'A'=65です 二つ目が二桁の16進数('41'から'49','50'から'59')を入力すると対応する文字を表示するプログラミングです。また、%xは使用しないこと。なお、入力に間違いはないものとする。(ヒントは入力は一つの数値か、二つの文字か?だそうです。) 結果は二桁の16進数('41'から'49','50'から'59')を入力して、文字コードの二桁の数字と文字を出力するプログラミングです。 お願いします。

  • アセンブラ言語CASLIIのプログラミングを教えてください

    始めて質問します。よろしく御願いします。 さっそく質問ですが、「キーボードより入力した文字列(少なくとも2文字以上)を逆順に並べ替え、一括して出力するプログラム」が作りたいのですが、作り方がよくわからなくて困っています。 わかる方いらっしゃいますか? 例えば、「abc」と入力したものが「cba」と出力されるプログラムということだと思うのですが・・・

  • CASLII わかるかた いますか?

    ZAIKO,NYUKO,SYUKKOの各番地にそれぞれ、30、20,10という値が格納されている。 このとき「ZAIKO番地に格納された値+NYUKO番地に格納された値-SYUKKO番地に格納された値」を計算し、その結果をZAIKO番地に格納する。 CASLIIなのですが、 わかる方 いらっっしゃるでしょうか? このもんだいが 解けなくて ずっと引っかかっております。よかったら お願いいたします。

  • C言語の問題

    配列の問題 1.キーボードから入力したアルファベットの大文字(A~Z)の入力回数をそれぞれ数え、結果を画面出力するプログラムを作成せよ。但し、入力の終了はEOFとし、入力回数のカウントには、配列を用いるものとする。(文字ごとに回数を格納する配列を用意する) 2.キーボードから番号(数字)を入力し、その番号に該当する文字列中の文字を画面表示するプログラムを作成せよ。なお、数字以外の文字が入力した場合と、文字列の範囲外の数字が入力された場合は、任意のメッセージを出力し、再入力するようにする。また文字列はキーボードから入力するものとする。 この問題が解けなくて困ってます。どうか知恵をかしてください。

  • CASLIIに関する質問です。

    CASLの問題で分からないものがあるので質問させてもらいます。 以下の条件のプログラムなのですが・・・。 ・キー入力された10進数(最大10個)を昇順に並び替えて表示する。 ・入力される数の範囲は0から65535まで。 ・並び替え開始コマンド'START'を入力すると、入力した数が10個未満でも並び替え処理を行うことができる。 ・終了コマンド'END'を入力すると、プログラムを終了できる。 ・上記以外の文字が入力されたときはエラーメッセージを表示して終了する。 キー入力された数が10個丁度なら自動的にプログラムが開始される、とのことです。 CASLIIを始めてまだ日が浅い自分にとってはかなり難しいです・・・。 よろしくお願いします。