Syn BASICのプログラムの作り方(3)

このページをスマートフォンなどでご覧になる場合は、画面を横長にする方が読みやすくなる事があります。
目次へ  前のページへ (1) (2) (3) (4) (5) (6) (7) (8) (9) 次のページへ
2022年11月24日 公開。以前はSyn BASIC(オンラインBASICインタプリタ)のページのコンテンツであったSyn BASICの使い方の説明を、独立させて当ページにした。

記事きじにふりがなを付つけたいときは、次つぎのチェックボックスをクリックしてください。

1-1-4.掛かけ算ざんと割わり算ざんをやってみる

PRINTプリント文ぶんを用もちいて、掛かけ算ざんと割わり算ざんの計算けいさんをしてみましょう。

まず掛かけ算ざんをしてみます。Synシン BASICベーシックでは、掛かけ算ざんの記号きごうは×ではなく、*アスタ(アスタリスク)を使つかいます。これは、×を掛かけ算ざんの記号きごうに使つかうと、アルファベットのxやXと混同こんどうしやすいからです。

参考さんこう:Synシン BASICベーシックだけではなく、ほとんどのプログラミング言語げんごで、掛かけ算ざんの記号きごうには*アスタを使つかいます。表ひょう計算けいさんソフトのExcelエクセルでも、掛かけ算ざんの記号きごうに*アスタを使つかいます。

3×4の計算けいさんをするには、PRINTプリント 3*アスタ4ENTERエンターと入力にゅうりょくします。画面がめん8で、実際じっさいに入力にゅうりょくしてください。

注ちゅう:この記事きじでは、ENTERエンターキーを押おす事ことをENTERエンターと表記ひょうきします。

画面8、練習れんしゅう用よう画面がめん

PRINTプリント 3*アスタ4ENTERエンターと入力にゅうりょくしてください。

正ただしくPRINTプリント 3*アスタ4ENTERエンターと入力にゅうりょくできれば、実行じっこう例れい16の様ような画面がめん表示ひょうじになっているはずです。

Syn BASIC Version 0.31α ©2021-2022 Hiroshi Tanigawa(Synapse)
Ok
PRINT 3*4 ← 入力したPRINT文
12 ← 計算結果
Ok
実行例16、PRINTプリント 3*アスタ4ENTERエンターを入力にゅうりょくした直後ちょくごの状態じょうたい

次つぎに割わり算ざんをしてみます。Synシン BASICベーシックは割わり算ざんの記号きごうには÷と共ともに/スラッシュ(スラッシュ)が用もちいられます。どちらの記号きごうを使つかっても、割わり算ざんができますので、好このみで選えらんでください。日本語にほんごの変換へんかんソフトを使つかわなくてもいい点てんを考かんがえると、/スラッシュの方ほうが入力にゅうりょくしやすくていいかも知しれません。

参考さんこう:ほとんどのプログラミング言語げんごでは、割わり算ざんの記号きごうとして÷は使つかえず、/スラッシュを使つかいます。そもそも、割わり算ざんの記号きごうに÷を使つかう日本にほんは、世界せかいの中なかでは少数派しょうすうはである様ようです。

5÷2の計算けいさんをするには、PRINTプリント 5/スラッシュ2ENTERエンターと入力にゅうりょくします。(PRINTプリント 5÷2ENTERエンターでも構かまいません) 画面がめん9で、実際じっさいに入力にゅうりょくしてください。

画面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
実行例17、PRINTプリント 5/スラッシュ2ENTERエンターを入力にゅうりょくした直後ちょくごの状態じょうたい

1-1-5.掛かけ算ざんや割わり算ざんは足たし算ざんや引ひき算ざんに優先ゆうせんされる

突然とつぜんですが質問しつもんです。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になるはずです。

画面10、練習れんしゅう用よう画面がめん

PRINTプリント 1+2*アスタ3ENTERエンターと入力にゅうりょくしてください。

Syn BASIC Version 0.31α ©2021-2022 Hiroshi Tanigawa(Synapse)
Ok
PRINT 1+2*3 ← 入力したPRINT文
7 ← 計算結果
Ok
実行例18、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になるはずです。

画面11、練習れんしゅう用よう画面がめん

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
実行例19、PRINTプリント 10-4/スラッシュ2*アスタ3+10/スラッシュ5の実行じっこう結果けっか

