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

このページをスマートフォンなどでご覧になる場合は、画面を横長にする方が読みやすくなる事があります。
目次へ  前のページへ (1) (2) (3) (4) (5) (6) (7) (8) (9) 次のページへ
2024年10月01日 公開

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

3.変数へんすうを使つかってみよう

BASICベーシックでは、変数へんすうと呼よばれる、数かずや文字もじ列れつを入いれておける箱はこの様ような物ものが使つかえます。数かずを入いれておく箱はこを数値すうち変数へんすう、文字もじ列れつを入いれておく箱はこを文字もじ列れつ変数へんすうといいます。この章しょうでは、変数へんすうの使つかい方かたについて説明せつめいします。

3-1.数かずを入いれておく箱はこ(数値すうち変数へんすう)を使つかってみる

まず、数かずの入いれ物ものである、数値すうち変数へんすうを使つかってみましょう。下したの画面がめん26で、まずA=5ENTERエンターと入力にゅうりょくし、続つづいてPRINTプリント AENTERエンターと入力にゅうりょくしてください。さらに、PRINTプリント A+2ENTERエンターと入力にゅうりょくしてください。

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

A=5ENTERエンター、PRINTプリント AENTERエンター、PRINTプリント A+2ENTERエンターと、3つの命令めいれいを入力にゅうりょくしてください。

そうすると、実行じっこう例れい52に示しめす表示ひょうじになるはずです。

Syn BASIC Version 0.31α ©2021-2022 Hiroshi Tanigawa(Synapse)
Ok
A=5 ← 変数Aに5を代入する
Ok
PRINT A ← Aの値を表示させる
5 ← Aの値の5が表示される
Ok
PRINT A+2 ← A+2の計算結果を表示させる
7 ← 5+2の計算結果が表示される
実行例52、A=5ENTERエンターとPRINTプリント AENTERエンターとPRINTプリント A+2ENTERエンターの実行じっこう例れい

A=5ENTERエンターと入力にゅうりょくすると、Aという名前なまえの箱はこ(数値すうち変数へんすう)に、5という数字すうじを入いれます。

変数へんすうは、コンピュータ内うちに、たくさん作つくる事ことができますので、それぞれを区別くべつするために、名前なまえを付つける必要ひつようがあります。その名前なまえの事ことを、変数へんすう名めいといいます。この場合ばあい、Aという変数へんすう名めいの数値すうち変数へんすうを使つかっています。

変数へんすう名めいのAの後あとに、=と5を入力にゅうりょくしていますが、この=は、それに続つづく数字すうじを、変数へんすうの箱はこの中なかに入いれる事ことを意味いみしています。

つまり、A=5という命令めいれいは、「Aという数値すうち変数へんすうに、5という数かずを入いれなさい」という意味いみです。

この様ように、変数へんすうの箱はこの中なかに数かずを入いれる事ことを代入だいにゅうといいます。また、A=5の様ような、変数へんすうに数かずを代入だいにゅうする命令めいれいの事ことを、代入だいにゅう文ぶんといいます。

A=5の代入だいにゅう文ぶんを実行じっこうしただけでは、本当ほんとうにAに5が代入だいにゅうされているのか分わかりませんので、続つづくPRINTプリント AENTERエンターで、Aに代入だいにゅうされた数かずを確認かくにんしています。この様ように、PRINTプリント文ぶんを使つかえば、変数へんすうの内容ないよう(変数へんすうに代入だいにゅうされた数かず)を画面がめんに表示ひょうじできます。

続つづいてPRINTプリント A+2ENTERエンターと入力にゅうりょくすると、7と表示ひょうじされますが、これは、A+2という数式すうしきの計算けいさん結果けっかが表示ひょうじされたからです。

数式すうしきの中なかに変数へんすうが使つかわれている場合ばあいは、変数へんすう名めいが、その変数へんすうに代入だいにゅうされている値あたいに置おき換かえられたうえで計算けいさんされます。

A+2の例れいでは、変数へんすう名めいのAの部分ぶぶんが、Aに代入だいにゅうされている5という数かずに置おき換かえられて、数式すうしきが5+2と解釈かいしゃくされます。PRINTプリント A+2を実行じっこうすると、5+2の計算けいさん結果けっかの7が表示ひょうじされるのです。

3-2.複数ふくすうの数値すうち変数へんすうを使つかってみる

先程さきほどは、Aという変数へんすうを1つ使つかいましたが、今度こんどは、AとBの、2つの変数へんすうを使つかってみましょう。

下したの画面がめん27で、A=5ENTERエンター、B=3ENTERエンター、PRINTプリント A,B,A+BENTERエンターと、3つの命令めいれいを順じゅんに入力にゅうりょくしてください。

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

