« VSCodeでローカルLLMを使ってみた。 | トップページ | 【チラシのうら 14日目】ブロック認識に欠陥がある事に気づきました。 »

2026年6月30日 (火)

【チラシのうら 13日目】配列を扱えるようにしてみた

配列変数を扱えるようにしてみました。
制限を掛けないとメモリー管理が大変なので3次元配列までとしました。
最初の設計って大事ですよね (;´Д`)
勢いと思い付きで作り始めたので配列変数の事など全く考慮してなかったですから、変数管理と数式評価がほぼ作り直しになりました。
なのでバージョンが0.1->0.2になりました。
思い付きで作っているので仕様もてきと~です。

DIM A(10,10)で宣言した配列の添え字は、普通のBASICだと 1~10ですが、M5Z-80 BASICでは0~10でゼロベース+1になっています。
エラーチェックがいい加減(エラーチェックをしてない)ので宣言した以上の次元・添え字は使えませんが、以下なら使えます。
A(1)は A(1,0)として処理されます (*´з`)イヤ、ベンリ ダヨネ?

FOR分の終了値と刻み値の扱いもPC-G850Vに倣うなら最初にFORを評価した時に固定ですが、なんとなくC言語・Javaを意識して逐次評価にしたので
FOR I=1 to I+3 とかやると永久ループになります。
※どこかでFLOATの範囲を超えてオーバーフローしてカーネルパニックになるとは思う。


------------------------
M5Z-80 BASIC Ver.0.2
------------------------
Largest Internal = 0(0KByte)
Largest PSRAM = 0(0)
READY.

10 dim a(10)
READY.

20 a(1) = 5
READY.

30 for a(2) = 1 to a(1) + 5 step 1+2
READY.

40 print a(2)
READY.

50 next
READY.

list
10 DIM A(10)
20 A(1) = 5
30 FOR A(2) = 1 TO A(1) + 5 STEP 1+2
40 PRINT A(2)
50 NEXT
READY.

run
1
4
7
10
READY.


ここまでの成果

  • 配列変数が使えるようになった

|

« VSCodeでローカルLLMを使ってみた。 | トップページ | 【チラシのうら 14日目】ブロック認識に欠陥がある事に気づきました。 »

BASIC」カテゴリの記事

コメント

この記事へのコメントは終了しました。