2022年11月24日 | 公開。以前はSyn BASIC(オンラインBASICインタプリタ)のページのコンテンツであったSyn BASICの使い方の説明を、独立させて当ページにした。 |
2022年12月03日 | タイトルを「Syn BASICの使い方」から「Syn BASICのプログラムの作り方」に変更。 |
記事にふりがなを付けたいときは、次のチェックボックスをクリックしてください。
BASICは、大規模なプログラムを作りにくいという点で、あまり実用的な用途には使われませんが、文法がとても簡単なので、プログラミング初心者が最初に覚える言語には向いています。
BASICプログラムの実行環境のひとつであるSyn BASICは、オンラインで無料で使える、使いやすい実行環境です。簡単にプログラムを作成して、色々な計算ができます。スマートフォンでも動作するので、プログラム電卓の代わりに使う事もできます。少し頑張れば、ゲームのプログラムを作る事もできます。
この記事では、Syn BASICのプログラミングについて、基礎から説明します。
Syn BASICを含むBASICというプログラミング言語には、ある程度の規模のプログラムを先に組んでから、それを実行するプログラムモードという実行モードと、簡単な命令をその場で打ち込むダイレクトモードという実行モードがあります。この章では、簡単にSyn BASICの機能を試せるダイレクトモードの説明をします。(この時点で、プログラムモードやダイレクトモードについてイメージできなくても、問題なく説明を読み続けられます。「2つモードがあって、今はダイレクトモードと呼ばれる方の説明を読んでいるんだ」くらいの認識で結構です。)
Syn BASICでは、計算結果を画面表示するのに、後述するPRINT文を使います。この節では、簡単な式をPRINT文を使ってSyn BASICに計算させ、PRINT文の基本的な使い方を覚えることを目標にします。
それではまず、Syn BASICで簡単な足し算をやってみましょう。
例として、5+8の計算をしてみます。5+8の計算をするには、Syn BASICの画面内で、PRINT 5+8ENTERと入力します。PRINTと5+8の間には、必ず1つ以上のスペースを入れてください。
注:この記事では、ENTERキーを押すことをENTERと書き表します。またPRINTは小文字でprintと打ち込んでも結構です。PRINT 5+8は、すべて半角文字を使って入力してください。全角文字でPRINT 5+8と入力すると、エラーになります。
下の画面(画面1)で実際にやってみましょう。パソコンでマウスを使っている人は、下の練習用画面(黒い画面)をクリックしてから入力してください。またスマートフォンやタブレットPCを使っている人は、下の練習用画面をタップしてから入力してください。クリックまたはタップでカーソル位置が移動するので、Okと表示が出ている次の行の行頭にカーソルがある事を確認してから入力してください。
PRINT 5+8ENTERと入力してください。
下の様な画面表示になったでしょうか?
Syn BASIC Version 0.31α ©2021-2022 Hiroshi Tanigawa(Synapse) Ok PRINT 5+8 ← あなたの入力 13 ← 計算結果 Ok ← 計算が終わった合図 ← カーソル
PRINT 5+8
の実行結果注:実行例は、練習用画面と区別しやすい様にするために、背景を真っ黒ではなく、濃い藍色にしています。
PRINT 5+8
の中に出てくるPRINT
というのは、その後に続く計算式を計算した結果を、画面に表示させるための命令です。PRINT
で始まる一連の命令をPRINT文といいます。
参考:最も初期のBASICでは、ダイレクトモード(行番号を付けずに直接実行させるモード)で実行するものを命令(command、コマンド)と呼び、プログラムモード(行番号が付いたプログラムをRUN命令で実行するモード)で実行するものを文(statement、ステートメント)と呼んで区別していましたが、次第にダイレクトモードでも、プログラムモードでも、同じ命令や文が実行できるようになり、両者は厳密には区別されなくなりました。この記事でも、文と命令はあまり厳密に区別せずに説明を書きます。
PRINT 5+8ENTERと入力すると、次の行に計算結果の13が表示されます。
またそれに続き、命令(この場合は5+8の計算結果を画面に表示させるためのPRINT文)の実行が終わったことを示すOkが、次の行に表示されます。
-(マイナス)の記号を使えば、引き算も計算できます。例えば10-6を計算するにはPRINT 10-6ENTERと入力します。下の画面(画面2)で、実際に入力してみてください。
PRINT 10-6ENTERと入力してください。
正しく入力できていれば、次の様な表示になっているはずです。
Syn BASIC Version 0.31α ©2021-2022 Hiroshi Tanigawa(Synapse) Ok PRINT 10-6 ← あなたの入力 4 ← 計算結果 Ok
PRINT 10-6
の実行結果参考:Syn BASICの画面内では、数字のゼロは0と、0の文字に斜め線が入ります。これはゼロの文字と、アルファベットのo(小文字)やO(大文字)とを区別しやすい様にするため、ゼロに斜め線が付くフォントを意図的に使っているからです。
今までは整数の計算ばかりしていましたが、もちろん小数の計算もできます。また、+や-の記号をいくつも使うことで、もっと複雑な式を計算させる事もできます。
例えば、1.2+4.7-9.3を計算させてみましょう。下の画面(画面3)でPRINT 1.2+4.7-9.3ENTERと入力してみてください。
PRINT 1.2+4.7-9.3ENTERと入力してください。
正しく入力できていれば、次の様な表示になっているはずです。
Syn BASIC Version 0.31α ©2021-2022 Hiroshi Tanigawa(Synapse) Ok PRINT 1.2+4.7-9.3 ← あなたの入力 -3.4 ← 計算結果 Ok
PRINT 1.2+4.7-9.3
の実行結果電卓で計算してみれば分かりますが、1.2+4.7-9.3の計算結果は-3.4です。PRINT文で計算した結果と一致しています。
前節では、PRINT文を使って足し算や引き算の計算をしました。この節では、PRINT文を打ち込む時にタイプミスをするとどうなるかを説明します。
例えば、本来PRINT 5+8ENTERと入力すべきところを、間違ってPRIMT 5+8ENTERと入力するとどうなるでしょうか?実際に下の画面(画面4)で試してみましょう。
PRIMT 5+8ENTERと入力してください。
実際に試してみると、次のような画面になったはずです。
Syn BASIC Version 0.31α ©2021-2022 Hiroshi Tanigawa(Synapse) Ok PRIMT 5+8 ← あなたの入力 Syntax error(PRIMT 5). ← エラー Ok PRIMT 5+8 ← 入力した命令が選択状態になっている
PRIMT 5+8
の実行結果Syntax error(PRIMT 5).と表示されますが、これは、打ち込んだ命令の中で、PRIMT 5の部分の意味が理解できなかった事を表しています。この様に、命令がSyn BASICによってうまく解釈できない事態の事をエラーといいます。
参考:入力のミスなどで、Syn BASICが命令をうまく解釈できない事態になる事を、「エラーが発生する」、「エラーが出る」、「エラーが起こる」などと表現します。
エラーにも色々な種類があるのですが、Syntax errorは、命令が文法的に解釈できなかった事を表しています。
syntaxは英語で「文法」という意味ですから、英語が分かる人なら、文法上の問題がある事は推測できそうです。BASICというプログラミング言語は、英語圏で生まれ、発達したので、エラーを含むメッセージがすべて英語で表示される事が多いです。(それに加え、BASICが生まれた頃のパソコンには、日本語を表示する機能がなかったという根本的な問題もあります) ただ、日本人にはちょっと意味が分かりにくいですね。
そこでSyn BASICには、メッセージを日本語に切り替える機能を搭載しました。
メッセージを日本語で表示させるためには、画面右下のEnglishと表示されているプルダウンメニューで、日本語を選んでください。(図1参照)
今度は、メッセージを日本語に切り替えて、エラーを出してみましょう。下の画面(画面5)で、図1を参考にしながらメッセージを日本語に切り替えて、その後にPRIMT 5+8ENTERと入力します。
日本語表示に切り替えてから、PRIMT 5+8ENTERと入力してください。
今度は、下に示す様な画面になっているはずです。
Syn BASIC Version 0.31α ©2021-2022 Hiroshi Tanigawa(Synapse) Ok PRIMT 5+8 ← あなたの入力 文法エラーです(PRIMT 5). ← エラー 完了 ← "Ok"が「完了」に変わっている PRIMT 5+8 ← 入力した命令が選択状態になっている
Syntax errorと表示されていたのが、文法エラーですに表示が変わって、意味が分かりやすくなりました。ついでに、Okが完了に変わっている事も分かります。
次のページでは、エラーが発生した時に、命令を修正する方法について説明します。