プチコン3号(SMILE BASIC)基礎文法最速マスター

  • 11
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

買ったので。いちいちソフトを中断して説明書を画面に表示して、とするのが面倒だったので、基礎文法だけでもまとめておくことに。なお、他の種類のBASICについて、慣習などは不勉強のため、「こういう書き方はしない」などの点があるかもしれないところはご了承を。

DIRECTモードとEDITモード

EDITモード
ソースコードを記述するモード
DIRECTモード
EDITモードで記述したソースを読み込んで実行する。

Hello, World!

EDITモードのSLOT 0に記述。

EDIT-0
PRINT "Hello, World!"

記述したら、DIRECTモードに切り替えて、RUNする。

DIRECT
RUN 0

コメント

行の先頭にシングルクォート。

EDIT-0
'This is a comment.

変数

数値の場合、とりあえず、このような感じで良い。

EDIT-0
A = 123

STRICTモード

「OPTION STRICT」の命令を書いた場合、VAR命令で変数の宣言をしないとエラーになる。

EDIT-0
OPTION STRICT
VAR A = 123

変数の型

変数名の後に「サフィックス」という記号をつけることで、変数の型を自分で指定できる。「%」は整数型、「#」は実数型、「$」は文字列型。サフィックスをつけない場合は実数型。ただし「OPTION VARINT」の命令を書いた場合、サフィックス無しは整数型。

EDIT-0
OPTION STRICT

VAR I% = 123
VAR D# = 3.14
VAR S$ = "XYZ"

PRINT S$

数値

四則計算

EDIT-0
A = 5
B = 3

PRINT A + B
PRINT A - B
PRINT A * B
PRINT A / B

商(整数値)はDIV、余りはMODで求められる。

EDIT-0
A = 5
B = 3

PRINT A DIV B
PRINT A MOD B

インクリメントとデクリメント

インクリメントはINC、デクリメントはDECで行える。

EDIT-0
A = 5

INC A
PRINT A

DEC A
PRINT A

文字列

文字列の連結

EDIT-0
AGE$ = "34"
S$ = "ワタシハ" + AGE$ + "サイデス"
PRINT S$

文字列の長さ

EDIT-0
S$ = "アイウエオ"
PRINT LEN(S$)

文字列の切り出し

EDIT-0
S$ = "アイウエオ"

'アイウ
PRINT MID$(S$)

文字列の検索

EDIT-0
S$ = "アイウエオ"

'2
PRINT INSTR(S$, "ウ")

'-1
PRINT INSTR(S$, "カ")

文字列と数値の変換

文字列 -> 数値への変換にはVAL(文字列)、数値 -> 文字列への変換にはSTR$(数値)を使う。

配列

配列の宣言はDIM命令で行う。プチコン3号の場合、4次元まで対応。

EDIT-0
DIM INTARR[3]

INTARR[0] = 10
INTARR[1] = 20
INTARR[2] = 30

'10
PRINT INTARR[0]

文字列型の配列の場合は「$」のサフィックスをつける。

EDIT-0
DIM STRARR$[3]

STRARR$[0] = "ABC"
STRARR$[1] = "DEF"
STRARR$[2] = "GHI"

'ABC
PRINT STRARR$[0]

配列の操作

PUSHやPOPなどの命令もある。配列の要素数が増減する。

  • 配列の末尾に要素を追加:PUSH
  • 配列の末尾から要素を取り出す:POP(配列名)
  • 配列の先頭に要素を追加:UNSHIFT
  • 配列の先頭から要素を取り出す:SHIFT(配列名)

配列の要素数はLEN命令で取得できる。

EDIT-0
DIM INTRARR[1]

INTARR[0] = 10

PUSH INTARR, 20
PUSH INTARR, 30
PUSH INTARR, 40

TMP = SHIFT(INTARR)

'10
PRINT TMP

UNSHIFT INTARR, 50

TMP2 = POP(INTARR)

'40
PRINT TMP2

'50
PRINT INTARR[0]

'20
PRINT INTARR[1]

'30
PRINT INTARR[2]

'3
PRINT LEN(INTARR)

制御文

IF文

EDIT-0
SCORE = 80

IF SCORE >= 70 THEN
  PRINT "CLEAR!"
ENDIF

IF-ELSE文

EDIT-0
SCORE = 60
IF SCORE >= 70 THEN
  PRINT "CLEAR!"
ELSE
  PRINT "FAILED."
ENDIF

WHILE文

EDIT-0
CNT = 0
WHILE CNT < 5
  PRINT "LOOP " + STR$(CNT)
  INC CNT
WEND

FOR文

EDIT-0
FOR CNT = 0 TO 4 STEP 1
  PRINT "LOOP " + STR$(CNT)
NEXT

サブルーチン

ラベル文字列(@文字列)を利用する。

EDIT-0
'MAIN
PRINT "MAIN START"
GOSUB @SUB
PRINT "MAIN END"
END

@SUB
FOR CNT = 0 TO 4 STEP 1
  PRINT "LOOP " + STR$(CNT)
NEXT
RETURN

BASIC言語なのでGOTOあり。ラベルを利用してGOTOを利用できる。が、ここではGOTOについては省略^^;

ファイル入出力

LOADやSAVEでファイルからの読み込みや、ファイルへの保存が可能。

その他

気が向いたら、何か追記するかもしれません。

参考資料

公式リファレンス

プチコン3号まとめwiki