- ベストアンサー
フローチャート-この問題を教えて下さい。-
ご覧いただきありがとうございます。 フローチャートの問題です。自力ではどうしても考え付きません。考え方や参考、解答など何でも結構ですので、どなたか教えて下さい。 「問い.最大9桁の数を小切手に印字したい。この時、数字の改ざんを防ぐために、入力された数字の頭に「*」をつけて印字するプログラムを作成せよ。(印字は一文字ずつ行うものとする。複数件のデータを処理する必要は無い。) 出力例)8→*********8、190→******190、1230000→**1230000、800000000→800000000」 以上です。よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
一桁の場合、*は8つではないでしょうか? 私ならば、左から*を入力する作業から入ります。 9桁が最大ですから、印字する数値の桁数を取得し、最大数から得られた数値を引いた数が*の数となります。 (*の繰り返し文) 残りは、左から数値を順に印字する方法です。 (入力数値を繰り返しにより左から印字) 二回目の繰り返し時には最大数が可変であること(数値の桁数が最大値)に注意すれば、上手く行くと思います。 例)190⇒ (1) *を6回印字(9-3=6回繰り返し文) (2) 3桁数字を左から1、9、0と印字(繰り返し文) 頑張ってください。
その他の回答 (1)
- takotakoag
- ベストアンサー率60% (3/5)
要は、出力を9文字固定にしたいだけですね! 私ならば、以下の通りにします。 (1) 数字→文字型に変換します。つまり、数字の190を文字の190とコンピュータに認識させます。(BASICの場合、STR$命令) (2) 変換した文字の文字数をカウントします。(BASICの場合、LEN命令) (3) 文字数が9文字になるまで、A$=”*”+A$を繰り返します。 命令の充実しているBASICならば、トータル10行程度でコーディングできると思います。
お礼
ご回答ありがとうございます。 ちなみに、アセンブリ言語でこの問いのプログラムを作成するためのフローチャートを考えています。
お礼
大変遅くなりましたが、ありがとうございました。 たしかに、*は8つですね。誤字があり申し訳ありませんでした。