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

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

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

3-7.文字もじ列れつを入いれておく箱はこ(文字もじ列れつ変数へんすう)を使つかってみる

これまでは、数字すうじを入いれる箱はこである、数値すうち変数へんすうを使つかって来きましたが、今度こんどは、文字もじ列れつを入いれる箱はこである、文字もじ列れつ変数へんすうを使つかってみましょう。

ドル記号きごう($ドル)で終おわる変数へんすう名めいにすると、文字もじ列れつ変数へんすうになります。例たとえば、A$ドル、FIRST_NAME$ドル、名字みょうじ$ドルなどは文字もじ列れつ変数へんすうの変数へんすう名めいです。

文字もじ列れつ変数へんすうには、代入だいにゅう文ぶんで、文字もじ列れつを代入だいにゅうする事ことができます。

例たとえば、A$ドル="abc"という代入だいにゅう文ぶんは、A$ドルという文字もじ列れつ変数へんすうに、abcという文字もじ列れつを代入だいにゅうします。

実際じっさいに試ためしてみましょう。下したの画面がめん32で、A$ドル="abc"ENTERエンターと入力にゅうりょくして、変数へんすうA$ドルにabcという文字もじ列れつを代入だいにゅうした後あとに、PRINTプリント A$ドルENTERエンターと入力にゅうりょくして、A$ドルの値あたいを確認かくにんしてください。

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

A$ドル="abc"ENTERエンター、PRINTプリント A$ドルENTERエンターと、順じゅんに入力にゅうりょくしてください。

そうすると、実行じっこう例れい58に示しめす表示ひょうじになります。

Syn BASIC Version 0.31α ©2021-2022 Hiroshi Tanigawa(Synapse)
Ok
A$="abc" ← 変数A$にabcという文字列を代入
Ok
PRINT A$ ← A$の値を表示させる
abc ← A$の値のabcが表示される
Ok

実行例58、A$ドル="abc"ENTERエンターとPRINTプリント A$ドルENTERエンターの実行じっこう例れい

この様ように、PRINTプリント文ぶんで、ちゃんとA$ドルにabcという文字もじ列れつが代入だいにゅうされている事ことが、確認かくにんできます。

ある数値すうち変数へんすうと、その数値すうち変数へんすうの変数へんすう名めいの後うしろに$ドルを付つけた文字もじ列れつ変数へんすうとは、まったく別べつの変数へんすうとして、同時どうじに使つかう事ことができます。

例たとえば、Aという数値すうち変数へんすうと、A$ドルという文字もじ列れつ変数へんすうは、別べつの変数へんすうで、それらは同時どうじに使つかう事ことができます。

実際じっさいに試ためしてみましょう。下したの画面がめん33で、A=5ENTERエンター、A$ドル="abc"ENTERエンター、PRINTプリント A,A$ドルと、順じゅんに入力にゅうりょくしてください。

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

A=5ENTERエンター、A$ドル="abc"ENTERエンター、PRINTプリント A,A$ドルと、順じゅんに入力にゅうりょくしてください。

そうすると、実行じっこう例れい59に示しめす表示ひょうじになります。

Syn BASIC Version 0.31α ©2021-2022 Hiroshi Tanigawa(Synapse)
Ok
A=5 ← 変数Aに5を代入
Ok
A$="abc" ← 変数A$にabcという文字列を代入
Ok
PRINT A,A$ ← AとA$の値を表示させる
5       abc ← 5とabcが表示される
Ok

実行例59、A=5ENTERエンターとA$ドル="abc"ENTERエンターとPRINTプリント A,A$ドルの実行じっこう例れい

この様ように、AとA$ドルは、全まったく別べつの変数へんすうとして扱あつかわれている事ことが分わかります。

ところで、リスト6のプログラムを実行じっこうすると、何なにが起おこるか考かんがえてください。

リスト6、文字もじ列れつ変数へんすうを使つかったプログラムの例れいCOPY
10 A$="おじいさん"
20 B$="おばあさん"
30 PRINT "昔むかし、ある所に、";A$;"と";B$;"が住んでいました。";
40 PRINT "ある日のこと、";A$;"は山に柴刈りに、";B$;"は川に洗濯に行きました。";
50 PRINT B$;"が川で洗濯をしていると、川上から大きな桃が、";
60 PRINT "どんぶらこ、どんぶらこと流れてきました。"

何なにが起おこるか考かんがえたら、次つぎに、リスト6のプログラムを実行じっこうしてみましょう。下したの画面がめん34には、すでにリスト6のプログラムが入力にゅうりょくされています。RUNランENTERエンターと入力にゅうりょくして、実行じっこうしてください。

