# ユーザーからの入力を得る

自作したプログラムを、多くの人に使ってもらうには、結果を出力するだけではなく、入力することが出来なくては！

## 尋ねる

> 一方通行のプログラムからの脱却

> | 今まで上で作ったプログラムは、全部、一方通行です。プログラマーのあなたが、こうしなさいと、ひまわりに命令して、その通りに、ひまわりが動く・・・。プログラマーでなければ、プログラム中の数値を変えることは出来ません。 それでは、不便です。 プログラムを使ってくれるユーザー（プログラムの利用者）にも、数値を変更したり、何かメッセージを入力したりできるようにしましょう。

> ユーザーから入力を得るには、「〜と、尋ねる」という命令を使います。これは、例えば、以下のように使います。

> `「好きな数字は、なんですか？」と、尋ねる。 「入力された数字は、｛それ｝です。」と、表示。`

> この「尋ねる」という命令を使うと、「それ」という特別な変数に、ユーザーから入力された値を返します。
> 詳しく説明すると、１行目で、「好きな数字はなんですか？」という、ダイアログを表示し、ユーザーに、何か文字列の入力を要求します。ユーザーから入力された値は、「それ」という特殊変数へ代入されます。（ひまわりの命令の大部分は、命令の結果を、「それ」に返します。）
> そして、２行目で、それの内容を、表示します。

## 実用的？な使い方

> いくつか実用的？な、プログラムを作ってみましょう。
> 前から、何度もやった、消費税の計算です。

> `’消費税の計算プログラム 「商品の値段は、いくらですか？」と、尋ねる。 税込価格＝それ×１．０５。 「値段は、｛それ｝円で、税込価格は、｛税込価格｝円です。」と、言う。 おわり。`

> ２行目で、ユーザーからの入力を、得ます。そして、ユーザーから入力された答えが、「それ」に、代入されるので、３行目で、それを用いて、税込価格を計算し、４行目で答えを表示します。

> 次に、鶴亀算を、解く計算です。
> （鶴亀算は、ご存知ですよね？・・・鶴と亀、頭の数の合計と、足の数の合計から、鶴が何羽いるか、亀が何匹いるかを計算するという、算術の基礎です。小学校の算数の時間に習ったはずですが、覚えてますか？）
> 鶴亀算は頭の体操に良いですね。ぜひ、自分で作ってみてください！

> `’鶴亀算の計算プログラム 「頭の数は、いくつですか？」と、尋ねる。 頭の数=それ。 「足の数は、いくつですか？」と、尋ねる。 足の数=それ。 鶴=(4×頭の数−足の数)÷2。 亀=頭の数−鶴。 「鶴は、｛鶴｝羽で、亀は、｛亀｝匹です。」と、言う。 おわり。 ｛例えば、頭が１０個、足が３２個で、計算してみてください。｝`

> ※注意：ここで、『足数』の代わりに、『足』を書くと、エラーが表示されます。これは、ひまわりの送り仮名が曖昧でも認識されるという機能によるもので、『足』を、足し算をする『足す』という命令と認識してしまうからです。

> 最後に、車の走行距離を、調べる計算です。
> 車の走行距離を求めるには、速度×時間ですよね？

> `’車の走行距離を調べるプログラム 「時速は、何キロですか？」と、尋ねる。 時速＝それ。 「何時間走りますか？」と、尋ねる。 走行時間＝それ。 走行距離＝時速×走行時間。 「時速｛時速｝キロで、｛走行時間｝時間走ると、｛走行距離｝キロ進みます。」と、言う。 おわり。`

> 難しいことはないですね？
> まとめておくと、・・・
> １）「尋ねる」で、ユーザーからの入力を得る。
> ２）ユーザーから入力された答えは、「それ」に入っているので、「それ」使って計算する
> ３）計算結果の表示
> ・・・と、なります。

> ・
> ・
> ・
> より日本語らしいプログラムにする

> ところで、上のプログラムを見ると、

> 「なになに」と、尋ねる。 変数＝それ。

> という形のプログラムがたくさん出てきます。
> この形が、日本語っぽいか？というと、あまり日本語っぽい気がしませんね。
> そこで、以下の形を覚えてください。これは、上のプログラムと同じ意味です。

> 「なになに」と、尋ねて、変数に、入れる。

> ひまわりでは、命令の助詞においては、自由な送り仮名をつけても良いことになっています。
> そこで、「尋ねる」に、「て、」をつけて、「尋ねて」と、活用させて、その後に、もう１つ文を繋げます。
> 「変数に、入れる」命令は、「変数＝それ」と、まったく同じ意味の命令です。
> 『変数は、それ』と書くと、どうも、変な日本語を書いている気がして仕方なかったので、『入れる』命令を追加したのです。
> それでは、車の走行距離を求めるプログラムを、日本語っぽく書き直して見ましょう。

> 「時速何キロですか？」と、尋ねて、時速に、入れる。 「何時間走りますか？」と、尋ねて、走行時間に、入れる。 走行距離は、時速×走行時間 「時速{時速}km/hで、{走行時間}時間走ると、 {走行距離}km進みます。」と、表示。

> ■ひまわりを使って経費削減に貢献！

> | こうして、変数に値を代入したり、計算させることを、考えてみると、ひまわりを使うことによって、あなたのパソコンが、「あなたの、忠実な僕（しもべ）に、なってくれるのだ！」ということが、分かって頂けるでしょうか。 ひまわりを使うことによって、あなたのパソコンが、パートのおばちゃんや、美人秘書にさえ、なってくれるのです。 簡単なプログラムを組むだけで、会社の人件費削減に貢献することがあるかも？！

## 宿題

> もう、今までに覚えたことを使えば、かなり、いろいろなことが出来ると思います。それでは、以下のプログラムを作って、本当にひまわりをマスターしたのか、実力をチェックしてみてください。

> 番号 | 問題
> １ | ある小売店の商品の値段計算ソフトを作ろうと思います。 この小売店では、商品の値段は、仕入れ値の１．５倍に、設定していますが、 会員になったお客さんには、２％の値引きをするという特典があります。 仕入れ値を入力すると、実際会員のお客さんが支払う金額を表示するような プログラムを作ってください。
> ２ | 自己紹介文を自動作成するプログラムを作ろうと思います。 ・名前 ・職業 ・趣味 などを、尋ね、それらをうまくつなぎ、自己紹介を表示するプログラムを、作ってください。
> ３ | インチからセンチへ変換するプログラムを作ろうと思います。 ユーザーから、何インチかを尋ね、ｃｍに変換した数を表示するプログラムを 表示してください。（１インチは、２．５４ｃｍです。）

ヒント

> →このページ
> →計算
> →変数について
> →文字列変数について

目次へ戻る／次へ