連載プロデルでプログラミング入門の2話目です。今回は、「変数」の話です。
前回、計算する方法を紹介しましたがコンピュータは計算だけでなく、その結果を覚えておくことも得意です。今回は、値を記憶したり、記憶した値を思い出すための「変数」という機能を使います。
覚えておく
「変数」とは、数値や文字列などの値を、メモリ上に記憶しておくための「箱」のような存在です。変数には値を1つだけ格納できます。
中学校の数学でも「変数」という言葉を習いますが、数学の変数とは違い、プログラミングの世界の「変数」は単なる記憶する場所と理解した方が良いでしょう。
プロデルで変数を使う
変数を使うには、次の3つの操作をプログラミングします。
- 変数の宣言 (用意する)
- 変数への値の代入 (入れる)
- 変数の値の参照 (取り出す)
1. 変数の宣言 (用意する)
プログラム中でこれから使う言葉をプロデルに教えることを「宣言する」といいます。つまり「変数の宣言」とは、これから使う変数の名前を教えることをいいます。
例えば、プロデルで「プレゼント」という名前の変数を宣言するには、次のように書きます。
【プレゼント】
【《宣言したい変数の名前》】 と書くと、《宣言したい変数の名前》の部分に書いたものが変数の名前として宣言されます。
変数には、次の文字を使って名前を付けられます。
- ひらがな
- カタカナ
- 漢字
- 英数字
ただし、空白文字と記号文字を含む名前は宣言できません。また数字だけや数字から始まる名前もNGです。
またプロデルでは、全角と半角、大文字と小文字を区別しません。例えば、『abc』という名前と『ABC』という名前は、同じものと判別されます。
なお、変数を宣言しただけで、値が入っていない状態のことを「無」と言います。
2. 変数への値の代入 (入れる)
次に宣言した変数に値を記憶させて見ましょう。変数に値を入れておくことを「代入する」と言います。代入するには、「代入文」と呼ばれるプログラムを書きます。
代入文には、4つの書き方があります。書き方は違いますがすべて意味は同じです。
プレゼントは「車のおもちゃ」
プレゼントへ「車のおもちゃ」を代入する
プレゼント=「車のおもちゃ」
プレゼントを「車のおもちゃ」とする
なお、「=」記号を使った代入文は、プロデル以外のプログラミング言語でも一般的な書き方です。
プログラミングの世界では、『○○=■■』を『○○へ■■を代入する』などと読むのがよいでしょう。数学のように『○○は■■と等しい』とは読むのは正しくありません。
必ず右辺の値から左辺の変数へ入る
代入文は、必ず右辺から左辺へ代入します。そのため次のように書くことはできません。
「車のおもちゃ」は、プレゼント //×
「車のおもちゃ」=プレゼント //×
3. 変数の値の参照 (取り出す)
最後に、変数に代入した値を取り出してみましょう。変数の中身を調べるには、「表示する」もしくは「報告する」を使うが便利です。
次のプログラムは、変数を宣言し、文字を変数に代入して、その変数の内容を表示するプログラムです。プログラムは、1行目から順番に実行されます。
【プレゼント】
プレゼントは「車のおもちゃ」
プレゼントを表示する
宣言と代入を一度に書く
変数の宣言は、その変数を初めて使うときに書けばOKです。そのため次のようにまとめて書くこともできます。
【プレゼント】は「車のおもちゃ」
プレゼントを表示する
さらに多くの場合、【 】で変数の宣言をせずに、いきなり変数を使うこともできます。この場合、宣言していない名前へはじめて代入しようとした時に、その名前の変数が宣言されます。短いプログラムであれば、変数の宣言を省略してもOKです。
プレゼントは「車のおもちゃ」
プレゼントを表示する
ただ変数の名前に「てにはへ」などの助詞となる文字が含まれる場合や、プログラムが複雑になった際には【 】で宣言を書く必要があります。
【このは】は「茶色」
このはを表示する
変数に入れられる値は1つ
変数には、値を1つだけ入れることができます。すでに変数に値が入っている時に、さらに値を入れると、それまでに入っていた変数の値は、メモリ上から完全に消えてしまいます。
【プレゼント】は「車のおもちゃ」
プレゼントを報告する
プレゼントは「熊のぬいぐるみ」
プレゼントを報告する //「車のおもちゃ」は消えてしまう
計算結果を記憶する
第1話目の計算するプログラムでは、計算式に数字を書いて計算させました。計算式で、数字の代わりに変数の名前を書くと、その変数に入っている値を取り出して計算してくれます。
ジャガイモは、150
人参は、120
ジャガイモ+人参を報告する
また変数に計算結果を記憶することもできます。変数へ代入するときに計算式を使います。そうすると、計算結果が変数に代入されます。
ジャガイモは、150
人参は、120
金額は、ジャガイモ+人参
金額を報告する
それでは、カレーの材料を買うのにかかる金額を計算するプログラムを作ってみましょう。材料の合計から消費税も計算しましょう。
ジャガイモは、150
人参は、120
豚肉は、250
カレールーは、210
小計は、ジャガイモ+人参+豚肉+カレールー
消費税は、小計*0.08 //食べ物の消費税は8%
金額は、小計+消費税
「材料費は[金額]円です。」と報告する
変数と文字列と繋ぎ合わせる
上記の金額を計算するプログラムでは、最後に「材料費は○○円です。」と計算結果とメッセージを組み合わせて、報告できるようにしました。
画面に表示したいメッセージは、「 」で囲むことで指定できますが、「 」の中に変数を書いてもその変数の名前が表示されてしまいます。
「材料費は金額円です。」と報告する //金額と書いてもそのまま表示されてしまう
「 」の中で変数に入ってる値を使うには、変数名を[ ]で囲います。
「材料費は[金額]円です。」と報告する
プロデルでは、「 」の中で変数や計算式を[ ]で囲むと、その変数を取り出したり、計算式を計算した結果を、前後の文字列と繋ぎ合わせて表示させることができます。これを式展開と言います。
ボディマス指数を計算する
ボディマス指数(BMI)という肥満度を表す数値を計算するプログラムを作ってみます。
BMIは、次の計算式で計算できるそうです。
右辺をプロデルの計算式にすると、『体重/身長^2』となります。実際に体重と身長を代入してBMIを計算するプログラムにしてみます。身長がメートルであることに注意しましょう。
体重は、54
身長は、1.60
BMI=体重/身長^2
BMIを報告する
この体重と身長は適当ですが、実行すると21.093となりました。普通体重だそうです。
あなたの体重と身長を入れてBMIを計算してみましょう。
ユーザに値を入力してもらう
折角なので入力してもらうための画面を表示させてみましょう。「聞く」と書くと、プログラム実行中にユーザに値を入力してもらうための画面が表示できます。入力画面で入力した値は、そのまま変数に代入することができます。
「体重(kg)」を聞いて体重とする
「身長(cm)」を聞いて身長とする
BMI=体重/(身長/100)^2
BMIを報告する
練習問題
最後に復習も兼ねて練習問題です。今回勉強したプログラムを組み合わせて、次のようなプログラムを作ってみましょう。
『ユーザに名前を入力してもらい、挨拶と共にその名前を表示するプログラム』
答えはありませんが、説明を読んでいれば、きっと作れるはずです。頑張りましょう。
ヒント:「名前」という変数を宣言しましょう。
次回もお楽しみに!
※当ブログの記事の著作権はゆうとにあります。プロデルに関係が無い目的で、文章や図表,プログラムを複製, 改変, 移植して掲載することを堅く禁止します