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

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

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

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

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

2018年10月26日にブロックエディター(V1)が新しくなりました。ブロックの外観が変わりましたが、使い方はほぼ同じです。当記事は今までのブロックエディター(V0)のブロックを基に記事を作成していますので、新しいV1ブロックエディターのブロックと見た目が異なりますので、ご了承ください。今後、順次新しく追加されたブロック等に対応していきます。

以下の説明とサンプルプログラムは、こちらのページの内容を私なりに、ブロックエディターと比較して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に表示するプログラム

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


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

記事内容についてお伺い


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


 

クロームブラウザーをご使用の方へ

当サイトへの訪問ありがとうございます。その際、グーグルクロームブラウザーをお使いの方にお知らせです。グーグルクロームブラウザーでは、2018年7月から、サイトにより以下の表示がブラウザーのアドレスバーに表示されます。当サイトでも表示されますが、心配ありませんのでご安心ください。
SSL案内1
これは、SSLと呼ばれるWebサイトとそのサイトを閲覧しているユーザとのやり取り(通信)を暗号化するための仕組みを使用していないためです。ネットショッピング、銀行サイトではパスワードやクレジットカードの情報を扱いますので、必須の仕組みです。当サイトでは、そのような情報を扱っておりませんので、暗号化は必須ではありませんが、訪問される方により安心していただけるように、SSL化を予定しております。このメッセージはSSL化完了まで念のため表示します。

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