「BASIC」の版間の差分

:<syntaxhighlight lang=basic>
タグ: 2017年版ソースエディター
(:<syntaxhighlight lang=basic>)
タグ: 2017年版ソースエディター
まず、使用するBASIC(ベーシック)を選び、起動して下さい。
 
BASICで画面に文字を表示するためには '''<code>PRINT'''</code> 文を使います。ただし、新しいBASICでは、まったく別のコマンド文になります。
 
BASICが起動すると、「Ok」「Ready」など(BASICや機種によって異なります)の文字の下に「■」(カーソル)が出ます。カーソルはカーソルキーの上下左右で移動できます。このカーソルが出ているときに、BASICのプログラムを編集できます。
 
では最初に、PRINT文を使って、画面に文字を表示させてみましょう。
:<syntaxhighlight lang=basic>
PRINT "Hello BASIC"
</syntaxhighlight>
 
と入力してみてください。入力時の文字モードは、直接入力モードで入力してください。Windowsの場合、右下に、文字入力モードの切り替えのタブがあるので、そこをクリックして、直接入力モードを選んでから、上記のPRINT文を入力してください。
 
 
同様に、新しい行で、画面の左端にカーソルがある状態で、
:<syntaxhighlight lang=basic>
PRINT 2+3
</syntaxhighlight>
 
のように入力してみて(最後にEnterキーを入力して改行します。機種によってはRETURNキー、CRキーとも言います。以下、同じなので省略します)、RUNを実行すると(実行方法はそれぞれの機種を参考にしてください)、'''5''' と計算の結果が表示されます。
 
 
いっぽう、
:<syntaxhighlight lang=basic>
PRINT "2+3"
</syntaxhighlight>
 
をRUNで実行すると、画面に"2+3"とそのまま表示されます。
 
 
もし、二重引用符でくくらないと、
;エラーが出る例:<syntaxhighlight lang=basic>
PRINT Hello BASIC
</syntaxhighlight>
は「エラーのある文なので実行不可能」的な報告を コンピューターから報告されたり、あるいは、まったく予期せぬ数値や文字が表示されるなどのエラーを起こします(例えばundefined)。
 
古いBASICでは、プログラムは「行番号+命令」の形でかかれます。行番号をつけないで入力すると、前述のように「命令を即実行して、終了」します。先頭に行番号をつけることで初めて、命令を組み合わせた「プログラム」として実行できるようになります。0未満の数や小数、分数は行番号にできません。
 
;簡単なプログラムの例:<syntaxhighlight lang=basic>
<syntaxhighlight lang=basic>
5 CLS
10 PRINT "3+5=";
 
入力したら
:<syntaxhighlight lang=basic>
RUN
</syntaxhighlight>
と(行番号なしで)入力すると実行します。
このプログラムを実行させると、画面に「3+5= 8」と表示されます。
なお、古いBASICでは「:」を用いると次のようにも書けますが、現在では推奨されません。
 
:<syntaxhighlight lang=basic>
5 CLS
10 PRINT "3+5=";:PRINT 3+5
現在、一部の(再現)BASICでは、
 
:<syntaxhighlight lang=basic>
5 CLS
10 PRINT "3+5=";3+5
なお、ENDはプログラムの終了を表す命令でしたので、たとえば、
 
:<syntaxhighlight lang=basic>
5 END
10 PRINT "3+5=";3+5
=== 行番号が順番どおりでない場合 ===
 
:<syntaxhighlight lang=basic>
20 PRINT("aaa20")
10 PRINT ("bbb10")
おそらく、古いBASICでは、ソフトウェアの内部では、プログラムの実行のさいしょに(つまりRUN命令の直後に)、まず行番号にもとづいて並べ替えを行って、
 
:<syntaxhighlight lang=basic>
10 PRINT ("bbb10")
20 PRINT("aaa20")
エディタのない古いBASICでは、
 
:<syntaxhighlight lang=basic>
LIST
 
</syntaxhighlight>
と入力すると、プログラム(プログラムリスト)を先頭の行からから表示します。
 
:<syntaxhighlight lang=basic>
LIST 10
 
</syntaxhighlight>
と入力すると10行目だけを、
 
:<syntaxhighlight lang=basic>
LIST 20-
 
</syntaxhighlight>
と入力すると20行目以降すべてを、
 
:<syntaxhighlight lang=basic>
LIST -20
 
</syntaxhighlight>
と入力すると先頭の行から20行目までを、
 
:<syntaxhighlight lang=basic>
LIST 20-30
</syntaxhighlight>
 
と入力すると20行目から30行目を表示します。
また、
 
:<syntaxhighlight lang=basic>
AUTO
</syntaxhighlight>
 
と入力すると、改行するたびに行番号を10ずつ増やして自動的に表示します。自動表示を停止させるのはBREAKキーを押します(機種によってはSTOPキーや、CTRL+STOPキーを同時押しなど、操作が多少異なります)。
新しいBASICでは、プログラムを編集するためのエディタを持っており、これを入力に使います。エディタの概要や使い方自体は省略します。また、次のように「行番号を省略」できます。
 
