この講座では、変数のひとつである「リスト」をつかったプログラミングを勉強します。
リストをつくる
変数は、データをいれる入れものでした。リストは変数のひとつで、変数がならんだ変数です。ちょっとわかりにくいですね。では、じっさいにリストをつかってみましょう。つかってみればすぐわかるはずです。新しいプロジェクト「ネコとじゃんけん」をつくります。

データの中にある、「リストを作る」をクリックします。

リスト名に「じゃんけん」と入力してOKをクリックしてください。

リストにかんけいするコマンドが作成されるはずです。

これで、うえの図のように「じゃんけん」という変数ができました。入れものがならんでいるのがリストのとくちょうです。今回は入れものを3つだけつかいますが、じっさいは何個でも入れものを追加することができます。
では、つくったリストをつかってみましょう。
リストを初期化する
変数と同じように、リストも初期化しましょう。今回は、ネコとじゃんけんをしたいので、グー、チョキ、パーというデータでリストを初期化します。

「データ」の中にある「thing を じゃんけん に追加する」をおいてください。このコマンドによって、リストにデータをいれることができます。

今回はグー、チョキ、パーをいれたいので、「thing を じゃんけん に追加する」を3つならべて、それぞれのデータを「じゃんけん」に追加します。

実行するまえに、ステージをみてみると、リスト「じゃんけん」の中身を見ることができます。リストをつくったばかりではからっぽですが、実行してみると・・・

リストの中に3つのデータが追加されました。リストの中にあるデータは、追加したじゅんばんにならびます。

これで、リスト「じゃんけん」には3つのデータがはいりました。では、さっそくこのリストをつかって、ネコとじゃんけんしてみましょう。
リストつかってじゃんけんしてみよう!
ネコにじゃんけんさせるにはどうすればいいでしょう? 今回は、ネコにリスト「じゃんけん」のなかにあるデータ(グー、チョキ、パー)のひとつを言うようにします。今回のスペックは以下です。
- リスト「じゃんけん」をつくり、「グー」「チョキ」「パー」の3つのデータで初期化します。
- 実行するとネコが「グー」「チョキ」「パー」のどれかを言います。
ネコにおしゃべりさせるには「Hello!と言う」コマンドをつかえばいいのはもう知ってますね。もんだいは「グー、チョキ、パーのどれかを言う」ところです。

「リストの中のどれか」をえらぶには、「データ」の中にある「1番目(じゃんけん)」をつかいます。この「1」の部分は、下のように入力したり、えらんだりできます。
- 1や2といった数字 ・・・ 数字の場所にあるデータをえらびます。
- 最後 ・・・ リストの最後のデータ(最後に追加したデータ)をえらびます。
- 乱数 ・・・ リストの中のどれかをえらびます。
今回は、どれかを言いたいので、「乱数」をえらんでください。これで実行すると、ネコがリストの中のどれかをいいます。どれかをいうので、なにを言うかは実行しないとわかりません。
これで完成! といいたいところですが、リストをつかう場合はやっておくことがあります。それは、「後処理」です。後処理は、スクリプトのさいごにやる処理です。

なぜ、後処理が必要なのでしょうか? それは、上でつくったスクリプトを実行すればよくわかります。もう気がついた人がいるかもしれませんが、2回実行すると、リストのデータは2倍になってしまいます! スクリプトがおわっても、リストの中身はそのままなので、初期化するたびにデータがどんどんふえてしまうのです。
スクリプトはリスト「じゃんけん」の「グー」、「チョキ」、「パー」だけをつかいます。もちろん、データがふえてもじゃんけんには問題ありませんが、よけいなことをするスクリプトは、効率がわるくなりますし、よきせぬ動きをしてしまったり、バグとよばれる「プログラムの中の問題」ができてしまう可能性があるからです。
必要のないデータや、必要のない処理をスクリプトに書くのは、かっこよくありません。

