PRINT文
(数値)を出力する。
(式)の計算結果を出力する。
「"」(ダブルクォート)で囲まれた(文字列)を出力する。
算術演算子
数学 | + | − | × | ÷ |
BASIC | + | - | * | / |
BASICではかけ算に「*」(アスタリスク)、割り算に「/」(スラッシュ)を用いる点が数学と異なるので注意が必要です。なお、数学では「×」を省略することや、「・」を用いることもありますが、BASICではそのどちらもできません。 他に計算に使う記号としては、「^」(ハット)」があり、これはべき乗を表す記号です。(aのb乗)をBASICではa^bと書きます。
計算の優先順位は数学と同じであり、( )を用いて計算の順序を制御することもできます。ただし、{ }や[ ]は使用せず、すべて( )で表記する点に注意して下さい。つまり、数学では2×{ 3+4÷( 5−6 ) }と書く式をBASICでは2*(3+4/(5-6))と書きます。
【確認】次のプログラムを実行し、PRINT文の動作を確認しましょう。
(1) PRINT 数値
[プログラム]
10 PRINT 2008 20 END
[出力結果]
2008
[解説]
各行の最初に書かれている数字を行番号と呼びます。BASICのプログラムはこの数字が小さい行から順に実行されます。1,2,…ではなく、10,20,…とふってあるのは、プログラムの変更時に間に行を追加しやすくするためです。
END文はそのプログラムの終わりを意味し、通常最後の行に書きます。
(2) PRINT 式
[プログラム]
10 PRINT 7+6?5*4/3^2 20 END
[出力結果]
10.7777777777778
[解説]
BASICで行われる計算は、電卓のように計算できるけた数に限りがあります。そのため、小数点以下の表示しきれない部分は四捨五入されます。このときに発生する誤差を丸め誤差といいます。
(3) PRINT "文字列"
[プログラム]
10 PRINT "こんにちは" 20 END
[出力結果]
こんにちは
【問題】 どのように出力されるか予想してから、次のプログラムを実行してみましょう。
(1)
[プログラム]
10 PRINT -10^2 20 END
(2)
[プログラム]
10 PRINT 10^20 20 END
(3)
[プログラム]
10 PRINT "10/3" 20 END
【解説】
(1)
「PRINT 式」は(式)の計算結果を出力します。累乗の演算子「^」(ハット)は減算の演算子「-」よりも優先順位が高いため、-10^2は-(10*10)となり、その計算結果は-100となります。
[出力結果]
-100
(2)
このプログラムも「PRINT 式」の構文を用いているので、(式)の計算結果である100000000000000000000が出力されると予測されます。しかし、BASICでは非常に大きな数値は指数表記されるため、1.E20という出力が得られます。これは、を意味しています。
[出力結果]
1.E20
(3)
3.33333333333333が出力されると思う方もいらっしゃるかもしれませんが、プログラムの10行目をよく見ると10/3は「"」(ダブルクォート)で囲まれています。つまり、このプログラムは「PRINT "文字列"」であり、「"」で囲まれた10/3は文字列としてそのまま出力されます。
[出力結果]
10/3
セミコロン
【確認】次のプログラムを実行し、「;」(セミコロン)の働きを確認しましょう。
(1)
[プログラム]
10 PRINT 1 20 PRINT 2 30 END
[出力結果]
1 2
[解説]
PRINT文を複数回実行すると、それぞれの出力は改行されて表示されます。
(2)
[プログラム]
10 PRINT 1; 20 PRINT 2 30 END
[出力結果]
1 2
[解説]
「;」(セミコロン)を用いることで、PRINT文の出力の改行を抑止することができます。そのため、出力結果が(少し離れて)横に並ぶことになります。
(3)
[プログラム]
10 PRINT 1;2 20 END
[出力結果]
1 2
[解説]
「;」(セミコロン)を用いることで、複数のPRINT文をひとつにまとめることができます。また、「;」(セミコロン)を用いているため、それらは改行されず横並びに出力されます。
(4)
[プログラム]
10 PRINT "1+2=";1+2 20 END
[出力結果]
1+2= 3
[解説]
このプログラムは「PRINT "文字列"」と「PRINT 式」を「;」(セミコロン)で組み合わせたものです。以下のプログラムと同じ動作をします。
[同じ動作をするプログラム]
10 PRINT "1+2="; 20 PRINT 1+2 30 END
コロン
「,」(コロン)も「;」(セミコロン)のようにPRINT文の改行を抑制します。「,」(コロン)は「;」(セミコロン)より広く間隔を空けます。
【確認】
(1)
[プログラム]
10 PRINT "0.1=";0.1, 20 PRINT "1.0=";1.0 30 END
[出力結果]
0.1= .1 1.0= 1
[解説]
0.1など整数部分が0の小数は、整数部分を省略して表示されます。また、1.0など小数部分が0の小数は、整数部分のみが表示されます。
(2)
[プログラム]
10 LET x=10^99 20 LET X=X*10 30 END
[実行結果]
[解説]
電卓と同じように、BASICにも数値の扱える桁数に上限があり、それを超えてしまうと桁あふれ(オーバーフローともいう)というエラーが発生してしまいます。