当サイトは2020年小学生のプログラミング必修化に関して、関連する情報を纏めています。

Micro:bit(マイクロビット)で学ぶ 15

Micro:bit(マイクロビット)で学ぶ 15

前回の記事では、ブロックエディターのLEDブロック/ループブロックとmicropythonを対比しながら説明しました。今回は論理ブロック、変数ブロックと計算ブロックの紹介です。

当記事は、シリーズでマイクロビット(Micro:bit)のプログラミングについて紹介しています。初めての方はこちらをご覧ください。

2021年8月25日更新:Mu EditorがV1.1.0b5へバージョンアップされていますので、『Micro:bit(マイクロビット)で学ぶ 9』を参照して最新版を導入してみてください。ただし、当記事はV1.0.3を基にしていますので画面が異なっている場合があるかもしれませんが、プログラミング的には変わりはありません。

以下の説明とサンプルプログラムは、こちらのページの内容を私なりに、ブロックエディターと比較してmicropythonで記述する例を紹介しています。クラス、関数、モジュールなどは最初は難しいかなという事で説明を省き、サンプルプログラムを通して理解できればと考えています。

論理ブロックについて
 
ブロック micropython
1.もし…なら
microbit15-1
if 条件式:
命令
条件式が『真』の場合は命令を実行します。命令は複数可。条件式は4,5を見てください。
以下は、micro:bitを左に傾けると左矢印、右に傾けると右矢印をLEDに表示するプログラム

2.もし…なら…でなければ…
microbit15-2
if 条件式:
命令1
else:
命令2
条件式が『真』の場合は命令1を実行し、『偽』の場合はelseで記述した命令2が実行されます。命令1、2は複数可。条件式は4,5を見てください。
以下は、iがaより小さい間はLEDにiを表示して、iがaより大きくなったらLEDにEを表示するプログラム
3.もし…なら…
でなければもし…なら…
でなければ…
microbit15-3
if 条件式1:
命令1
elif 条件式2:
命令2
else:
命令3
条件式1が『真』の場合は命令1を実行し、『偽』の場合は条件式2が『真』の場合は命令2を実行し、『偽』の場合はelseで記述した命令3が実行されます。命令1、2、3は複数可。条件式は4,5を見てください。
以下は、Micro:bitを傾けるとLEDに傾けた方向の矢印をLEDに表示し、傾ていない時は?をLEDに表示するプログラム
4.条件式
microbit15-4
x == y  xとyが等しいと真(True)
x != y       xとyが等しくないと真
x > y        xがyより大きいと真
x >= y      xがy以上で真
x < y        yがxより大きいと真
x <= y      yがx以上で真
サンプルプログラムは1,2,3を見てください。
5.かつ、または、ではない 条件式
microbit15-6
microbit15-7
microbit15-8
条件式 and 条件式    左辺と右辺の条件が共に真の時に真
条件式 or 条件式       左辺か右辺の条件のどちらかが真の時に真
not 条件式               条件式ではない時に真


以下は、3のサンプルプログラムにpin0を触っている時だけLEDに矢印を表示するように『かつ』の条件式を追加したプログラム
変数ブロック/計算ブロックについて
 
ブロック micropython
1.変数
microbit15-9
microbit15-10
変数とは、値を保存しておく箱のようなものです。その箱に名前をつけて、プログラム内でその名前を使うと、箱の中の値を使う事ができます。箱の中に保存する値は『数字』、『文字』、『リスト』などです。なぜ、そのような事をするのでしょうか?例えば、LEDに0,1,2,3と表示する場合を考えてみましょう。
以下は変数を使わない場合です。
display.show(‘0’)
display.show(‘1’)
display.show(‘2’)
display.show(‘3’)
以下は変数を使った場合(nという箱に0,1,2,3が代入されてdisplay.show命令が繰り返されます)
for n in range(4)
display.show(n)
上の例では0から3でしたが、0から100だとしたら、変数を使わないと101回同じ命令を記述しなくてはなりませんので、大変です。
変数の箱の中に値を保存するには、以下のように代入します。

x = 10     xという変数に10を代入 。
y = ‘Book’     yという文字列変数にbookを代入。
z = [‘animal’, ‘fish’, ‘bird’]    zというリスト変数に3つの文字列を代入。変数を1だけ足すには、以下のようにします。算数と違いますので、注意してください。詳しくは2の計算を見てください。
x = x + 1
xは先ほど10を代入してありますので、この命令後にxは11となります。xを変えたくなければ、違う箱に入れます。この場合、xは10のままでxxが11となります。
xx = x + 1変数名は、アルファベット大文字、小文字、数字、_ が使えます。但し、最初の文字は数字は許されていません。1aは変数名として使えません。a1,abc10,xx_yyは正しい変数名です。
2.計算
microbit15-11
microbit15-12
microbit15-13
 四則演算は、以下のように記述します。1の変数でも説明の通り、算数と違い計算結果は左側になります。以下の例ではy = 10、z = 5と変数の箱に値が入っているものとします。
足し算 x = y + z   結果は x = 15 
引き算 x = y – z          結果は x = 5
掛け算 x = y * z          結果は x = 50
割り算 x = y / z          結果は x = 2
階乗  x = y ** z        結果は x = 100000乱数は、以下のように記述します。最初にrandomモジュールを使えるようにする必要があります。他にも関数はありますが、代表的なものをここで紹介します。他の関数についてはこちらを参照してください。
from microbit import *
import random

x = random.randint(0, 4)
結果はxには0,1,2,3,4のいずれかが代入されます。
『真または偽をランダムに選ぶ』は、上の関数をrandom.randinit(0,1)のように指定して0なら『真』、1なら『偽』と考えてプログラムします。
以下は、0から4の乱数に応じたアイコンをLEDに表示するプログラム

論理ブロック、変数ブロックと計算ブロックについての紹介は以上です。次の記事では高度なブロックの紹介をします。


最後まで記事をお読みいただきありがとうございます。
記事の改善に役立てたいと思いますので、よろしければアンケートにご協力ください。

記事内容についてお伺い


    良く解る解る解りにくい部分がある解りにくい 


     

    マイクロビットカテゴリの最新記事