6

というわけで、Commodore 64 BASIC でもっと大きな関数を書きたいと思います。これまでのところ、他のソース (さまざまな C64 wiki や C64 自体のユーザーズ マニュアルなど) から見たところ、関数定義は 1 行の長さしかありません。つまり、BASIC では、ブラケットや他の言語がコード ブロックを記述するために使用するものに類似した構造を見つけることができないようです。

BASICで複数行のコードブロックを書く方法を知っている人はいますか?

1 行関数の例:

10 def fn X(n) = n + 1
20 print fn X(5) rem Correctly called function. This will output 6

しかし、私は次のようなことはできません:

10 def fn X(n) = 
20 n = n + 1
30 print n
40 rem I'd like the definition of function X to end at line 30 above 
50 fn X(5) rem Produces syntax error on line 40

お時間をいただきありがとうございます!

4

3 に答える 3

1

私が覚えていることから、colan を使用して仮想的にこれを実行し、1 行に複数のコマンドを含めることができます。最もエレガントなソリューションではありませんが、物事を分割できます。

10 def fn X(n) = 
20 n = n + 1
30 print n
40 rem I'd like the definition of function X to end at line 30 above 
50 fn X(5) rem Produces syntax error on line 40

なる

10 n=n+1: print n

引数を渡すことはできないので、何かを宣言して、BASIC スタックに処理させる必要があることに注意してください。通常、私は次のようにプログラムを構成します。

1     rem lines 1-99 are definitions.
2     n% = 0 :  rem this declares the variable n as an integer, initializing it to 0
100   rem lines 100-59999 are the core code
101   n%=5 : gosub 60100
59999 end : rem explicit end of the program to ensure we don't run into our subroutine block
60000 rem lines 60000+ are my subroutines..
60100 n% = n% + 1 : print n% : return

しばらく経ちました。メモリから、 % 文字は変数を整数として宣言するものであり、$ が文字列として宣言するのと同様です。

于 2016-07-18T12:42:25.123 に答える