どんどんふえてしまうデータをふせぐためには、スクリプトがおわったときに、使いおわったデータをおかたづけする「後処理」します。ここでは、「1番目を じゃんけん から削除する」をつかってください。さきほど登場した「1番目(じゃんけん)」とおなじく、「1」の部分は、
- 1や2といった数字 ・・・ 数字の場所にあるデータをえらびます。
- 最後 ・・・ リストの最後のデータ(最後に追加したデータ)をえらびます。
- すべて ・・・ リストにあるすべてのデータをえらびます。
をえらべます。今回はリストの中にあるデータをすべておかたづけしたいので、「すべて 番目を じゃんけん から削除する」にします。これで、実行したあとにリストの中がからっぽになります。
「すべて 番目を じゃんけん から削除する」は、「みどりのはたがくりっくされたとき」のあとで実行しても問題ありません。スクリプトのまえでやることを「前処理」といいます。今回の場合、前でリストをきれいにしても、後でしても、どちらでも問題ありません。
れんしゅうもんだい1: ゴミの日のよてい
ここで、変数をつかったれんしゅうもんだいをやります。ネコが1しゅうかんのゴミの日のよていをはなすスクリプトです。以下のスペックをプログラミングしてください。プロジェクト名は「ゴミの日のよてい」です。
- リスト「いっしゅうかん」とリスト「よてい」と変数「データのじゅんばん」をつくります。
- 前処理で、リスト「いっしゅうかん」とリスト「よてい」の中にあるデータをすべて削除します。
- リスト「いっしゅうかん」をつくり、「げつようびは、」「かようびは、」「すいようびは、」「もくようびは、」「きんようびは、」「どようびは、」「にちようびは、」の7つのデータで初期化します。
- リスト「よてい」をつくり、「もえるゴミ」「びん・カン・プラゴミ」「しげんゴミ」「おやすみ」「もえるゴミ」「おやすみ」「おやすみ」の7つのデータで初期化します。
- 実行するとネコが「げつようびは、もえるゴミ」「かようびは、びん・カン・プラゴミ」「すいようびは、・・・」と、にちようびまで順番に7回予定を言います。
ポイントは、ふたつのリストをつかうところです。ふたつのリストからとってきたデータを、「演算」にある「hello と world」でつなぎます。また、今回のように○回くりかえしたいときは、「制御」にある「○回繰り返返す」コマンドをつかいます。
答えは ↓ にあるけど、まずはみないで自分でつくってみよう!
↓
↓
↓
↓
↓
↓
↓
れんしゅうもんだい1: 答え

リストをふたつと変数をひとつつかうもんだいです。それぞれを初期化してから、ネコによていをしゃべらせています。

このプログラムのリストと変数は、上のようなイメージになります。「いっしゅうかん」も「よてい」もつめこんだ順番にならんでいます。どちらもリストの長さ(大きさ)は7です。それぞれのリストを同じ順番でとりだすために、変数「いまの場所」をつかいます。
「いまの場所」の初期値(はじめの数字)は1です。この変数では、リストのどの場所にいるのかをおぼえておきます。「いまの場所」は1ずつふえて、リストのさいごである7まで順番にすすみます。こうするとこで、リストの中のデータすべてをとってくることができます。こういったリストの場所を意味する変数を「インデックス」といいます。

リストと変数で、データのじゅんびはできました。では、いよいよネコにしゃべってもらいます。
言ってほしいことは、リスト「いっしゅうかん」の1~7までのデータと、リスト「よてい」の1~7までのデータですね。「データ」にある「1番目(いっしゅうかん)」と「1番目(よてい)」をもってきて、それぞれの「1」の部分に「データ」にある変数「いまの場所」をおいてください。これで、両方のリストの「いまの場所番目」のデータはとれました。
とってきたデータをつなぐために、「演算」の「hello と world」をつかいます。「hello」には「いまの場所 番目 (いっしゅうかん)」をおいて、「world」には「いまの場所 番目(よてい)」をおきます。これで、「いっしゅうかん」と「よてい」をつなぐことができましたね。
「見た目」にある「Hello! と1秒言う」をおいて、「Hello!」の部分に、上でつなげたデータをおきます。さらにこれを「制御」にある「○回繰り返す」の中におきましょう。
さいごに、「データ」にある「いまの場所を 1 ずつ変える」をおきます。こうしないと、ずっと月曜日になってしまいますからね。
これで完成。実行して動作を確認しましょう。
とくべつもんだい1: ひらがなのひょう

