トピック
パロピカル extremediamond

INPUTって…

あれって可変引数だったり、参照渡しらしき事してるじゃないですか。ユーザー定義関数でも出来ないかな~チラッ
1そうだね
プレイ済み
返信[1]
親投稿
Hanzo rzsense
OUT以外の手段で、と言うことでしょうか? できないこともないです。 以下のようにして、配列の参照を渡すことができます。 以下では、関数の中で配列の中身を読みだすだけですが、配列の中身を書き換えることも、もちろんできます。 DEF SUM(A) VAR I,S=0 FOR I=0 TO LEN(A)-1:S=S+A[I]:NEXT I RETURN S END DIM N[10] FOR I=0 TO 9:N[I]=I+1:NEXT I ?"1カラ10ノゴウケイハ ";:?SUM(N)
0そうだね
プレイ済み
返信[2]
親投稿
パロピカル extremediamond
確かに配列なら参照渡しができました(ご指摘頂いたソースも試してみました)。あれ、つまりは配列は逆に値渡しを行えないという事ですか?その場合は一度配列をCOPYする感じでしょうか。
1そうだね
プレイ済み
返信[3]
親投稿
INPUTじゃないけど、INKEY$を活用する為にも下のキーボードの表示切り替え命令が欲しい…
1そうだね
プレイ済み
返信[4]
親投稿
パロピカル extremediamond
mk2にはPNLTYPEなんて切り替え命令があったのにいつの間にか消えてますねw
1そうだね
プレイ済み
返信[5]
親投稿
パロピカル extremediamond
すみません、二つ前の投稿で値渡しがどうとかかなり的はずれな事言ってました。それこそHanzoさんの例にあげて頂いた方法で問題ないのに…
0そうだね
プレイ済み
返信[6]
親投稿
Hanzo rzsense
レスポンスが遅くて恐縮です。 配列は関数に対し値渡しができないかどうかですが、おそらく既にお気づきのとおり、そんなことはありません。 R=FUNC(N[5])のように、普通に添え字をつけてやれば、値を渡せます。 ただ、配列ではない普通の変数や、添え字で要素を指定した配列変数は、値の「受け」と「渡し」を同じところでは行えません(多分) 値を「渡す」ときは R=FUNC(N) のようにしますが、値を「受ける」ときは COMM OUT N のように「OUT」を使います。 訊かれていることと違うことを回答していたら、ご容赦ください。
0そうだね
プレイ済み
返信[7]
親投稿
けい kei0baisoku
配列そのものは、強制参照渡しで合ってるかなと思います。 可変引数ですが、どのユーザ定義関数も使う時に引数を省略することは出来ます。 TEKIPUT 10,,"S" みたいに。 でも関数の中で省略された変数に普通に触れるとエラーで止まります使えねえ!(´°Д°`) 一応、SPOFSのZ座標みたいに公式命令で引数を省略してもエラーにならず、省略されたかどうか後で確認できる命令を利用すると、引数が空かどうか調べられます。 DEF FUNC A SPOFS 255,0,0,-99;SPOFS 255,0,0,A'使わないスプライト SPOFS 255 OUT X,Y,Z IF Z==-99 THEN Aは空 ENDIF END Aがたまたま初期値と同じ可能性もあるので、本当は2回チェックが要ります。
0そうだね
プレイ済み
返信[8]
親投稿
パロピカル extremediamond
Hanzoさん、こちらこそ稚拙な質問にご回答頂きありがとうございます。配列の引数の渡し方は少しC言語と似ているんですね。それと、仮引数で使った変数でそのままOUTで値を受けることって出来たんですね…考えもしませんでした。 けいさん、引数の省略できました!(扱い方本当に難しいですが) 公式命令の省略しても良い引数になら、空の引数を渡せる(言い方おかしい?)こと、覚えておきます。ありがとうございます。
1そうだね
プレイ済み
返信[9]
親投稿
パロピカル extremediamond
戻りをA$で受けとる無理矢理感がすごいですが...
0そうだね
プレイ済み