- 締切済み
CASL(II)で・・・
CASLで キーボードから数値を入力して、それに応じて 三角形(右下が直角な直角三角形) * ** *** **** ***** や ピラミッド * *** ***** を表示したいのですが自分のでは空白を出力してか改行してしまって思い通りできません 改行しない命令があればそれを教えてください。 あと できればそのソースも載せてほしいです。。。 お願いします
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- jjon-com
- ベストアンサー率61% (1599/2592)
> 改行はしてしまうということは > 上のように*の最大を5などと決めて作るしかないですか? はい,そうなります。 情報処理技術者試験 「試験で使用する情報技術に関する用語・プログラム言語など」 Ver2.2(2012年5月版) http://www.jitec.jp/1_13download/shiken_yougo_ver2_2.pdf において規定されている OUTマクロ命令は「OUT 出力領域,出力文字長領域」という書式であり,一行分の出力文字列を溜め込んで出力する命令ですから。 > キーボードから読み込んだ段だけつくることはできないのでしょうか・・・? ハードウェアCOMETIIの主記憶容量は65536語ですし,OUTマクロ命令の出力文字長領域の取り得る値も0~65535です。直角三角形やピラミッドの一辺の長さを,この条件の下で許されるかぎり長くすることはできます。 ただ,OUTマクロ命令の1回の実行により,一行分の出力文字列を溜め込んで出力し,その後レコード末尾が出現する(コンソールの場合は改行される)という動作は変わりません。 それが望みの動作ではないのなら,CASLIIの既定の命令群ではない,独自のマクロ命令を作ることになるでしょう。
- jjon-com
- ベストアンサー率61% (1599/2592)
> 改行しない命令があればそれを教えてください。 改行しない命令はありません。 OUTマクロ命令は1回実行すると1レコードを書き出す命令であり,これをコンソール出力するとレコードの末尾に改行が付加されますので。 ですから次のように出力したいのなら, * *** ***** 次のようなコードを書けばよいわけです。 OUT STR,LEN1 OUT STR,LEN3 OUT STR,LEN5 LEN1 DC 1 LEN3 DC 3 LEN5 DC 5 STR DC '*****' 別にLEN1, LEN3, LEN5を個々に定義しなくても,1語の領域(例えば LEN DS 1)の中身をプログラミングで1, 3, 5と変更すれば結果は同じであることは大丈夫ですよね。
補足
表示が全部左下が直角な直角三角形だったので"_"を空白として見てください 右下 ____* ___** __*** _**** ***** 右上 ***** _**** __*** ___** ____* ピラミッド __*__ _***_ ***** といったように表示したいです 改行はしてしまうということは 上のように*の最大を5などと決めて作るしかないですか? キーボードから読み込んだ段だけつくることはできないのでしょうか・・・?