INPUT文

実行時にデータを入力

相手の名前を聞く

相手の名前を聞いて挨拶するプログラムをつくります。プログラムの実行時に変数に値を代入したいときにはINPUT文を用います。

INPUT aite$
PRINT aite$
END

実行すると、次のようなウインドウが開いて入力を促されます。

入力ウインドウ

入力して[OK]をクリックするか、[Enter]キーを押すことで、データが入力され、プログラムが続行されます。"安達"と入力すると表示は次のようになります。

? 安達
安達

エコーをOFFにする

2つ目の「安達」が PRINT 文によるもの。最初の「? 安達」の部分は入力時に出てきたもので、「エコーバック」といいます。奇妙な感じがするかもしれませんが、Enterキーを押すまで自分の入力している文字が見えないのも困ります。十進BASICでは別に入力ウインドウがあるので必要ないように感じられるわけです。プログラムの最初にSET ECHO "OFF" と書けばなくなります。

プログラムに書き込む

では実際に使ってみます。

SET ECHO "OFF" 
LET  aisatsu$ = "こんにちは"
LET  san$ = "さん"
INPUT aite$
LET  bun$ = aisatsu$ & aite$ & san$
PRINT bun$
END

実行すると,入力ウインドウが開きます。名前を入れると挨拶してくれます。

文字を入れるときは必ず文字変数に

文字列を入れるときには必ず文字列変数に入力します。$ のついていないで変数に数値以外のものを入力しようとしても、エラーになって先に進めません。逆に数値を入れるためには $ のつかない変数を使います。文字変数に数値をいれても文字として取り扱いますから、計算ができません。

INPUT aite$        !文字を入れる場合
INPUT kazu         !数値を入れる場合

プロンプト

入力ウインドウにはタイトルバーに INPUT aite$ などとプログラム行が出ますが、何を入力すればいいかわからなくなる可能性もあります。この場合に使うのがプロンプトとよばれるものです。質問文のようなものです。

INPUT PROMPT "あなたのお名前はなんですか":aite$

というように、PROMPT 文字列式: を挟んでおけば、入力時に書いてくれます。

プロンプトの様子

文字列式ですから文字列変数を書くこともできますし、& を使った式も書けます。

LET toi$ = "あなたのお名前はなんですか"
INPUT PROMPT toi$ : aite$

としても、同じようになります。

例9

aisatsu$ に「こんにちは」、san$ に「さん」、を入れておき、"あなたのお名前はなんですか"とたずねて、名前を入力してもらい、PRINT bun$ で「こんにちは〜〜さん」と表示されるようにプログラムしなさい。

??

結果は、

こんにちは〜〜さん  (〜〜に自分の名前)

例10

"半径を入れてください"と表示して半径を入力してもらい、円周の長さと面積を計算して表示するプログラムをつくります。円周率は3.14を使ってください。円周の長さは 2πr、面積はπr2

??

4と入力すると、計算結果は以下のようになります。

円周の長さは 25.12
面積は 50.24

2つ以上の変数に値を入れる場合

2つ以上の変数に値を入れる場合はコンマで区切って変数を書きます。入力する場合も、コンマで区切って 2,3 のように入れます。

INPUT a, b
PRINT "a=";a,  "b=";b,  "a+b=";a+b
END

2,3 と入れると結果は、

a= 2                    b= 3                    a+b= 5 

例11

x と y を入力すると、x+2y と3x+5y3 を表示するプログラムを作ります。

??

−2,4と入力すると、計算結果は以下のようになります。

x+2y=6
3x+5y^3= 314

3乗の部分は y3 と書けないのでこれで我慢します。

注意

PRINT "a=";a
は、a=3 などと出力されるが、
PRINT a=3
はBASICではエラーになる。

x+2yの計算をする前にxとyを入力してもらわないと、x+2yの計算が正しくできない。

数式では3x+5y3と書くが、BASICでは 3 * x + 5 * y^3 と書く。+ * ^ - / = や & の前後には半角のスペースを入れてもよい。全角はだめ。


聖愛高等学校
http://www.seiai.ed.jp/