当サイトで紹介して、私が日本語化したアンドロイドアプリBASIC!には、300ページ近いマニュアルが準備されていますが、残念ながら英語版しかありません。そこで、順次当サイトで日本語化していきたいと思います。尚、原文をそのまま訳すのでは無く、分かりやすく変更したり、実例の追加などをしていきます。
以下のリンクから、BASIC!MLをダウンロードして導入ができます。deploygateアプリの導入を求められますので、指示通りに導入をしてください。(deploygateはユーザー登録必要です)詳しい導入手順と初めての使い方はこちらの記事を参照してください。英語版のマニュアルはこちらにあります。
BASIC!プログラムについて
BASIC!プログラムはテキストで書かれた命令文(ステートメント)を、順次機械語に変換しながら実行されます。インタプリター型と呼ばれます。他の多くのBASICと異なり行番号は不要です。基本1行1命令ですが、『:』を使って1行で複数命令を記述できます。命令文は、命令と1つ又は『,』で区切られた複数のパラメーターからなります。以下は命令文の例です。
注:当記事ではサンプルプログラムを画像で紹介しています。プログラムを入力したほうが覚えやすいので、敢えてコピー出来なくしています。ぜひ、プログラムをご自分で入力して、うまく実行できるか確認してみてください。
『PRINT』命令と1つのパラメーター『”Hello, World!”』の命令文です。このプログラムを実行するとBASIC!コンソールに『Hello, World!』と印刷されます。
プログラムを入力して実行をタップ:
実行結果:
基本の説明、凡例
大文字、小文字
コマンドは、読みやすいように大文字、小文字を使うことができます。BASIC! はプログラム実行時に、””で囲まれた文字以外は小文字として解釈されて実行されます。
数字BASIC! プログラムで使える数字は、 倍精度浮動小数点(64-bit IEEE 754)でサイン付き(“+” 又はor “-“), 小数点 (“.” only), 指数(10のx乗)と数字に続く “e”又は”E” の指数形式です。小数点を使う場合は、小数点の前に数字が必要です。0.15は正しく、.15はエラーです。
印刷すると、 常に小数点付きで印刷されます。例えば、99は”99.0″と印刷されます。小数点付きで印刷したくない場合は、INT$() か FORMAT$() を使用してください。
プログラムを入力して実行をタップ:
実行結果実行結果:
有効数字が7桁以上の場合は、浮動小数点形式で印刷されます。例えば、12345678 は1.2345678E7と表示されます。他の表示形式を使いたい場合は、INT$()か FORMAT$() を使用してください。十進値の数値演算は不正確になります。 通貨計算をする場合は印刷する必要があるまで100を掛けて使用して、印刷前に100で割って下さい。論理値 (false = 0, true <> 0) も数字のひとつです。文字列関数を使って数字を文字列に変換できます。STR$(), INT$(), HEX$() などが使えます。FORMAT$() と USING$() が複雑なフォーマットをすることができます。
ダブルクォーテーション(“) で囲まれた文字が文字列です。例えば、”This is a string” は16文字の文字列です。文字列にダブルクォーテーションを含めたい場合は、\(バックスラッシュ)でエスケープします。改行したい場合は、エスケープシーケンス \n を使います。 注:文字コードの関係で、端末によっては\(バックスラッシュ)が¥と表示される場合があります。
プログラムを入力して実行をタップ:
実行結果:
“\n” は他の言語では違う意味もありますが、BASIC!では、ASCII LF(line feed)と同じです。他に、 \tはタブ、 \\は\を文字列に含めたい場合、その他の特殊文字を使いたい場合はCHR$() が使えます。文字列の数字は、VAL(<sexp>) 関数を使って数値に変換できます。
変数は、数字か文字列の保管場所です。
変数名変数名は、次の文字を使うことができます。”a”~”z”, “#”, “@”, or “_”. これらの文字以外に、二文字目以降であれば”0″~”9”も使うことができます。変数名の長さは、必要に応じてどんな長さでも使えます。大文字を変数名で使うことができますが、BASIC!内部的には小文字として扱われます。ですので、”gLoP”という変数名は”glop”と同じです。
変数名に、BASIC!の命令予約語は使用できません。例えば、Donut = 5 はDo Nut = 5と解釈されますので、プログラマーの意図と異なった結果(untilが無いエラー)になります。BASIC!の予約語は、付録Aに纏めてあります。ラベル、ユーザー定義関数の名前も同様の制限があります。
数値を保管する変数、文字列を保管する変数の2種類があります。文字列変数名には、最後に”$”をつけてください。
Age、amount、 heightなどは全て数字変数名です。
First_Name$、Street$、A$は文字列変数名です。
値を指定せずに、数値変数を使用すると、値は0.0として扱われ、文字列変数を使用すると、値は””として扱われます。
変数には、スカラーと配列の2クラスがあります。
スカラー変数スカラー変数は、単一の値を保管する変数です。スカラー数値変数は、0.0で初期化、スカラー文字列変数は、””で初期化されます。
スカラー変数は、名前を付けてすぐに使うことができます。事前に宣言する必要はありません。(訳者注:プログラムの最初にコメント付きで変数宣言しておくと分かりやすい)
配列は、複数の同じデータ型の値をひとつに纏めたものです。最も単純な配列は1次元配列です。値のリストと考えることができます。配列A[インデックス]は配列です。配列に保管されている値は、A[1]、 A[2]、、、A[n]としてアクセスできます。[]の中の値はインデックスと呼びます。5種類の動物の名前を持ったリストを作りたいときは、doubutu$[] のインデックス1から5でアクセスできます。
配列は使う前に Dim (ディメンジョンの略)命令で宣言する必要があります。以下のサンプルでDim doubutu$[5]が宣言です。diubutu$[ ]という名前の5項目の文字列配列を宣言しています。
注:LET命令はまだ説明していませんが、変数に値を代入する命令です。
プログラムを入力して実行をタップ:
実行結果:
プログラム実行後の配列dubutu[]の内容:
上のような配列は、1次元配列と呼ばれ良く使われます。以下のような2次元配列も作ることができますし、必要に応じて多次元配列を作ることができます。
配列には、多くの関連命令がありますが、先に基本の命令を説明してから、説明予定です。
コメントは、プログラム内に注釈をつけることができます。BASIC!に同梱されているサンプルプログラムにも注釈がつけられていますので、サンプルプログラムを見る時に参考にしてください。
REM:REMで始まる行は、その1行コメントとして処理されます。!でも同じです。
!!:!!と!!で囲まれた全ての行がコメントとして処理されます。
%:その行の%以降がコメントとして処理されます。
プログラムを入力して実行をタップ:
実行結果:
算数では、”1+1=2” のように=記号の右に結果を書きましたが、BASIC!で=は、右側の値を左側の変数に代入するという意味になります。また、他のBASICでは”LET”という命令を使いますが、BASIC!では必須ではありません。以下に説明する場合以外は省略可能です。例えば、Letter$=”手紙”とLetter$という場所に”手紙”と書き込みたい場合ですが、Letter$がLet命令と同じです。これは、BASIC!では、 Let ter$=”手紙”と解釈されてしまうので、ter$=”手紙”となってしまいます。これを防ぐためには、Let Letter$=”手紙”と記述しないといけません。訳者注:慣れるまでは、代入する時にはいつもLet命令を使うほうが間違いが無いでしょう。
プログラムを入力して実行をタップ:
実行結果:
やってみよう
①魚の名前が5つ入った配列を作ってください。出来上がりは以下の通りです。REM、!!、!、%を使って注釈をいれてください。
②配列の三番目の項目を印刷してください。
③buri$変数に配列の五番目の項目を代入して、buri$を使って『好きな魚は ぶり です。』を印刷してください。
回答例は、次の記事で紹介します。
コメントを書く