10 A$="おじいさん"
20 B$="おばあさん"
30 PRINT "昔むかし、ある所に、";A$;"と";B$;"が住んでいました。";
40 PRINT "ある日のこと、";A$;"は山に柴刈りに、";B$;"は川に洗濯に行きました。";
50 PRINT B$;"が川で洗濯をしていると、川上から大きな桃が、";
60 PRINT "どんぶらこ、どんぶらこと流れてきました。"
画面34、練習れんしゅう用よう画面がめん

RUNランENTERエンターと入力にゅうりょくすると、リスト6のプログラムを実行じっこうできます。

そうすると、実行じっこう例れい60に示しめす表示ひょうじになります。

Ok
10 A$="おじいさん"
20 B$="おばあさん"
30 PRINT "昔むかし、ある所に、";A$;"と";B$;"が住んでいました。";
40 PRINT "ある日のこと、";A$;"は山に柴刈りに、";B$;"は川に洗濯に行きました。";
50 PRINT B$;"が川で洗濯をしていると、川上から大きな桃が、";
60 PRINT "どんぶらこ、どんぶらこと流れてきました。"
RUN ← プログラムを実行する
昔むかし、ある所に、おじいさんとおばあさんが住んでいました。ある日のこと、おじいさんは山に柴刈りに、おばあさんは川に洗濯に行きました。おばあさんが川で洗濯をしていると、川上から大きな桃が、どんぶらこ、どんぶらこと流れてきました。
Ok
実行例60、リスト6のプログラムを実行じっこうした例れい

この様ように、「昔むかしむかし、ある所ところに、おじいさんとおばあさんが住すんでいました…」と、桃太郎ももたろうの話はなしを表示ひょうじします。

プログラムの10行ぎょうで、A$ドルにおじいさんという文字もじ列れつを代入だいにゅうしています。

20行ぎょうでは、B$ドルにおばあさんという文字もじ列れつを代入だいにゅうしています。

30行ぎょう~60行ぎょうのPRINTプリント文ぶんで、桃太郎ももたろうの話はなしを表示ひょうじしています。

なお、30行ぎょう~50行ぎょうのPRINTプリント文ぶんの様ように、PRINTプリント文ぶんの最後さいごがセミコロン(;)で終おわっていると、表示ひょうじの際さいに改行かいぎょうをしません。つまり、30行ぎょう~60行ぎょうのPRINTプリント文ぶんで表示ひょうじしている内容ないようは、途中とちゅうに改行かいぎょうをはさまずに表示ひょうじされます。

桃太郎ももたろうの話はなしを表示ひょうじする際さいに、登場人物とうじょうじんぶつの名前なまえを、一旦いったんA$ドル(おじいさん)とB$ドル(おばあさん)の2つの文字もじ列れつ変数へんすうに代入だいにゅうしてから使つかっている点てんが、このプログラムのポイントです。この様ように、名前なまえを文字もじ列れつ変数へんすうに入いれておくと、プログラムの最初さいしょの代入だいにゅう文ぶんを書かき換かえるだけで、登場人物とうじょうじんぶつを変更へんこうできます。

例たとえば、10行ぎょうを10 A$ドル="太郎たろう"に書かき換かえ、20行ぎょうを20 B$ドル="花はな子こ"に書かき換かえると、「昔むかしむかし、ある所ところに、太郎たろうと花はな子こが住すんでいました。ある日ひのこと、太郎たろうは山やまに柴しば刈かりに、花はな子こは川かわに洗濯せんたくに行いきました…」という具合ぐあいに、登場人物とうじょうじんぶつが太郎たろうと花はな子この桃太郎ももたろうの話はなしが表示ひょうじされます。

是非ぜひ画面がめん34で、A$ドルとB$ドルに代入だいにゅうする文字もじ列れつを書かき換かえて、おじいさんやおばあさん以外いがいの人ひとが登場とうじょうする桃太郎ももたろうの話はなしを表示ひょうじしてみてください。

3-8.INPUTインプット文ぶんでプログラム実行じっこう時じに入力にゅうりょくした値あたいを変数へんすうに代入だいにゅうする

INPUTインプット文ぶんを使つかうと、プログラムの実行じっこう時じに、ユーザー(BASICベーシックで作つくったプログラムを使つかう人ひと)が入力にゅうりょくした値あたいを、変数へんすうに代入だいにゅうする事ことができます。

試ためしに、INPUTインプット文ぶんを使つかってみましょう。下したの画面がめん35で、INPUTインプット AENTERエンターと入力にゅうりょくしてください。

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

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

そうすると、実行じっこう例れい61の様ように、クエスチョンマーク(?)が表示ひょうじされます。

Syn BASIC Version 0.31α ©2021-2022 Hiroshi Tanigawa(Synapse)
Ok
INPUT A ← INPUT文
?  ← ?が表示されて入力状態になる
← ここにOkが表示されていない
実行例61、INPUTインプット AENTERエンターの実行じっこう例れい

