OriosのActiveBasic講座(1-1):入出力

5.Input命令語

【目標】ユーザ(プログラムを実行する人)からデータを入力してもらう方法を習得しましょう。

今までのプログラムではプログラムで使う数値は自分であらかじめ書かなくてはいけませんでした。 しかしプログラムをするなら、やっぱりユーザー(実際に使う人)が入力した数値や文字が使いたいなあと思いませんか? そこで今回はユーザーから数値や文字を入力してもらう「Input」という命令語を勉強します。 これが使えるようになればプログラミングがグンと楽しくなります。

では早速次のプログラムを実行してみましょう。 ……の前に、今回は実行する前に少し予備知識が必要です。

では実際に実行してみましょう。

'lesson1-1-5
#console
Dim name As String
Dim age As Long
Dim height As Long
Dim weight As Long
Input "名前を入力してください。", name
Input "年齢は"; age
Input "身長(cm)と体重(kg)をコンマで区切って入力してください。", height, weight
Print ""
Print "コンピューターは以下のようにあなたを認識しました。"
Print "名前:" + name
Print "年齢:"; age; "歳"
Print "肥満度:"; weight / ((height / 100) ^ 2 * 22) * 100 - 100; "%"
Sleep(3000)
End

上のプログラムを実行し、指示に従って適当に入力すると下のようになります。

C:\ActiveBasicCourse\lesson1-1-5.abp
名前を入力してください。Orios
年齢は? 116
身長(cm)と体重(kg)をコンマで区切って入力してください。249,156

コンピューターは以下のようにあなたを認識しました。
名前:Orios

年齢: 116 歳
肥満度: 14.3676568266493 %

今回は第一章の終わりということで少し複雑なプログラム例を載せましたがどうでしたか? 上の実行例のデータで笑うも良し、自分で変なデータを入れて笑うも良しですが、決して肥満度が高かったからって管理人に文句は言わないように……。 一応、肥満度については「BMI」という方法を使っていますが、私はこのプログラムの結果の信憑性については責任を負いかねます。

まあ、この話題で終わってもいけないんで、今回のプログラムの説明に入ります。

-*-*-*-*-説明-*-*-*-*-
【使い方】
Input "表示する文字列 ", 変数
【備考】
「"表示する文字列 "」は省略可能です。
【意味】
表示する文字列 を表示して、ユーザーに入力を求め、ユーザーが入力した数値・文字を変数 に代入します。
【解説】
Input命令語
(i) 概説
今までは変数に値を入力するときはあらかじめプログラムに書いておかなければなりませんでした。 しかしユーザーに変数の値を入力してもらい、それに合わせてプログラムを処理したいこともあると思います。 例えば「電卓」だったらプログラムで自分で「変数aに1を、変数bに3を代入して、『a + b』の計算結果を表示」なんてことを計算のたびにするよりは、数値を入力できるようにしておけば便利ですよね。 そこで使うのがこの「Input」命令語です。 この命令語を使うことでユーザーに値を入力してもらい、それを指定した編集に代入することができます。
(ii) 注意点
Input命令語を使うときは以下のことに注意してください。
  • ユーザが入力する数値・文字列と、それを代入する変数の型を合わせてください。 特に文字列を入力するところで数値変数に代入させるようなことのないようにしてください (逆に数値のところに文字列変数を使うと数値が文字列として扱われます)。
  • 表示する文字列 は省略しても構いません。 そのときは「?」が表示されます。 省略するときは「"」や「,」も忘れず省略してください。
【使い方】
Input "表示する文字列 "; 変数
【意味】
入力を求めるときに、表示する文字列 の後に「?」を表示させます。
【解説】
入力促進符「?」の表示
( ) [1]の「,」の部分を「;」に変えることによって「?」を表示することができます。 「?」を表示すると、ユーザーに質問されていることをはっきりと分かってもらうことができるというメリットがあります。
【使い方】
Input "表示する文字列 ", 変数1 , 変数2 
【備考】
(a) 「,」の部分は「;」にしても構いません。
(b) 変数1 , 変数2 ……の部分は必要な数だけ「,」で区切りながら書いていきます。
【意味】
一度に2つ以上の変数の入力を求めることができます。
【解説】
( ) 複数個の値の入力
(1) 概説
一度に2つ以上の変数の入力を求めたいときは、ユーザが入力した値を代入させたい変数を「,」で区切りながら並べて書きます。 そうすると、ユーザが「,」で区切って入力した複数の数値・文字列が、前の変数から順番に代入されます。
(2) 注意点
注意する点は[1]で挙げたものの他に、ユーザーに入力方法を説明する必要があるということです。 自分がプログラムを使う側に立ってください。 いきなり「身長と体重を入力」と表示されてもユーザーにはどう入力したらいいか分からない場合がほとんどです。 なので冒頭のプログラムの例のように、コンマで区切って入力するということを表示をさせておくとユーザーに優しいプログラムになります。
【使い方】
""
【意味】
データのない文字列を表します。
【解説】
空文字列
(1) 空文字列とは?
ずばり「データのない文字列」です。 詳しく説明すると、文字列なのは文字列なのですが、文字データがない文字列です。 つまり文字列変数「a」が空文字列、文字列変数「b」が"abc"という値を持っていたとき、「Print a + b」とすると「abc」と表示されます。 なぜかといえば、「a」には文字データがないので、「b」に連結しようと何しようと変化がないわけです。 イメージとしては「0 + 3」みたいなものです。 また文字データがないものの一応文字列変数なので「a + b」はエラーがでません。
(2) 一行下げ
空文字列の用途の一つに「一行下げ」があります。 つまり「Print ""」とすると、その行には何も表示されず、そのまま改行されるので、表示されるところを一行下にしたいときに使えるわけです。
※ 「一行下げ」をするときは「Print」のように「""」を省略することもできます。

【注意】

今回は第一章の最後ということで「Input命令語」についていろいろと書いてきましたがどうでしたか? 今回の「Input命令語」はユーザーが入力した数値・文字列を取得する基本的なものです。 冒頭でも述べましたがこれが使えるとプログラムがグンと楽しくなります。 がんばって自分のものにしましょう。 では、第一章最後の「やってみよう」です。

-*-*-*-*- -*-*-*-*-

「2つの数字を入力してください。」と表示させてユーザに数字を入力してもらい、その2つの数字を加減乗除した結果をそれぞれ表示するプログラムを作ってみましょう。 ただし「?」は表示させるようにしてください。


ご質問・ご意見・ご感想・苦情等はメールまたはメイン掲示板のActiveBasic板などでお気軽にどうぞ。

前に戻る - 次に進む

ホーム > OriosのActiveBasic講座(トップページ) >