A=5ENTERエンター、B=3ENTERエンター、PRINTプリント A,B,A+BENTERエンターの3つの命令めいれいを順じゅんに入力にゅうりょくしてください。

そうすると、実行じっこう例れい53の様ような表示ひょうじになるはずです。

Syn BASIC Version 0.31α ©2021-2022 Hiroshi Tanigawa(Synapse)
Ok
A=5 ← 変数Aに5を代入する
Ok
B=3 ← 変数Bに3を代入する
Ok
PRINT A,B,A+B ← AとBとA+Bの値を順に表示させる
5       3       8
↑ 5と3と5+3の計算結果の3つが順に表示される
Ok
実行例53、A=5ENTERエンター、B=3ENTERエンター、PRINTプリント A,B,A+BENTERエンターの実行じっこう例れい

最初さいしょのA=5という代入だいにゅう文ぶんで、変数へんすうAに5を代入だいにゅうしています。

次つぎのB=3という代入だいにゅう文ぶんで、変数へんすうBに3を代入だいにゅうしています。

最後さいごのPRINTプリント A,B,A+BというPRINTプリント文ぶんで、Aに代入だいにゅうされた値あたい、Bに代入だいにゅうされた値あたい、A+Bの計算けいさん結果けっかの3つを順じゅんに表示ひょうじしています。

今回こんかいは、2つの数値すうち変数へんすうを使つかいましたが、もっと変数へんすうを増ふやす事こともできます。コンピュータのメモリ容量ようりょうの制限せいげんがあるので、いくつでも変数へんすうを増ふやせるわけではありませんが、普通ふつうの使つかい方かたで、変数へんすうの数かずが足たりなくなる事ことはありません。

3-3.変数へんすうの命名めいめいルール

先程さきほどの例れいでは、AやBという名前なまえの変数へんすうを使つかいましたが、もちろん他ほかの変数へんすう名めいも使つかえます。ただし、変数へんすう名めいを決きめる時ときには、守まもるべきルールがあります。

変数へんすう名めいの文字数もじすうですが、何なん文字もじでも構かまいません。よって、AやBといった、一いち文字もじの変数へんすう名めいを使つかっても構かまいませんし、NAGAIHENSUMEIながいへんすうめいという具合ぐあいに、変数へんすう名めいを長ながくしてもかまいません。

変数へんすう名めいにアルファベットを使つかう場合ばあいは、大文字おおもじと小文字こもじを区別くべつしません。

例たとえば、bとBは、同おなじ変数へんすうを表あらわしています。また、ABcとaBCも同おなじ変数へんすうを表あらわしています。

大文字おおもじと小文字こもじを区別くべつしない事ことを確認かくにんするために、次つぎの画面がめん28で、B=3ENTERエンターと入力にゅうりょくした後あとに、PRINTプリント bENTERエンターと入力にゅうりょくしてください。

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

まずB=3ENTERエンターと入力にゅうりょくし、続つづいてPRINTプリント bENTERエンターと入力にゅうりょくしてください。

そうすると、実行じっこう例れい54の様ような表示ひょうじになるはずです。

Syn BASIC Version 0.31α ©2021-2022 Hiroshi Tanigawa(Synapse)
Ok
B=3 ← 変数Bに3を代入する
Ok
PRINT b ← bの値を表示させる
3 ← Bとbは同じ変数なので、Bに代入した3が表示される
Ok
実行例54、B=3ENTERエンターとPRINTプリント bENTERエンターの実行じっこう例れい

変数へんすう名めいには、半角はんかくアルファベット(a~zとA~Z)、半角はんかく数すう字じ(0~9)、アンダースコア(_)、および漢字かんじなどの全角ぜんかく文字もじが使つかえます。例たとえば、A、ABC、ABC123、TARO_YAMADA、リンゴ等とうが変数へんすう名めいとして使つかえます。

同おなじ文字もじでも、半角はんかく文字もじと全角ぜんかく文字もじは区別くべつされます。例たとえば、AとAは、別べつの変数へんすうとして扱あつかわれます。

変数へんすう名めいは、半角はんかくの数字すうじで始はじまってはいけません。よって、1Aや123abc等とうは、変数へんすう名めいとして使つかえません。使つかおうとすると、エラーになります。

+、-、*アスタ、/スラッシュ、"、'、;、:、^、=、<、>、?、,、.、$ドル等とうの半角はんかく記号きごうは、変数へんすう名めいとして使つかえません。これらの記号きごうであっても、全角ぜんかく文字もじなら変数へんすう名めいに使つかえます。ただし、全角ぜんかくであっても、÷は例外れいがい的てきに、変数へんすう名めいに使つかえません。

3-4.同おなじ変数へんすうに複数ふくすう回かい代入だいにゅうしてみる

同おなじ変数へんすうに、何度なんども値あたいを代入だいにゅうする事ことができます。

