【チラシのうら 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.
ここまでの成果
- 配列変数が使えるようになった
| 固定リンク
「BASIC」カテゴリの記事
- 【チラシのうら 42日目】約3倍 高速化しました。(2026.08.30)
- 【チラシのうら 41日目】便利だわ GitHubCopilot(2026.08.29)
- 【チラシのうら 40日目】実行中間コード化(2)(2026.08.25)
- 【チラシのうら 39日目】実行中間コード化(2026.08.22)
- 【チラシのうら 37日目】SDカードユニットの交換で問題解決(2026.08.13)
この記事へのコメントは終了しました。

コメント