Lesson8:変数

Codey Rockyで学ぶ大人のロボットプログラミング講座は、今回で8回目で、一旦最終回です。
これまで、以下のようなテーマで続けてきました。
第一回:プログラミングとは
第二回:イベントとは
第三回:順次処理とは
第四回:繰り返し処理とは
第五回:条件分岐処理とは
第六回:演算とは
第七回:定義とは

今回のテーマは、「変数」です。ここまで、「かじれば」、とりあえず、ロボットプログラミングってどういう感じで進めていくかのイメージはつかめると思います(笑)

さて、変数については、初めてプログラミングに挑戦する人にとっては、なかなか、すぐにイメージが掴みにくいテーマかも知れません。

例えば、↓のようにCodey RockyのLEDパネルの数字を段々変えていくような場合に、変数を使います。「Aボタンを押すと、255から1ずつ減っていき、0で止まる」というプログラムを変数を利用して作っています。

 

■Lesson8の目標

・プログラミングにおける、変数の基礎を理解する
・mBlock5のブロックプログラミングにおいて、変数ブロックを作成し、それを使ったプログラムの作り方を理解する

■Lesson8で準備するもの

Lesson1と同じです。
・Makeblock社のCodey Rocky(アマゾンとかで\13000くらいです)
・PC(windoows10 or mac)※こちらの講座ではWindows10で話を進めます。
・mBlock5 ※PCにダウンロードして使います。無料でダウンロードできます。
 

キーコンセプト:変数とは

 変数とはデータ(文字・数・センサーの値etc)を記憶しておく入れ物のことです。一つの「変数=入れ物」には、一度に一つしかデータを入れておくことが出来ません。新しくデータを入れると、それまで「変数=入れ物」に入っていたデータは、消えてしまいます。

 複雑なプログラムになっていくと、いくつもの種類のデータを使いますので、そのデータごとに、「変数=入れ物」をいくつも作ります。その為、その変数には、必ずプログラムを書く人が名前を付ける必要があります。これを「変数名=入れ物の名前」といいます。

 変数名は、どのような名前でも良いですが、中にどんなデータが入っているか、分かるような名前にする必要があります。例えば、CodeyRocky「照度センサーの値」を入れる変数=入れ物には、「照度センサー」のような名前を付けます。 っと言葉で言っても、何言ってるんだか分かりませんね(笑)

↑の動画のプログラムは、こんな感じです。

mBlock5による変数プログラム説明1

↑の薄いオレンジ色のブロックが、変数に関するブロックです。各ブロックの役割ですが、

変数プログラム説明2

ポイントは、↓変数名「数字」の丸いブロックが入れ物で、その中に数字が入っているというイメージを持つことですかね。

変数プログラム説明3

このブロックの中に「数字や文字やセンサーデータが入るイメージ

 

変数=入れ物の中にどんなデータを入れるかどうかを決めるブロック

変数プログラム説明4

変数=入れ物の中のデータを●●ずつ変えていくブロック

変数プログラム説明5

mBlock5での変数の作り方・使い方

変数ブロックは、自分で作る必要があります。覚えてしまえば簡単です。

手順は
1、ブロックパレットの変数タブをクリック
2、変数を作るをクリック
3、変数名を任意で設定

↓が変数ブロックの作り方動画です。

 

ちなみに、動画の中で、「全てのスプライト用」と「このスプライトのみ」とあります。
「全てのスプライト用」はグローバル変数と呼び、これを選択すると、その変数は、mBlockのステージを含むすべてのスプライトから利用できます。
「このスプライトのみ」はローカル変数と呼び、これを選択すると、その変数は、他のスプライトから変更され内容になります。

Scrachでは、スプライトは、画面上のネコ(mBlockでいうパンダ)をさします。プログラムで動かす対象ですね。一方、mBlockを使ったロボットプログラミングにおいては、スプライトと同じ位置づけに「デバイス」とあります。デバイスは当然ながら、PC画面上にはない、Codey Rockyなどのロボットを指します。

例えば、デバイスをCodeyRocky以外にも足した場合は、そのデバイスの中全てで対象(グローバル変数)であるか、そのデバイスのみを対象(ローカル変数)にするかという設定ができる事になります。

↓の動画は、デバイスに、Codey Rockyに加え、mBotを追加し、「数字」のグローバル変数を作った例です。Codey Rockyの変数パレットだけじゃなく、mBotの変数パレットにも「数字」が追加されているのが分かります。

 

まとめ:変数=入れ物

「変数」という言葉だけを見ると、何かの数というイメージを持ってしまいますが、プログラミングにおいては、数ではなく「入れ物」と考えましょう。

具体的には、↓のブロックが入れ物で、その中には、数字というデータを入れるイメージです。

変数プログラム説明3

このブロックの中に入る数字や文字やセンサーデータが入るイメージ