今回はScratch(スクラッチ)を使って、配列やリストの考え方をわかりやすく解説します。
- 配列って何?
- スクラッチのリストってどう使うの?
- 配列・リストを使うメリットは?
これらの疑問に、なるべく難しい言葉を使わずに答えました。お子さんに説明する際の参考にしてください。
なお、この記事は変数が分かる前提で進めます。変数について知りたい方は、先に「【子ども向け】変数の使い方を学ぼう!スクラッチ(Scratch)でわかりやすく解説」をお読みください。
配列とは
変数がひとつの箱に例えられるなら、配列は同じ形・同じ大きさの箱をいくつも並べたものです。
ひとつひとつのデータ項目(要素といいます)は、配列の名前と何番目の項目か表す番号で区別されます。
この番号のことを、添字やインデックスといいます。
リストの使い方 スクラッチを使って解説
では、スクラッチでリストを使ってみましょう。
スクラッチはリストで複数のデータをあつかいます。
配列とリストはデータの保管の仕方にちがいがありますが、基本的な考え方は同じです。
リストを作る
1.変数カテゴリにある「リストを作る」をクリック
2.リスト名を入力して「OK」をクリック
- すべてのスプライト用(グローバル変数)
ステージとすべてのスプライトから使える変数 - このスプライトのみ(ローカル変数)
この変数を作ったスプライトのみ使える変数
3.空のリストができました
リストのステージモニターと、リストをあつかうブロックが出てきます。
手動でリストを編集する
リストのステージモニターを使って、リストの内容を手動で編集できます。
リストの項目(要素)は、1から始まる添字で管理されます。長さは項目の数を表しています。
項目を追加する
左下の「+」をクリックすると、リストの一番後ろに項目を追加できます。
項目を挿入する
特定の位置に項目を差し入れるには、項目をクリックして選んで、Enterキーをおします。
ShiftキーをおしながらEnterキーをおすと、前に挿入できます。
項目を削除する
項目を選んで、右にある「×」をクリックすると、項目を消すことができます。
プログラムでリストを編集する
「(なにか)をリスト▼に追加する」ブロック
リストの一番後ろに項目を追加できます。
「リスト▼の1番目に(なにか)を挿入する」ブロック
指定した位置に項目を挿入できます。
「リスト▼の1番目を(なにか)で置き換える」ブロック
指定した位置の項目の内容を置きかえることができます。
「リスト▼の1番目を削除する」ブロック
指定した位置の項目を消すことができます。
「リスト▼のすべてを削除する」ブロック
リストの項目をすべて消すことができます。
リストのデータを参照する
リストに保存したデータは変数と同様に、内容を表示したり、計算などに使うことができます。
「リスト▼の1番目」ブロック
指定した位置の項目の内容を返します。
「リスト▼中の(なにか)の場所」ブロック
リストの1番目から順番に(なにか)とぴったり合う項目を探し、見つかった項目の添字を返します。
(なにか)がリスト内に複数あった場合、一番最初にあった項目の添字を返します。
リストに(なにか)がなかった場合、0を返します。
「リスト▼の長さ」ブロック
リストの長さ(項目の数)を返します。
「リスト▼に(なにか)が含まれる」ブロック
リストの中に、(なにか)とぴったり合う項目があるか調べます。
1つでもぴったり合う項目があった場合、真(True)を返し、なかった場合は偽(False)を返します。
真と偽って何?ってことですが、カンタンに言うと
- 真はそうだよ
- 偽はちがうよ
という意味。英語で、真はtrue、偽はfalseと表現されます。
真偽値については「論理演算(かつ・または・ではない)とは?スクラッチ(Scratch)を使って解説」でくわしく解説しています。
読み込みと書き出し
リストを右クリックして「書き出し」をクリックすると、リストの中身を書き出すことができます。
また、「読み込み」をおすと、データを読み込むことができます。
書き出されたリスト
配列・リストを使うメリット
ネコとイヌのスプライトを使って、2パターンのプログラムを作りました。
・ネコのプログラム
・イヌのプログラム
どちらも1週間分の気温の平均を計算するプログラムです。
ネコはリストを使用、イヌはリストを使わず、変数に1日ずつ気温を保存してあります。
もしも項目の数が増えたら…
もし、平均を出す期間を1週間分から1ヶ月分にしたくなったらどうでしょう?
変数に1日ずつ気温を保存していた場合、増えた日数の分だけ変数を増やす必要があります。
20個以上も変数を追加して、気温の合計に足していくプログラムを追加するのはちょっとめんどうですね。
電たくを使って計算したとしても、たくさんのデータを打ちこむのは大変な作業です。
とちゅうでどこまで計算したか忘れてしまうかも。
リストを使えば、リストの項目を増やすだけでプログラムを変える必要がありません。
プログラムだったら1ヶ月分でも、1年分でも正確に計算してもらえます。
・同じ性質の変数をたくさん作る必要がなくなる。
・変更に強いプログラムになる。
まとめ
配列とは、同じ型のデータ項目を並べたデータ構造のこと。
変数がひとつの箱に例えられるなら、配列は同じ形・同じ大きさの箱をいくつも並べたものです。
それぞれの要素は配列の名前と添字で管理されます。
下の記事では、Scratchのリストを使ってアルファベットを点字に変換するプログラムを紹介しています。よかったら読んでみてください。