2022年11月24日 | 公開。以前はSyn BASIC(オンラインBASICインタプリタ)のページのコンテンツであったSyn BASICの使い方の説明を、独立させて当ページにした。 |
記事にふりがなを付けたいときは、次のチェックボックスをクリックしてください。
PRINT文を用いて、掛け算と割り算の計算をしてみましょう。
まず掛け算をしてみます。Syn BASICでは、掛け算の記号は×ではなく、*(アスタリスク)を使います。これは、×を掛け算の記号に使うと、アルファベットのxやXと混同しやすいからです。
参考:Syn BASICだけではなく、ほとんどのプログラミング言語で、掛け算の記号には*を使います。表計算ソフトのExcelでも、掛け算の記号に*を使います。
3×4の計算をするには、PRINT 3*4ENTERと入力します。画面8で、実際に入力してください。
注:この記事では、ENTERキーを押す事をENTERと表記します。
PRINT 3*4ENTERと入力してください。
正しくPRINT 3*4ENTERと入力できれば、実行例16の様な画面表示になっているはずです。
Syn BASIC Version 0.31α ©2021-2022 Hiroshi Tanigawa(Synapse) Ok PRINT 3*4 ← 入力したPRINT文 12 ← 計算結果 Ok
次に割り算をしてみます。Syn BASICは割り算の記号には÷と共に/(スラッシュ)が用いられます。どちらの記号を使っても、割り算ができますので、好みで選んでください。日本語の変換ソフトを使わなくてもいい点を考えると、/の方が入力しやすくていいかも知れません。
参考:ほとんどのプログラミング言語では、割り算の記号として÷は使えず、/を使います。そもそも、割り算の記号に÷を使う日本は、世界の中では少数派である様です。
5÷2の計算をするには、PRINT 5/2ENTERと入力します。(PRINT 5÷2ENTERでも構いません) 画面9で、実際に入力してください。
PRINT 5/2ENTERと入力してください。
正しくPRINT 5/2ENTERと入力できれば、実行例17の様な画面表示になっているはずです。
Syn BASIC Version 0.31α ©2021-2022 Hiroshi Tanigawa(Synapse) Ok PRINT 5/2 ← 入力したPRINT文 2.5 ← 計算結果 Ok
突然ですが質問です。1+2×3を計算すると、いくらになるでしょうか?
答えは、9ではなく7ですね。足し算と掛け算が混ざっている計算をする場合は、足し算より掛け算を優先して計算するのでした。ですから1+2×3 = 1+(2×3) = 1+6 = 7という具合に計算します。学校で習いましたね。
Syn BASICでも、掛け算や割り算と、足し算や引き算が混ざった計算をする場合は、足し算や引き算よりも、掛け算や割り算を優先します。
それでは、実際に、Syn BASICで1+2×3の計算をしてみましょう。画面10でPRINT 1+2*3ENTERと入力してみましょう。計算結果は実行例18に示すように、ちゃんと7になるはずです。
PRINT 1+2*3ENTERと入力してください。
Syn BASIC Version 0.31α ©2021-2022 Hiroshi Tanigawa(Synapse) Ok PRINT 1+2*3 ← 入力したPRINT文 7 ← 計算結果 Ok
PRINT 1+2*3
の実行結果次に引き算や割り算も混ざった式を計算してみましょう。
例として、10-4÷2×3+10÷5を計算してみます。BASICで計算してみる前に、自分の頭で計算してみると、10-4÷2×3+10÷5 = 10-(4÷2)×3+(10÷5) = 10-2×3+2 = 10-(2×3)+2 = 10-6+2 = 6となります。
これを、BASICに計算させてみましょう。画面11で、PRINT 10-4/2*3+10/5ENTERと入力してください。実行例19に示す様に、計算結果は6になるはずです。
PRINT 10-4/2*3+10/5ENTERと入力してください。
Syn BASIC Version 0.31α ©2021-2022 Hiroshi Tanigawa(Synapse) Ok PRINT 10-4/2*3+10/5 ← 入力したPRINT文 6 ← 計算結果 Ok
PRINT 10-4/2*3+10/5
の実行結果前項の説明で、「1+2×3の計算をする時は、足し算よりも掛け算を優先する」といいましたが、足し算を優先するにはどうしたらいいのでしょうか?
学校でも習ったと思いますが、括弧を使えばいいのです。具体的には、(1+2)×3と書けば、掛け算よりも足し算を優先して計算します。
参考:(1+2)×3 = 3×3 = 9になります。
括弧には色々な種類があるのですが、(と)は丸括弧といいます。数式の中で使う場合は、小括弧ともいいます。
Syn BASICで計算の優先順位を変えたい場合には、優先順位が高い計算を、この丸括弧で囲みます。
それではSyn BASICのPRINT文で、(1+2)×3の計算をしてみましょう。画面12で、PRINT (1+2)*3ENTERと入力してください。実行例20に示す様に、計算結果は9になるはずです。
PRINT (1+2)*3ENTERと入力してください。
Syn BASIC Version 0.31α ©2021-2022 Hiroshi Tanigawa(Synapse) Ok PRINT (1+2)*3 ← 入力したPRINT文 9 ← 計算結果 Ok
PRINT (1+2)*3
の実行結果複雑な計算になると、括弧で囲まれた計算の中に、さらに括弧で囲まれた計算が出てくる場合があります。例えば、[2×{(1+5)÷3+2}+6]÷7は、複数の括弧が出てくる式の例です。
参考:[2×{(1+5)÷3+2}+6]÷7 = [2×{(6÷3)+2}+6]÷7 = {2×(2+2)+6}÷7 = {(2×4)+6}÷7 = (8+6)÷7 = 14÷7 = 2となります。
この様に、括弧の式の中に括弧の式がある事を、「括弧が入れ子になっている」とか、「括弧がネスティングしている」とかいいます。
算数や数学の場合、一番内側の括弧に(と)(丸括弧あるいは小括弧)を使い、中間の括弧に{と}(波括弧あるいは中括弧)を使い、一番外側の括弧に[と](角括弧あるいは大括弧)を使う事が多いのですが、Syn BASICで使う括弧は、丸括弧だけです。
参考:算数や数学でも、丸括弧だけで式を書くのは間違いではありません。括弧の種類を使い分けるのは、数式を見やすくするためです。
Syn BASICでは、[2×{(1+5)÷3+2}+6]÷7は、(2*((1+5)/3+2)+6)/7
と書きます。丸括弧だけで式を書くと、ちょっと理解しにくくなりますが、慣れてしまいましょう。
例によって、[2×{(1+5)÷3+2}+6]÷7をPRINT文で計算してみましょう。画面13に、PRINT (2*((1+5)/3+2)+6)/7ENTERと入力してください。実行例21に示す様に、計算結果は2になるはずです。
PRINT (2*((1+5)/3+2)+6)/7ENTERと入力してください。
Syn BASIC Version 0.31α ©2021-2022 Hiroshi Tanigawa(Synapse) Ok PRINT (2*((1+5)/3+2)+6)/7 ← 入力したPRINT文 2 ← 計算結果 Ok
PRINT (2*((1+5)/3+2)+6)/7
の実行結果この項では難しい話が出てくるのと、プログラミングには必ずしも必要のない話が出てくるので、読み飛ばしてかまいません。
10÷9はいくらになりますか?Syn BASICで計算する前に、筆算してみてください。図2の様に、1.111111…と、1が永遠に続く数になりますね。
この様に、10÷9の答えを小数で表すと、1を無限に書かなければいけないので、電卓やコンピュータで計算しても、完全には正確な答えが答えられません。
10÷9を電卓で計算すると、電卓の種類にもよりますが、一般的な電卓では1.1111111と8桁で結果を表示する物が多いと思います。興味がある人は、ぜひ実際に計算してみてください。
それでは、Syn BASICで10÷9を計算すると、どういう結果になるでしょうか?
実際にやってみましょう。画面14でPRINT 10/9ENTERと入力してください。
PRINT 10/9ENTERと入力してください。
Syn BASIC Version 0.31α ©2021-2022 Hiroshi Tanigawa(Synapse) Ok PRINT 10/9 ← 入力したPRINT文 1.11111111111 ← 計算結果 Ok
PRINT 10/9
の実行結果答えは、実行例22に示す様に、1.11111111111と、12桁で表示されたはずです。Syn BASICは、一般的な8桁電卓より多くの桁数を計算しているんですね。興味がある人は、10÷3や、10÷7や、100÷11など、他の割り切れない割り算も、Syn BASICに計算させてみましょう。
注:後述する様に、Syn BASICの内部では、実際には12桁ではなく15~16桁の計算をしています。
コンピュータが計算をする時に、何桁計算するのかを、計算精度といいます。難しい話になりますが、Syn BASICの計算精度は倍精度浮動小数点演算です。
人間は10進数で計算するのに対し、コンピュータはたいていの場合2進数で計算します。倍精度浮動小数点演算では、2進数で53桁の数字の計算ができるのですが、これを10進数に換算すると、16桁弱になります。つまり、Syn BASICは、計算を、10進数換算で16桁弱の計算精度で行なっているのです。
コンピュータが2進数で計算する場合、計算する前に、人間が打ち込んだ10進数を2進数に変換します。また、計算結果を画面に表示する時に、2進数を、人間の理解できる10進数に変換します。実はそれらの変換の際に、わずかな変換誤差が発生します。この変換誤差の発生の仕組みが、コンピュータ(というか2進数)に詳しくない人には理解しにくいので、Syn BASICでは、実際に計算した桁数より桁を少なめに表示して、誤差が目立たない様にしています。
結構難しい話になりましたが、10進数と2進数の変換誤差や計算精度の話は、十分に理解できていなくても、当面は問題なくプログラムができます。
参考:別にSyn BASICなどのプログラム言語を扱わなくても、10進数と2進数の間の変換誤差の話は無関係ではありません。2進数の知識が全くない人が給与計算などに使っているExcelなどの表計算ソフトにおいても、同様の誤差が発生します。Excelにおける誤差の話は、例えば次に紹介するページに解説されています。非常に正確に計算する必要のある分野にコンピュータを利用する場合は、この手の知識が必要になります。
次のページでは文字列について説明します。