1-1-6.計算けいさんの優先順位ゆうせんじゅんいを変かえたい時ときは丸まる括弧かっこを使つかう

前項ぜんこうの説明せつめいで、「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になるはずです。

画面12、練習れんしゅう用よう画面がめん

PRINTプリント (1+2)*アスタ3ENTERエンターと入力にゅうりょくしてください。

Syn BASIC Version 0.31α ©2021-2022 Hiroshi Tanigawa(Synapse)
Ok
PRINT (1+2)*3 ← 入力したPRINT文
9 ← 計算結果
Ok
実行例20、PRINTプリント (1+2)*アスタ3の実行じっこう結果けっか

1-1-7.Synシン BASICベーシックで使つかう括弧かっこは丸まる括弧かっこだけ

複雑ふくざつな計算けいさんになると、括弧かっこで囲かこまれた計算けいさんの中なかに、さらに括弧かっこで囲かこまれた計算けいさんが出でてくる場合ばあいがあります。例たとえば、[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になるはずです。

画面13、練習れんしゅう用よう画面がめん

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
実行例21、PRINTプリント (2*アスタ((1+5)/スラッシュ3+2)+6)/スラッシュ7の実行じっこう結果けっか

1-1-8.計算けいさん精度せいどについて

この項こうでは難むずかしい話はなしが出でてくるのと、プログラミングには必かならずしも必要ひつようのない話はなしが出でてくるので、読よみ飛ばしてかまいません。

10÷9はいくらになりますか?Synシン BASICベーシックで計算けいさんする前まえに、筆算ひっさんしてみてください。図ず2の様ように、1.111111…と、1が永遠えいえんに続つづく数かずになりますね。

図2、10÷9を計算すると1が永遠に出てくる
↑ 画像をクリックすると拡大
図2、10÷9を計算けいさんすると1が永遠えいえんに出でてくる

この様ように、10÷9の答こたえを小数しょうすうで表あらわすと、1を無限むげんに書かかなければいけないので、電卓でんたくやコンピュータで計算けいさんしても、完全かんぜんには正確せいかくな答こたえが答こたえられません。

10÷9を電卓でんたくで計算けいさんすると、電卓でんたくの種類しゅるいにもよりますが、一般いっぱん的てきな電卓でんたくでは1.1111111と8桁けたで結果けっかを表示ひょうじする物ものが多おおいと思おもいます。興味きょうみがある人ひとは、ぜひ実際じっさいに計算けいさんしてみてください。

それでは、Synシン BASICベーシックで10÷9を計算けいさんすると、どういう結果けっかになるでしょうか?

実際じっさいにやってみましょう。画面がめん14でPRINTプリント 10/スラッシュ9ENTERエンターと入力にゅうりょくしてください。

画面14、練習れんしゅう用よう画面がめん

PRINTプリント 10/スラッシュ9ENTERエンターと入力にゅうりょくしてください。

Syn BASIC Version 0.31α ©2021-2022 Hiroshi Tanigawa(Synapse)
Ok
PRINT 10/9 ← 入力したPRINT文
1.11111111111 ← 計算結果
Ok
実行例22、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エクセルにおける誤差ごさの話はなしは、例たとえば次つぎに紹介しょうかいするページに解説かいせつされています。非常ひじょうに正確せいかくに計算けいさんする必要ひつようのある分野ぶんやにコンピュータを利用りようする場合ばあいは、この手ての知識ちしきが必要ひつようになります。

次のページでは文字もじ列れつについて説明せつめいします。

目次へ  前のページへ (1) (2) (3) (4) (5) (6) (7) (8) (9) 次のページへ

このページで使われている用語の解説

関連ページ

PCBgogoのバナー
Arduino 電子工作
このサイトの記事が本になりました
ISBN:978-4-7775-1941-5
→工学社の書籍の内容の紹介ページ
本のカバーの写真か書名をクリックすると、Amazonの書籍購入ページに移動します。
電子工作で学ぶ論理回路入門
このサイトの中の人が書いた本です。
ISBN:978-4-7775-2280-4
→工学社の書籍の内容の紹介ページ
→この本の紹介記事
本のカバーの写真か書名をクリックすると、Amazonの書籍購入ページに移動します。