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つ使つかいましたが、今度こんどは、ABの、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.変数へんすう命名めいめいルール

先程さきほどれいでは、ABという名前なまえ変数へんすう使つかいましたが、もちろんほか変数へんすうめい使つかえます。ただし、変数へんすうめいめるときには、まもるべきルールがあります。

変数へんすうめい文字数もじすうですが、なん文字もじでもかまいません。よって、ABといった、いち文字もじ変数へんすうめい使つかってもかまいませんし、NAGAIHENSUMEIながいへんすうめいという具合ぐあいに、変数へんすうめいながくしてもかまいません。

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

たとえば、bBは、おな変数へんすうあらわしています。また、ABcaBCおな変数へんすうあらわしています。

大文字おおもじ小文字こもじ区別くべつしないこと確認かくにんするために、つぎ画面がめん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)、アンダースコア(_)、および漢字かんじなどの全角ぜんかく文字もじ使つかえます。たとえば、AABCABC123TARO_YAMADAリンゴとう変数へんすうめいとして使つかえます。

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

変数へんすうめいは、半角はんかく数字すうじはじまってはいけません。よって、1A123abcとうは、変数へんすうめいとして使つかえません。使つかおうとすると、エラーになります。

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

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-1A=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の書籍購入ページに移動します。