ネコが、ひらがなのひょうをつかって、「あかさたな~」というように、ひらがなをよみあげていくスクリプトをつくります。
スペックは以下です。
- ネコが、ひらがなを横向きにしゃべります。たとえば、「あかさたなはまらやらわ」や「うくすつぬふむゆるう」というふうにはなすのです。
- ひらがなをはなすために、ひらがなのひょうをリスト「ひらがな」でつくります。ひらがなの中には、ひとつめ「あいうえお」、ふたつめ「かきくけこ」・・・というようにひらがなデータをいれましょう。
- ネコが、「あいうえお」のどの場所からはなすかはわかりません。「あか~」「いき~」「うく~」「えけ~」「おこ~」のどれかを1回はなします。
ヒント: ひらがなのひょうを横にうごくためには、「もじのばしょ」と「ぎょうのばしょ」のふたつの変数がひつようです。「もじのばしょ」が「2」であれば、「あ行の2番目」「か行の2番目」・・・とたどることで、「いきしちに~」という文字をとることができます。
ヒント: 1番目のデータをとりだすためには、「1 番目 (world)の文字」をつかいます。たとえば、「あいうえお」という変数「あ行」があるなら、「3 番目 (あ行)の文字」は「う」になります。
ヒント: とりだした文字をおいておくために変数「いうこと」がひつようです。ここにとりだした文字をおいていきます。ここではリストではなく変数をつかってください。たとえば、変数「いうこと」に「あ」をいれたとして、つぎに「か」をいれて「あか」というように、「変数 と 新しい文字 をつないで 変数 にいれる」には、どうすればよいでしょう?
ヒント: どの場所からはなすかわからないようにするには「乱数」をつかいます。乱数は、「演算」にある「1 から 10 までの乱数」とつかいます。ひとつの行は5文字なので、1~5の乱数があればよいはずです。
ちょっとむずかしいもんだいですが、ひとつずつスペックをプログラミングすればできるはずです。がんばれ!
とくべつもんだいの答えはこちらで100円で販売しています。ページの下にある「購入して続きをみる」へすすんでください。購入方法はこちらを参考にどうぞ。答えには、とくべつじょうほう(あたらしいコマンドや、ちょっとした技など)も書いています。
この講座で学んだこと
- リストは変数がならんだ変数です。
- リストにデータを追加すると、追加した順番にデータはならびます。さいごに追加したデータは、リストにさいごになるのです。
- 乱数は、どれかの数字です。なにがでるかは実行しないとわかりません。
- 前処理はスクリプトの実行前にやる処理です。後処理は、スクリプトのさいごにやる処理です。前処理や後処理では、データをきれいにおかたずけする処理などをします。
- 必要のないデータや、必要のない処理をスクリプトに書くのは、問題になる可能性があるので、かっこよくないです。
- プログラムの中にできてしまった問題を「バグ」といいます。バグとは「虫」のことです。虫が問題をおこしてしまうのです。
- リストの場所を意味する変数を「インデックス」といいます。
リストはデータを効率的につかう、いい方法です。変数とリストをつかえば、スクリプトはよりいっそうおもしろい動きになります。
- 今回つくったプロジェクトは以下にあります。
- つぎの講座は「コマンドをくりかえしてみよう」です。
- まえの講座は「変数をつかってみよう」でした。
- トップページにもどる