Skip to content

活動

奇数と偶数

中級 | MakeCode, Python | LED表示, ボタン | アルゴリズム, 割り算, 抽出, 数値を入力

ステップ1: 作る

説明

BBC micro:bitで数学ゲームをプレイしよう! 1 から 100 までのランダムな数字を選択するようにプログラムします。 数字が奇数か偶数かを決めて、micro:bitを使って正しいかどうかをテストできます。

以下の2つのビデオで、何を作り、どのようにプログラミングするかご案内します。

学ぶこと

簡単な数学アルゴリズムをコードに変換する方法、コンピュータ プログラムで選択を使用する方法、数値を割ってその余りを使用する方法を学びます。

コーディングではなく数学のスキルに重点を置いた学習をしたい場合は、すぐにダウンロードできる既製のコードをご利用いただけます。 「MakeCodeで開く」をクリックするか、下のhexファイルをダウンロードしてください。

動作の仕組み

  • このプログラムは、数字が奇数か偶数かを判断するアルゴリズムに基づいています。 このアルゴリズムは、数字を 2 で割って余りが 0 であれば、その数は偶数であると指示します。 それ以外の場合は奇数です。
  • A ボタンを押すと、プログラムが 1 から 100 の間のランダムな数字を選び、micro:bit の LED ディスプレイに表示します。 (プログラムはゲームを何回も楽しめるように、毎回同じ数字ではなくランダムな数字を選びます。)
  • B ボタンを押すと、プログラムが数字を 2 で割り、余りを計算します。
  • 次に、プログラムは「‘if… else」命令文を使用します。 割った余りが 0 の場合、micro:bit の LED ディスプレイに「偶数」という言葉が表示されます。 それ以外の場合は、「奇数」という言葉が表示されます。
  • このように、コンピュータプログラムで条件が異なると違うことが起きることを、選択といいます。 選択などの重要な用語については、語彙ポスター用語集で説明されています。

必要なもの

  • micro:bit(またはMakeCodeシミュレーター)
  • MakeCodeまたはPythonエディター
  • バッテリーパック(オプション)

ステップ2: プログラムする

1from microbit import *
2import random
3
4# An error could appear if you press button B without pressing button A first.
5# If the variable ‘number’ has not been assigned.
6# To work around this, the value of 101 is assigned to the variable 'number' 
7# at the start of the program. When you press button B the program tests 
8# first to see if the value of ‘number’ is 101 - if it is, it shows a helpful message.
9
10number = 101
11
12while True:
13    if button_a.was_pressed():
14        number = random.randint(1, 100)
15        display.scroll(number)   
16    if button_b.was_pressed():
17        if number == 101:
18            display.scroll('no number chosen yet') 
19        elif number%2 == 0:
20            display.scroll('even')   
21        else:
22            display.scroll('odd') 

ステップ3: 改善する

  • ランダムに選択された数字を複数回表示する方法を見つけましょう。
  • A ボタンを押す前に B ボタンを押すと、ランダムな数字が選択されていないので、LED ディスプレイに「偶数」という言葉が表示されます。 そうならないようにプログラムを修正できますか? このプログラムの Python バージョンを見て、方法のアイデアを得ると良いでしょう。
  • プログラムを調整して、3 が 100 の因数であるかどうかなど、他の因数も試してみましょう。