プレイ日記
質問です!! DEFを使って命令を作るとき、下のようなものを作るにはどうすればいいでしょうか? 例えば指定した変数に3を入れてくれる変数 命令名が"IN3" IN3 A とすると変数Aが3になって IN3 B とすると変数Bが3になる みたいな感じです 命令を呼び出す側で定義した変数を命令内でかえたりしたいのです。
3そうだね
プレイ済み
返信[1]
親投稿
Godot orz_127
DEFでその様な命令を作る事が目的ですか? そうでないならその場合、素直に以下のように関数をつくるのですが。 VAR A,B DEF IN3() RETURN 3 END A=IN3() B=IN3()
1そうだね
プレイ済み
返信[2]
親投稿
実は画像にある"MIDINPUT"という命令を作っってまして・・・ INPUTとほぼ同じですが、ガイド文字列をコンソール画面の真ん中に表示するというものでして、それを作るにはDEFで作りたいなぁって思いまして。
0そうだね
プレイ済み
返信[3]
親投稿
Godot orz_127
システムのINPUTは可変長引数です。 DEFでユーザが定義出来るのは固定長引数で、型も固定化しなければならなかったかと。 汎用的に作ろうとすると、数値用、文字列用、それの複数、組合せを用意しなければならないかと。 MIDPRINTでガイド文字列を表示してINPUTはガイド文字無しで使用すると言う方法も。 その場合、現状のMIDPRINTでは改行してしまうので改行しない版がひつようかと。 因みに画像の定義では引数がTEXT$で内部処理は、A$となって居ます。 期待通りに動いていないのでは?
0そうだね
プレイ済み
返信[4]
親投稿
あ、text$の部分は替えてる最中だったので大丈夫です。 それにしても勉強になりますね・・・ なるほど、MIDPRINTとの融合か・・・やってみます。
0そうだね
プレイ済み
返信[5]
親投稿
Godot orz_127
ついでに。 「FOR~NEXT」のところですが 「?" "*((50-LEN(A$)) DIV 2);」 と言う書き方もできます。 または、「LOCATE (50-LEN(A$)) DIV 2,CSRY」でも良いかも。 ご参考まで。
0そうだね
プレイ済み
返信[6]
親投稿
いぶき ibuki426
引数で指定した変数に代入するにはOUTでやらなきゃいけません。 DEFでINCみたいに引数の変数に代入することは残念ながら出来ません。(多分。メモリー参照の仕様をうまく使えばできるかも?)
0そうだね
プレイ済み