Skip to content

アクティビティ

Odd and even numbers

中級 | 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ディスプレイに「even」という単語が表示されます。 それ以外の場合は、「odd」という単語を表示します。
  • When different things can happen based on different conditions in a computer program like this, it is known as selection. You'll find key terms like selection explained in our vocabulary posters and glossary.

必要なもの

  • 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: 改善する

  • Find a way to show the random number chosen more than once.
  • If you press button B before pressing button A, no random number will have been chosen and the LED display will show the word 'even'. Can you adapt the code so this doesn't happen? Look at the Python version of the program for an idea of how.
  • Adapt the program to explore other factors of numbers, for example, if 3 is a factor of 100.