下したの画面がめん29で、A=3ENTERエンター、PRINTプリント AENTERエンター、A=5ENTERエンター、PRINTプリント AENTERエンター、A=1ENTERエンター、PRINTプリント AENTERエンターの、6つの命令めいれいを順じゅんに入力にゅうりょくしてください。

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

A=3ENTERエンター、PRINTプリント AENTERエンター、A=5ENTERエンター、PRINTプリント AENTERエンター、A=1ENTERエンター、PRINTプリント AENTERエンターの、6つの命令めいれいを順じゅんに入力にゅうりょくしてください。

そうすると、実行じっこう例れい55の様ような表示ひょうじになるはずです。

Syn BASIC Version 0.31α ©2021-2022 Hiroshi Tanigawa(Synapse)
Ok
A=3 ← 変数Aに3を代入
Ok
PRINT A ← 変数Aの値を表示
3 ← 直前に代入された値の3が表示される
Ok
A=5 ← 変数Aに5を代入
Ok
PRINT A ← 変数Aの値を表示
5 ← 直前に代入された値の5が表示される
Ok
A=1 ← 変数Aに1を代入
Ok
PRINT A ← 変数Aの値を表示
1 ← 直前に代入された値の1が表示される
Ok
実行例55、6つの命令めいれいの実行じっこう例れい

この例れいでは、変数へんすうAに、3、5、1の順じゅんで、3回かい値あたいを代入だいにゅうしています。そして、代入だいにゅうするたびに、PRINTプリント Aで、Aに代入だいにゅうされている値あたいを表示ひょうじさせ、値あたいを確認かくにんしています。

最初さいしょにA=3を実行じっこうした時点じてんでは、Aには3が代入だいにゅうされています。そのため、その直後ちょくごにPRINTプリント Aで値あたいを確認かくにんすると、3が表示ひょうじされます。

2回かい目めの代入だいにゅうでは、A=5で、Aに5を代入だいにゅうしています。この時点じてんで、変数へんすうAの内容ないようは、3から5に変かわります。直後ちょくごのPRINTプリント Aでは、そのため5が表示ひょうじされます。

3回かい目めの代入だいにゅうでは、A=1で、Aに1を代入だいにゅうしています。この時点じてんで、変数へんすうAの内容ないようは、5から1に変かわります。直後ちょくごのPRINTプリント Aでは、そのため1が表示ひょうじされます。

この様ように、同おなじ変数へんすうに複数ふくすう回かいの代入だいにゅうがあった場合ばあいは、その時点じてんで最後さいごに代入だいにゅうされた値あたいが読よみだされます。

3-5.一度いちども代入だいにゅうしていない変数へんすうを読よみ出だすとどうなるか

下したの画面がめん30で、PRINTプリント AENTERエンターと入力にゅうりょくしてください。

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

PRINTプリント AENTERエンターと入力にゅうりょくしてください。

そうすると、実行じっこう例れい56の様ような画面がめんになるはずです。

Syn BASIC Version 0.31α ©2021-2022 Hiroshi Tanigawa(Synapse)
Ok
PRINT A ← 値を代入した事のない変数の値を表示
0 ← 0が表示される
Ok
実行例56、6つの命令めいれいの実行じっこう例れい

この様ように、以前いぜんに値あたいを代入だいにゅうした事ことのない変数へんすうを読よみ出だすと、0が読よみだされます。

3-6.A=A+1 ?

ある変数へんすうに値あたいを代入だいにゅうする時ときに、代入だいにゅうの直前ちょくぜんのその変数へんすうの値あたいを使つかう事ことができます。

こういう話はなしを聞きいても、ほとんどの人ひとは訳わけが分わからないと思おもうので、まず、下したの画面がめん31で、A=6ENTERエンター、PRINTプリント AENTERエンター、A=A+1ENTERエンター、PRINTプリント AENTERエンターと、4つの命令めいれいを順じゅんに入力にゅうりょくしてください。

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

A=6ENTERエンター、PRINTプリント AENTERエンター、A=A+1ENTERエンター、PRINTプリント AENTERエンターと、4つの命令めいれいを順じゅんに入力にゅうりょくしてください。

そうすると、実行じっこう例れい57の様ような表示ひょうじになるはずです。

Syn BASIC Version 0.31α ©2021-2022 Hiroshi Tanigawa(Synapse)
Ok
A=6 ← 変数Aに6を代入
Ok
PRINT A ← 変数Aの値を表示
6 ← 直前に代入された値の6が表示される
Ok
A=A+1 ← 変数Aに6+1の計算結果を代入
Ok
PRINT A ← 変数Aの値を表示
7 ← 直前に代入された値の7が表示される
Ok
実行例57、A=6ENTERエンター、PRINTプリント AENTERエンター、A=A+1ENTERエンター、PRINTプリント AENTERエンターの実行じっこう例れい