INPUTインプット文ぶんを入力にゅうりょくした後あとに、まだOkオーケーが表示ひょうじされていない事ことから分わかる様ように、まだINPUTインプット文ぶんは実行じっこうが終おわっていません。(実行じっこう中ちゅうです)

INPUTインプット文ぶんというのは、ユーザーに値あたいを入力にゅうりょくしてもらって、その入力にゅうりょくされた値あたいを変数へんすうに代入だいにゅうするという働はたらきをします。INPUTインプット Aの場合ばあいなら、入力にゅうりょくされた値あたいを変数へんすうAに代入だいにゅうします。

実行じっこう例れい61の状態じょうたいで、123ENTERエンターと入力にゅうりょくすると、変数へんすうAに123という値あたいが代入だいにゅうされます。続つづけてPRINTプリント AENTERエンターと入力にゅうりょくすると、変数へんすうAに123が代入だいにゅうされたことが確認かくにんできます。(実行じっこう例れい62参照さんしょう)

Syn BASIC Version 0.31α ©2021-2022 Hiroshi Tanigawa(Synapse)
Ok
INPUT A
? 123 ← 123を入力する
Ok
PRINT A ← PRINT文でAの値を確認
123 ← 先程入力した123が表示される
Ok

実行例62、実行じっこう例れい61の状態じょうたいで123ENTERエンター、PRINTプリント AENTERエンターと順じゅんに入力にゅうりょくした例れい

INPUTインプット文ぶんに文字もじ列れつを指定していして、ユーザーに値あたいを入力にゅうりょくしてもらう際さいに、メッセージを表示ひょうじする事ことができます。

実際じっさいに試ためしてみましょう。次つぎの画面がめん36で、INPUTインプット "Xの値あたい: ",XENTERエンターと入力にゅうりょくしてください。

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

INPUTインプット "Xの値あたい: ",XENTERエンターと入力にゅうりょくしてください。

そうすると、実行じっこう例れい63に示しめす様ように、Xの値あたい: というメッセージが出でた後あとに、入力にゅうりょく状態じょうたいになるはずです。この様ように、メッセージを表示ひょうじすると、「変数へんすうXに代入だいにゅうする値あたいを入力にゅうりょくすればいいんだな」と、入力にゅうりょくする値あたいの意味いみをユーザーが理解りかいしやすくなります。

Syn BASIC Version 0.31α ©2021-2022 Hiroshi Tanigawa(Synapse)
Ok
INPUT "Xの値: ",X ← メッセージ付きのINPUT文
Xの値:  ← メッセージの後で入力状態になる
実行例63、INPUTインプット "Xの値あたい: ",XENTERエンターと入力にゅうりょくした例れい

実行じっこう例れい63の状態じょうたいで、さらに456ENTERエンターと、変数へんすうXに代入だいにゅうする値あたいを入力にゅうりょくし、さらにPRINTプリント XENTERエンターと入力にゅうりょくする事ことで、変数へんすうXに代入だいにゅうされた値あたいを確認かくにんしてください。456と表示ひょうじされるはずです。(実行じっこう例れい64参照さんしょう)

Syn BASIC Version 0.31α ©2021-2022 Hiroshi Tanigawa(Synapse)
Ok
INPUT "Xの値: ",X
Xの値: 456 ← Xの値として456を入力
Ok
PRINT X ← Xに代入された値を表示させる
456 ← 先程入力した456が表示される
Ok

実行例64、実行じっこう例れい63の状態じょうたいでXの値あたいとして456を入力にゅうりょくした例れい

INPUTインプット文ぶんを使つかうと、計算けいさんに使つかう値あたいを、実行じっこう時じにユーザーに入力にゅうりょくしてもらうプログラムを作つくる事ことができます。

例れいとして、リスト7の様ようなプログラムを作つくりました。

リスト7、入力にゅうりょくされた2つの数かずで四則しそく演算えんざんするプログラムCOPY
10 PRINT "XとYの2つの数を入力してください。"
20 INPUT "Xの値: ",X
30 INPUT "Yの値: ",Y
40 PRINT
50 PRINT "X + Y = ";X+Y
60 PRINT "X - Y = ";X-Y
70 PRINT "X × Y = ";X*Y
80 PRINT "X ÷ Y = ";X/Y

このプログラムは、XとYの2つの数かずを入力にゅうりょくすると、その2つの数かずを使つかって四則しそく演算えんざんするものです。

10行ぎょうでは、XとYの2つの数かずを入力にゅうりょくしてください。というメッセージを画面がめんに表示ひょうじします。

20行ぎょうでは、INPUTインプット文ぶんで、入力にゅうりょくされた値あたいを変数へんすうXに代入だいにゅうします。

30行ぎょうでは、INPUTインプット文ぶんで、入力にゅうりょくされた値あたいを変数へんすうYに代入だいにゅうします。

