microbit 配列を使った数字の扱い方を知ろう!

micro:bitでプログラミング
この記事は約8分で読めます。

こんにちは、ナナです。

プログラミングの世界せかいには「配列はいれつ」とばれるものがあります。配列を使うことで情報じょうほうをまとめてあつかうことができます。

そのため、本格的ほんかくてきなプログラムの中には、たくさんの「配列」が登場とうじょうするのです。

この記事きじでは、次のことを学習がくしゅうできます。

この記事で学習できること
  • 「配列」って何なの?
  • 「配列」をプログラムで使おう
  • 「配列要素数」「配列要素」「配列インデックス」とは何?
  • 配列インデックスを使った配列の使い方とは?
  • 「配列の長さ」「配列番号の値取得」ブロックの使い方とは?

では、makecodeを使った、配列の扱い方をまなんでいきましょう。

スポンサー

プログラムで使う「配列」って何なの?

師範しはん!今日のテーマは「配列はいれつ」というものですね。はじめて知る言葉です。いったい「配列」っていったい何なのでしょうか?

ナナ
ナナ

そうだね。「配列」という言葉はプログラミングの世界せかいではよく使われますが、プログラミングをしたことがない人は聞いたことがないかもしれません。

「配列」というもの自体じたいむずかしくはないんですよ。

まずは「変数」をおさらいしよう!

みなさん、ここまで「変数へんすう」というものをたくさん使ってきましたね。

変数は数字を覚える箱

「変数」とは、このように数をおぼえておくためのはこのことでした。

変数を連続で並べたものを「配列」と呼ぶ!

「配列」とは「変数」をいくつもならべたもののことを言います。

配列のイメージ図

このように”連続”で並んだ変数のことを「配列」と呼ぶのです。

スポンサー

「配列」をプログラムで使ってみよう!

師範!「変数」が並ぶと「配列」というものにが変わるんですね。この「配列」というのはブロックではどのように作るのでしょうか?

ナナ
ナナ

実は「配列」というブロックは存在しません。「変数」ブロックを使うことで「配列」を作り出します。

では「配列」をブロックを使って作ってみましょう。

「変数」ブロックを使った「配列」の作り方

それでは「変数へんすう」ブロックをまずは作成さくせいしましょう。

変数ブロックで変数を作る

変数の名前は好きに決められますが、今回は「連続れんぞくならんだ変数」としておきましょう!

高度こうどなブロック」の中にある配列はいれつブロック一覧いちらんの中の「配列要素はいれつようそ設定せってい」ブロックを選択せんたくします。

配列に数を設定ブロック

ブロックの変数を次のように、作成さくせいした変数名へんすうめいの「連続れんぞくならんだ変数」に変更へんこうしましょう。

作った変数名を選択する

配列の中に設定せっていしたい数値すうちを「10」「20」「30」「40」「50」として設定しましょう。「-」「+」を選択せんたくすることで、配列としてならべる変数の個数こすう変更へんこうすることができます。

配列に個数と数値を設定する
ナナ
ナナ

「配列」の個数こすうはいくつでもやすことができますよ!

このブロックを「最初さいしょだけ」ブロックに合わせて、プログラムが動き出したときに配列に数値すうち設定せっていできるようにしておきましょう。

最初だけブロックで初期化

これで「配列はいれつ」としての数字のならびが作成できました。次のような配列を作ったことになります。

配列に設定された値

「配列要素数」と「配列インデックス」とは

少しむずかしい用語ようごかもしれませんが、「配列」をあつかうときの用語を3つおぼえましょう!

「配列」を扱うときのプログラミング用語
  • 配列要素数はいれつようそすう
  • 配列要素はいれつようそ
  • 配列はいれつインデックス

配列として用意よういしたはこ個数こすうのことを、プログラミング用語ようご配列要素数はいれつようそすうと呼びます。また、配列としての1つの箱のことを配列要素はいれつようそと呼びます。

配列要素数と配列要素

この「配列要素」の中に数値が保存ほぞんされているわけですが、プログラムから数値を読み書きするためには「配列はいれつインデックス」と呼ばれる番号ばんごう利用りようして行います。

配列インデックス番号

注意ちゅういするのは「配列インデックス」の番号ばんごう「0」からはじまる連番れんばんになっていることです。

ナナ
ナナ

今回のれいでは「配列要素数」は「5個」。「配列インデックス」の番号は「0~4」の範囲はんい指定していできることになります。

配列インデックスの最後さいご番号ばんごうは「4」であることに注意ちゅうい必要ひつようですよ!

スポンサー

「配列インデックス」を使って「配列」を使ってみよう!

師範!「配列」の「配列要素はいれつようそ」や「配列インデックス」の意味いみはわかりましたが、これがプログラムとどんな関係性かんけいせいがあるのですか?

ナナ
ナナ