最初さいしょのA=6で、変数へんすうAに6を代入だいにゅうして、次つぎのPRINTプリント Aで、Aに代入だいにゅうされた6を表示ひょうじしている所ところまでは、お分わかりいただけると思おもいます。

次つぎにA=A+1を実行じっこうしていますが、初心しょしん者しゃにはこの命令めいれいの意味いみが理解りかいしにくいようです。ちょっと難むずかしいかも知しれませんが、大事だいじな所ところなので、頑張がんばって説明せつめいを聞きいてください。

この命令めいれいの理解りかいが難むずかしいのは、数学すうがくの方程式ほうていしきと混同こんどうするからみたいです。

数学すうがくでは、=の記号きごうは、その記号きごうの左側ひだりがわ(左辺さへん)と右側みぎがわ(右辺うへん)が等ひとしいという意味いみで使つかいます。

そのため、A=A+1というコードを見みると、「変数へんすうAの値あたいとA+1という数式すうしきの計算けいさん結果けっかが一致いっちするなんてありえない」と思おもってしまうみたいなのです。

しかし、BASICベーシックの代入だいにゅう文ぶんで=の記号きごうを使つかう場合ばあいは、左辺さへんと右辺うへんが等ひとしいという意味いみではなく、=記号きごうの右側みぎがわの数式すうしきの計算けいさん結果けっかを、=記号きごうの左側ひだりがわの変数へんすうに代入だいにゅうする事ことを表あらわします。

注ちゅう:BASICベーシックでも、後あとに紹介しょうかいするIFイフ文ぶんで使つかう条件じょうけん式しきの中なかでは、=の記号きごうは、左辺さへんと右辺うへんが等ひとしいという意味いみになるので、余計よけいに混乱こんらんします。C言語げんご、C++、JavaScriptジャバスクリプト等とうのプログラミング言語げんごでは、等ひとしい事ことを表あらわす記号きごうは==で、代入だいにゅうを表あらわす記号きごうは=となっており、別べつの記号きごうを使つかいます。Pascalパスカルでは、等ひとしい事ことを表あらわす記号きごうは=で、代入だいにゅうを表あらわす記号きごうは:=と、C言語げんごなどとは違ちがう記号きごうを使つかいますが、等ひとしい事ことを表あらわす記号きごうと、代入だいにゅうを表あらわす記号きごうは、区別くべつされています。BASICベーシックの様ように、=の記号きごうの意味いみを、文脈ぶんみゃくによって判断はんだんするプログラミング言語げんごは、かなり少数派しょうすうはの様ようです。

A=6を実行じっこうした時点じてんでAには6が代入だいにゅうされています。

この時ときA=A+1という命令めいれいを実行じっこうすると、まず=の右側みぎがわのA+1という数式すうしきを計算けいさんします。この数式すうしきを計算けいさんする際さいに、変数へんすうのAは、Aに代入だいにゅうされている6という値あたいに置おき換かえられますから、6+1が計算けいさんされ、その結果けっかは7になります。

次つぎに、その計算けいさん結果けっかの7という値あたいが、変数へんすうAに代入だいにゅうされます。

A=A+1の実行じっこう後ごにPRINTプリント Aを実行じっこうすると、直前ちょくぜんの代入だいにゅうで設定せっていされた値あたいの7が表示ひょうじされるのです。

この様ように、Aに6が代入だいにゅうされた状態じょうたいで、A=A+1を実行じっこうすると、Aに新あらたに7が代入だいにゅうされますが、この状態じょうたいで、もう一度いちどA=A+1を実行じっこうすると、どうなるのでしょうか?

今度こんどは、Aの値あたいが7なのですから、A+1という数式すうしきは、7+1と解釈かいしゃくされ、その計算けいさん結果けっかの8がAに代入だいにゅうされます。

さらにもう一度いちどA=A+1を実行じっこうすると、今度こんどは8+1が計算けいさんされ、9がAに代入だいにゅうされます。

この様ように、A=A+1という命令めいれいが実行じっこうされるたびに、Aの値あたいは、1ずつ大おおきくなります。

同様どうように考かんがえると、A=A-1という命令めいれいは、Aの値あたいを1減へらす命令めいれいだという事ことが分わかります。

また、A=2*アスタAなら、Aの値あたいを2倍ばいにする命令めいれいになります。

是非ぜひ、先さきほどの画面がめん31で、A=A-1やA=2*アスタAの命令めいれいも試ためしてみてください。

次のページでは、文字もじ列れつ変数へんすうの使つかい方かたと、INPUTインプット文ぶんについて説明せつめいします。

目次へ  前のページへ (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の書籍購入ページに移動します。