:<syntaxhighlight lang=basic>
PRINT "3+5=";
PRINT 3+5
注釈(ちゅうしゃく)をつけるには'''REM'''を使います。「レム」と読みます。注釈とは「何も実行しない」という命令で、プログラムの説明を書いたり、[[w:デバッグ|デバッグ]](エラーの原因をさがす作業のこと)などで一時的に命令を実行させないようにするとき、などに使います。
 
:<syntaxhighlight lang=basic>
10 REM PRINT "1"
20 PRINT "2"
画面に表示させるには PRINT文を使います。「プリント」と読みます。
 
:<syntaxhighlight lang=basic>
10 PRINT "これが表示されます。"
20 PRINT 123
 
 
:<syntaxhighlight lang=basic>
5 REM これは 数値をキー入力して、変数Aに代入、そして変数Aを表示する。
10 INPUT A
このような書き方も出来ます。
 
:<syntaxhighlight lang=basic>
10 INPUT "数値を入力して下さい ",A
20 PRINT A
'''変数'''は、数値や文字などのデータを入れておく箱のようなものです。
 
:<syntaxhighlight lang=basic>
10 A=12
20 B=3
 
 
:<syntaxhighlight lang=basic>
10 A=12
20 A=A+1
将来的に、LET文のある他のプログラミング言語の学習のことを考えて、LET文をつかって上記のプログラムを書いてみましょう。
 
:<syntaxhighlight lang=basic>
10 LET A=12
20 LET B=3
 
(プログラム例)
:<syntaxhighlight lang=basic>
10 INPUT "数値を入力してください" ;A
20 PRINT "入力された数値は"
または
 
:<syntaxhighlight lang=basic>
5 PRINT "数値を入力してください"
10 INPUT A
まったく別のプログラムでも、同じ変数名「A」や「B」を、まったく別の内容で使うこともありますので、必要に応じて NEW 命令を使いましょう。
 
:<syntaxhighlight lang=basic>
10 NEW
20 LET A=7
 
(あまり、よくないプログラム)
:<syntaxhighlight lang=basic>
20 LET A=7
25 NEW
ほかのプログラム言語でも、条件分岐命令のことを普通は「IF文」と言います。なお、THENは「ゼン」と読み、ELSEは「エルス」と読みます。
 
:<syntaxhighlight lang=basic>
10 A=0
20 B=3
条件分岐ではない、強制の分岐には'''GOTO'''命令を使います。「GOTO」は「ゴー トゥー」と読みます。GOTOの後に行番号を入れると、対応する行の命令を実行します。
 
:<syntaxhighlight lang=basic>
10 GOTO 30
20 PRINT "1"
このプログラムを実行すると20行目がスキップされ、30行目が実行されて、画面に「2」とだけ表示します。
 
:<syntaxhighlight lang=basic>
10 GOTO 40
20 PRINT "1"
このプログラムを実行すると、画面に「2」「1」と表示します。が、このようにGOTOの飛び先が入り組んだプログラムは「スパゲティ・プログラム」と呼ばれて、「他の人が見てもプログラムの構造を一目では把握しづらい」ために、通常のプログラムでは 禁じ手(きんじて) とされています。
 
:<syntaxhighlight lang=basic>
10 PRINT "1"
20 PRINT "2"
プログラム中で同じ処理を繰り返す場合には、'''FOR'''~'''NEXT''' 文を使用します。
 
:<syntaxhighlight lang=basic>
10 J=0
20 '''FOR''' N=1 TO 5
30 J=J+N
4030 PRINT "N=";N;" J=";J+N
40 PRINT "N=";N;" J=";J
50 '''NEXT''' N
60 END
</syntaxhighlight>
 
 
FORの直後の変数(上記の場合はN)と、NEXTの直後の変数は、同じ変数でなければなりません。
 
:<syntaxhighlight lang=basictext>
N= 1 J= 1
N= 2 J= 3
DATA文、READ文、RESTORE文 です。
 
:<syntaxhighlight lang=basic>
20 READ A
30 PRINT A
 
 
:<syntaxhighlight lang=basic>
10 RESTORE 50
20 READ A
同じ内容のプログラムは、まとめてサブルーチンにする事ができます、GOSUBです。
 
:<syntaxhighlight lang=basic>
110 INPUT A
120 GOSUB 200
130 PRINT A
150 END
200 REM サブルーチン
210 A=A*2
220 RETURN
</syntaxhighlight>
 
プログラムの動きを行番号で書きます。 110 120 200 210 220 130 150 。順番に注目。
関数はサブルーチンに似ています。組み込まれたサブルーチンのように思ってください。
 
:<syntaxhighlight lang=basic>
10 INPUT A
20 B=ABS(A)
30 PRINT B
50 END
 
</syntaxhighlight>
ABS()は絶対値を返す関数です。
 
3,595

回編集