2022年12月06日 | 公開 |
記事にふりがなを付けたいときは、次のチェックボックスをクリックしてください。
これまでは、命令や文を直接入力して、入力後直ぐに実行するダイレクトモードでBASICを使う方法について説明してきました。この章では、命令や文に行番号を付け、一旦メモリに記憶しておき、後にRUN命令で、記憶していた命令や文をまとめて実行する、プログラムモードの使い方の説明をします。
画面にこんにちはと表示するには、PRINT "こんにちは"ENTERと入力すればいいのですが、こんにちはを表示する事が度々あるなら、こんにちはを表示するPRINT文を、コンピュータに記憶させておく事ができます。
命令や文をコンピュータに記憶させておくには、その命令や文の前に、0以上の整数を付けます。この0以上の整数を、行番号と呼びます。
参考:0を行番号に使えないBASICもありますが、Syn BASICは0も行番号として使えます。また、行番号に使える整数の上限は、Syn BASICの場合、9007199254740991(=253-1)です。行番号の上限が約65000(≒216)のBASICが多いですが、Syn BASICは216よりも大きな数を行番号として使えます。
実際に、行番号の付いたPRINT文を入力してみましょう。画面20で、10 PRINT "こんにちは"ENTERと入力してみてください。なお、行番号(10)とPRINTの間にはスペースが必要です。スペースを入れずに10PRINTと入力すると、エラーになります。
10 PRINT "こんにちは"ENTERと入力してください。
正しく入力すると、実行例28の様な画面になっているはずです。
Syn BASIC Version 0.31α ©2021-2022 Hiroshi Tanigawa(Synapse) Ok 10 PRINT "こんにちは" ← 入力したPRINT文 ← なにも表示されない
10 PRINT "こんにちは"
を入力した様子行番号を付けずにPRINT "こんにちは"ENTERと入力した場合は、入力直後にこんにちはと表示されますが、10 PRINT "こんにちは"ENTERと、行番号を先頭に付けた場合は、何も表示されない事が分かります。
入力したPRINT文を実行して画面にこんにちはと表示するためには、続いてRUNENTERと入力します。
画面20で、続けてRUNENTERと入力してみてください。入力すると、実行例29の様な画面になるはずです。
Syn BASIC Version 0.31α ©2021-2022 Hiroshi Tanigawa(Synapse) Ok 10 PRINT "こんにちは" RUN ← 入力したRUN命令 こんにちは ← PRINT文の実行結果 Ok
コンピュータに記憶させておいた行番号付きの命令や文の事を、プログラムと呼びます。また、プログラムを実行するためのRUN
という命令を、RUN命令(RUNコマンド)と呼びます。
コンピュータにプログラムを記憶させておくと、RUN命令で何度でもそのプログラムを実行する事ができます。
画面20で、もう一度RUNENTERと入力してみてください。実行例30の様に、再びこんにちはと表示されるはずです。
Syn BASIC Version 0.31α ©2021-2022 Hiroshi Tanigawa(Synapse) Ok 10 PRINT "こんにちは" RUN こんにちは Ok RUN ← もう一度入力したRUN命令 こんにちは ← 再びプログラムが実行されてこんにちはと表示される Ok
コンピュータが、どの様なプログラムを記憶しているかを調べるには、LIST命令を使います。
画面20で、続けてLISTENTERと入力してみてください。実行例31の様に、最初に入力した10 PRINT "こんにちは"
というプログラムが表示されるはずです。
Syn BASIC Version 0.31α ©2021-2022 Hiroshi Tanigawa(Synapse) Ok 10 PRINT "こんにちは" RUN こんにちは Ok RUN こんにちは Ok LIST ← 入力したLIST命令 10 PRINT "こんにちは" ← プログラムが表示される Ok
"LIST"を日本語にすると「リスト」になります。リストは、普通、表の事を事を指します。(「持ち物表」の事を「持ち物リスト」なんて言ったりしますね)
プログラミングの世界では、リストというと、プログラム全体を表示した物(あるいは印刷した物)を指します。(何のリストかを明示したい場合は、「プログラムリスト」と言ったりもします) BASICのLIST命令は、プログラムリストを表示する命令なのです。
前節では、画面にこんにちはと表示するプログラムを作りました。この章では、複数のPRINT文からなるプログラムを作ってみます。
まず、1行のプログラムを入力してみます。画面21で、10 PRINT "こんにちは"ENTERと入力し、その後にLISTENTERと入力してください。実行例32の様な画面になるはずです。
10 PRINT "こんにちは"ENTERと入力した後に、続けてLISTENTERと入力してください。
Syn BASIC Version 0.31α ©2021-2022 Hiroshi Tanigawa(Synapse) Ok 10 PRINT "こんにちは" ← 入力したプログラム LIST ← LIST命令を入力 10 PRINT "こんにちは" ← コンピュータが記憶しているプログラム Ok
引き続いて、画面21で20 PRINT "こんばんは"ENTERと入力し、その後にLISTENTERと入力してください。実行例33の様な画面になるはずです。
Syn BASIC Version 0.31α ©2021-2022 Hiroshi Tanigawa(Synapse) Ok 10 PRINT "こんにちは" LIST 10 PRINT "こんにちは" Ok 20 PRINT "こんばんは" ← 2行目のプログラムを入力 LIST ← LIST命令を入力 10 PRINT "こんにちは" 20 PRINT "こんばんは" ← プログラムに2行目が加わった Ok
LIST命令を実行すると、10 PRINT "こんにちは"
と20 PRINT "こんばんは"
の2行が表示されます。この事から分かる様に、入力済みのプログラムには使われていない行番号を先頭に付けて、命令や文を入力すると、それが新しい行として、プログラムに追加されます。
ここで、プログラムを実行するために、画面21でRUNENTERと入力してください。実行例34の様な画面になるはずです。
Syn BASIC Version 0.31α ©2021-2022 Hiroshi Tanigawa(Synapse) Ok 10 PRINT "こんにちは" LIST 10 PRINT "こんにちは" Ok 20 PRINT "こんばんは" LIST 10 PRINT "こんにちは" 20 PRINT "こんばんは" Ok RUN ← RUN命令を入力 こんにちは ← 10行の実行結果 こんばんは ← 20行の実行結果 Ok
先に10行(行番号が10の行)が実行されて、画面にこんにちはと表示されます。そして次に、20行が実行されて、画面にこんばんはと表示されます。この様に、プログラムは、行番号の小さい順に実行されます。同様に、LIST命令でプログラムを画面に表示する場合にも、行番号が小さい順に表示されます。
ここで、こんにちはの前に、おはようと表示する様に、プログラムを変更してみましょう。こんにちはの前におはようと表示するのですから、おはようと表示するPRINT文は、10行よりも前に実行する必要があります。そのためには、10よりも小さい数を行番号にして、PRINT文を入力する必要があります。
ここでは、新しいPRINT文の行番号を5として、入力してみます。画面21で5 PRINT "おはよう"ENTERと入力し、次にLISTENTERしてください。実行例35の様な画面になるはずです。
10 PRINT "こんにちは" LIST 10 PRINT "こんにちは" Ok 20 PRINT "こんばんは" LIST 10 PRINT "こんにちは" 20 PRINT "こんばんは" Ok RUN こんにちは こんばんは Ok 5 PRINT "おはよう" ← 5行を追加 LIST ← LIST命令を入力 5 PRINT "おはよう" ← 5行が追加されている 10 PRINT "こんにちは" 20 PRINT "こんばんは" Ok
実行例35の様を見ると、5行が10行の前に追加されているのが分かります。
参考:実行例35を見ると、Syn BASICが起動した時に表示されるSyn BASIC Version…という表示が消えている事が分かります。Syn BASICの画面の行数は、デフォルトで20行になっています。ユーザーがSyn BASICに入力した文字や、Syn BASICが表示したメッセージ等が合計で20行を超えると、画面上部の古い情報から消えていきます。
ここで画面21でRUNENTERと入力すると、実行例36に示す様に、ちゃんとおはよう、こんにちは、こんばんはの順に表示されます。
LIST 10 PRINT "こんにちは" 20 PRINT "こんばんは" Ok RUN こんにちは こんばんは Ok 5 PRINT "おはよう" LIST 5 PRINT "おはよう" 10 PRINT "こんにちは" 20 PRINT "こんばんは" Ok RUN ← RUN命令を入力 おはよう ← 5行の実行結果 こんにちは ← 10行の実行結果 こんばんは ← 20行の実行結果 Ok
プログラム中のある行(例えば10行)とその次の行(例えば20行)の間に、新しい行を挿入したい場合、それらの行の行番号(10と20)の間の数(例えば15)を行番号にして、新しい行を入力すればいいのは、もうお分かりだと思います。この様に、後からプログラムの行を間に挿入する可能性がある場合、行番号を0、1、2、3、…と順に付けてしまっていては、新しい行を挿入しようがなくなります。こういう理由で、行番号は10、20、30、40、…という具合いに、10から始まって、10ごとに付けていく習慣があります。
プログラムは、いくつかの行が集まってできています。ここで行と呼ぶのは、行番号で始まって、入力の際にENTERを入力する直前までに入力した内容全ての事です。画面上で1行に表示されているかどうかは関係ありません。
こういう説明を聞いても、意味が理解しにくいと思いますので、具体的な例を挙げて説明します。
Syn BASICの画面は、デフォルトの状態では、横方向に半角文字が40文字(全角文字なら20文字)収まるサイズに設定されています。そのため、長い文字列を表示するPRINT文等を入力すると、画面の横幅に収まらない事があります。
例として、天は人の上に人を造らず、人の下に人を造らずという、全角文字で21文字の文字列をPRINT文で表示する事を考えます。この文字列は、画面の横幅に収まらないので、この文字列を表示するプログラム(10 PRINT "天は人の上に人を造らず、人の下に人を造らず"
)も画面の横幅に収まらず、Syn BASICに入力すると、実行例37に示す様に、画面上で2行にわたってしまいます。
Syn BASIC Version 0.31α ©2021-2022 Hiroshi Tanigawa(Synapse) Ok 10 PRINT "天は人の上に人を造らず、人の下 に人を造らず"
この様に、画面上では2行にわたって表示されているものの、プログラムの行としては、10 PRINT "天は人の上に人を造らず、人の下に人を造らず"
で1行です。
ところで、プログラムを構成する行の数を〇行(〇には数字が入る)と表現する事があります。例えば、実行例37で入力したのは、1行のプログラムです。
一方で、プログラム中の特定の行を話題にする時に、その行の行番号を使って〇行(〇には行番号が入る)と呼ぶ事があります。例えば、実行例37の例だと、天は人の上に…と表示している行は10行です。
この様に、数字+行で表わされているのは、プログラムの行数の場合と、その行番号が付いた特定の行の場合がありますが、どちらを表わしているかは文脈で判断する必要があります。
次のページでは、プログラムを間違って入力してしまった場合に、訂正する方法や、特定の行を消去する方法について説明します。