「配列インデックス」を使うと、番号ばんごうを使って配列要素に順番じゅんばんに読み書きができるんだよ。これが「配列」の便利べんりさだね。

それでは実際に「配列インデックス」を使って、配列の中の数字を取り出してみましょう!

「配列の長さ」ブロックと「配列番号の値取得」ブロックの使い方

配列を使うプログラムでよく登場とうじょうするのがこの2つのブロックです。

配列を扱うときのブロック

「配列番号の値取得」ブロックは、配列インデックスの番号で指定した『配列要素の値』を取得するためのブロックです。

配列を扱うためのブロックの使い方

そして、「配列の長さ」ブロックは、『配列要素数』を調べるためのブロックです。

ナナ
ナナ

これらのブロックは配列を使う時によく使いますよ。配列番号は「0」から始まることに注意です。「2」という番号は3個目の配列要素ですよ!

「配列の長さ」と「配列番号の値取得」ブロックのプログラミング

「配列番号の値取得」ブロックでは、配列インデックスを指定していすることで数を取得しゅとくできます。

この番号は「0」から始まる番号のため、「カウンター付き繰り返し」ブロックと組み合わせると力を発揮はっきします。

それでは、配列の中の数字を順番じゅんばんにLEDに表示するプログラムを作ってみましょう。

ループを使った配列アクセス

このプログラムを動かすと、LEDに「10」~「50」の数字が順番に表示されます。

注意ちゅういするのは「カウンター」変数のかえ範囲はんいですね。配列インデックスは「0」~「4」の範囲で指定していする必要ひつようがあります。

「配列の長さ」は「5」のため、かえ範囲はんいを「配列の長さ-1」をすることでループカウンターの値を「0」~「4」として範囲はんいを合わせています。

プログラムの動作どうさしめすと、次のように配列の数値を取り出しています。

ループで配列にアクセスするイメージ図
ナナ
ナナ

「配列要素数-1」をすることで、配列インデックスの最後さいご番号ばんごうを作っています。これはプログラミングの世界せかいではよく使われるテクニックなんです。

スポンサー

質問コーナー:配列で気になること

ナナ
ナナ

「配列」に関する質問をしてもいいよ!

質問:配列インデックスの番号を間違えてしまった場合はどうなるの?

師範!「配列」の配列インデックスには、指定していできる範囲はんいがあるんですよね。もしも、間違まちがえて配列インデックスに「5」を指定してしまった場合ばあい、どうなっちゃうんですか?

配列インデックス範囲外
ナナ
ナナ

「配列」を使う時には、このように範囲外はんいがいとなる配列インデックスの番号ばんごう指定していしてはいけません。

範囲外はんいがいの配列インデックスの番号を指定していして、LEDに数を表示すると「Not a Number(数値すうちではない)」という意味いみの「NaNナン」と表示されます。

配列インデックスを間違えた時の結果

「配列の」範囲外はんいがいを読み書きすることを「配列のオーバーラン」と呼びます。

必ず、配列インデックスの最後は「配列要素数-1」までとなるようにプログラミングする必要があります。

ナナ
ナナ

「配列のオーバーラン」はプログラミングのミスでよくやってしまう問題もんだいの1つなんです。気を付けましょう!

スポンサー

やってみようコーナー:配列を使ったプログラミングの巻

ナナ
ナナ

それじゃあ「配列」ブロックを使ったプログラムを作ってみようね!

修行その1:「配列」ブロックを使ったプログラム

修行内容:メロディを配列を使って鳴らしてみよう!

いいこと思いついちゃった!。配列を使って音を順番じゅんばんらせないかしら?

メロディって「音」がならんだものよね。つまり、「音の配列」がメロディってことよ。みんな、メロディを配列で鳴らしてみてよ、お願いねっ!

「音の配列」は”メロディ”である!

みんな、彼女のこのアイデアをプログラムで作ってあげてください。

「きらきら星」を配列で鳴らすプログラム
  • 音の配列として「きらきら星」変数を作ること
  • 「きらきら星」変数には「ドドソソララソ ファファミミレレド」を設定せっていすること
  • 「カウンターり返し」ブロックを使って、配列から音を取り出して音を鳴らすこと
  • きらきら星のメロディをらし終わったらふたたび、最初さいしょかららすこと

音の設定せっていは「音階おんかい」ブロックを使うことでできます。次のように配列に設定しましょう。

音階ブロックを配列に設定する

音を鳴らさない「無音むおん」に関しては、次のように「音階おんかい」ブロックに「0」を設定せっていすることで作ることができます。

無音の作成

みんな、やったわ。プログラムを使うとこんなこともできるのね。

いろいろなメロディを「配列」の中に入れておけば、いつでも音楽を出せそうだわ。

きらきら星のプログラム
ナナ
ナナ

このように「音」の情報じょうほうを配列でまとめて管理かんりすることができるんです。これが配列の便利べんりさなんですよ。

次に学ぶこと