40行ぎょうでは、何なにも表示ひょうじせずに改行かいぎょうします。

50行ぎょうでは、XとYの和わ(X+Y)を表示ひょうじします。

60行ぎょうでは、XとYの差さ(X-Y)を表示ひょうじします。

70行ぎょうでは、XとYの積せき(X*アスタY)を表示ひょうじします。

80行ぎょうでは、XとYの商しょう(X/スラッシュY)を表示ひょうじします。

下したの画面がめん37には、リスト7のプログラムがあらかじめ入力にゅうりょくされています。RUNランENTERエンターと入力にゅうりょくすると、実際じっさいに動作どうささせることができます。

10 PRINT "XとYの2つの数を入力してください。"
20 INPUT "Xの値: ",X
30 INPUT "Yの値: ",Y
40 PRINT
50 PRINT "X + Y = ";X+Y
60 PRINT "X - Y = ";X-Y
70 PRINT "X × Y = ";X*Y
80 PRINT "X ÷ Y = ";X/Y
画面37、練習れんしゅう用よう画面がめん

RUNランENTERエンターと入力にゅうりょくすると、リスト7のプログラムを実行じっこうできます。

Xの値あたいとして8、Yの値あたいとして5を入力にゅうりょくした時ときは、実行じっこう例れい65の様ような実行じっこう結果けっかになります。

10 PRINT "XとYの2つの数を入力してください。"
20 INPUT "Xの値: ",X
30 INPUT "Yの値: ",Y
40 PRINT
50 PRINT "X + Y = ";X+Y
60 PRINT "X - Y = ";X-Y
70 PRINT "X × Y = ";X*Y
80 PRINT "X ÷ Y = ";X/Y
RUN ← RUN命令でプログラムを実行
XとYの2つの数を入力してください。
Xの値: 8 ← Xの値として8を入力
Yの値: 5 ← Yの値として5を入力

X + Y = 13 ← 8+5の計算結果を表示
X - Y = 3 ← 8-5の計算結果を表示
X × Y = 40 ← 8×5の計算結果を表示
X ÷ Y = 1.6 ← 8÷5の計算結果を表示
Ok

実行例65、Xの値あたいを8、Yの値あたいを5として実行じっこうした例れい

INPUTインプット文ぶんで、ユーザーが入力にゅうりょくした文字もじ列れつを、文字もじ列れつ変数へんすうに代入だいにゅうする事こともできます。

例たとえば、リスト8のプログラムを見みてください。

リスト8、文字もじ列れつ変数へんすうを使つかったINPUTインプット文ぶんを応用おうようしたプログラムCOPY
10 INPUT "名前を入力してください: ",NAME$
20 PRINT "こんにちは、";NAME$;"さん。";NAME$;"って、いい名前ですね。"

このプログラムの10行ぎょうのINPUTインプット "名前なまえを入力にゅうりょくしてください: ",NAME$ドルというINPUTインプット文ぶんでは、名前なまえを入力にゅうりょくしてください: というメッセージを表示ひょうじしてから、変数へんすうNAME$ドルに代入だいにゅうする文字もじ列れつの入力にゅうりょく状態じょうたいになります。

20行ぎょうのPRINTプリント文ぶんでは、10行ぎょうのINPUTインプット文ぶんで入力にゅうりょくしたNAME$ドルの値あたいを利用りようしたメッセージを表示ひょうじします。

下したの画面がめん38には、リスト8のプログラムがあらかじめ入力にゅうりょくされています。RUNランENTERエンターと入力にゅうりょくすると、プログラムを実行じっこうできます。

10 INPUT "名前を入力してください: ",NAME$
20 PRINT "こんにちは、";NAME$;"さん。";NAME$;"って、いい名前ですね。"
画面38、練習れんしゅう用よう画面がめん

RUNランENTERエンターと入力にゅうりょくすると、リスト8のプログラムを実行じっこうできます。

プログラムを実行じっこうして、太郎たろうと入力にゅうりょくすると、実行じっこう例れい66に示しめす様ように、「こんにちは、太郎たろうさん。太郎たろうって、いい名前なまえですね。」と表示ひょうじされます。

Syn BASIC Version 0.31α ©2021-2022 Hiroshi Tanigawa(Synapse)
Ok
10 INPUT "名前を入力してください: ",NAME$
20 PRINT "こんにちは、";NAME$;"さん。";NAME$;"って、いい名前ですね。"
RUN ← RUN命令でプログラムを実行
名前を入力してください: 太郎 ← 太郎と入力
こんにちは、太郎さん。太郎って、いい名前ですね。 ← 20行で表示したメッセージ
Ok

実行例66、リスト8のプログラムを実行じっこうして太郎たろうENTERエンターと入力にゅうりょくした例れい

次のページでは、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の書籍購入ページに移動します。