2025年9月4日
ユーバーの「Scratchで小・中学校のプログラミング」Vol.22 <スクラッチで小さい順に並べかえ(改造)>
ユーバープログラミングスクールの中村里香代表による、小学校のプログラミング授業で使ってほしいプログラミング言語Scratch(スクラッチ)の学習動画第22回。
今回は<上級者>向け、Scratchでデータを並べかえるソートのプログラムの3回目です。これまでに作成した「大きい順」に並べかえるコードを、今回は「小さい順」に改造します。
前回までの振り返りと小さい順にソートする流れの確認
◆バブルソートで小さい順に並べかえるには
「バブルソート」は、データを並べかえるソートの手法の1つで、1つずつ隣どうしのデータを比較し入れ替えを繰り返すことで並べかえを完成します。
この比較と入れ替えの処理を、「データの個数−1」回繰り返すことで並び替えが完了します。
小さい順にソートする処理の流れ「例:3 → 2 → 1」
1回目(全体):
① 1番目の「3」と2番目の「2」を比較 → 入れ替え(2番目の方が小さい)
→「2 → 3 →1」
② 2番目の「3」と3番目の「1」を比較 → 入れ替え(3番目の方が小さい)
→「2 →1 →3」
ここまでで一番右側の値(最大)が決定
2回目(一番右を除く):
③ 1番目の「2」とつ2目の「1」を比較 → 入れ替え(2番目の方が小さい)
→「1 → 2 →3」
小さい順の完成

今回も前回と同様に、あらかじめ数値をリスト「ブロック番号」に格納しています。視覚的にもわかりやすくするために、個数分のブロックを積み上げたイラストを、リストの並びと揃えて表示するプログラムを用意しています。
*リストは、変数の一種で、複数の値をまとめて保存できる便利なしくみです。
◆「大きい順」に並び替えをする定義の振り返り
前回までにScratchの「ブロックを作る」機能で「引数」付きのブロック「おおきい(ばんごう:引数)」を作りました。引数とは実行時に指定値を渡すための仕組みです。

最初に、変数「つぎのばんごう」には「(ばんごう:引数)+1」の値を代入します。
つまり引数が「1」の時、「つぎのばんごう」は「2」となるので次のようにリストの1番目と2番目を比較することになります。
リスト「ブロック番号」の「ばんごう」番目の値より、「つぎのばんごう」番目の値の方が大きいとき、次の処理を行います。
・変数「おおきいかず」にリスト「ブロック番号」の変数「つぎのばんごう」番目を代入
・変数「ちいさいかず」にリスト「ブロック番号」の引数「ばんごう」番目を代入
・リスト「ブロック番号」の引数「ばんごう」番目を変数「おおきいかず」で置き換え
・リスト「ブロック番号」の変数「つぎのばんごう」番目を変数「ちいさいかず」で置き換え
定義「小ささを比べる(ばんごう)」に改造
【条件の変更】
「ばんごう」番目の値と「つぎのばんごう」番目の値を比較し、「つぎのばんごう」の値の方が小さい場合に、入れ替え処理を行います。
【条件が真の時の実行内容の変更】
・変数「ちいさいかず」にリスト「ブロック番号」の変数「つぎのばんごう」番目を代入
・変数「おおきいかず」にリスト「ブロック番号」の引数「ばんごう」番目を代入
・リスト「ブロック番号」の引数「ばんごう」番目を変数「ちいさいかず」で置き換え
・リスト「ブロック番号」の変数「つぎのばんごう」番目を変数「おおきいかず」で置き換え
◆定義「小ささを比べる(ばんごう)」を使って5つのデータを並び替える

1回目(全体):
はじめに引数に「1」を指定してリストの1番目と2番目を比較、2番目が小さい時に入れ替える。引数を1ずつ増やして「4」(4番目と5番目のデータの比較と入れ替え)まで繰り返す。
5番目の値が確定
2回目(5番目を除く)
同様に引数「1」(1番目と2番目のデータの比較と入れ替え)〜引数「3」(3番目と4番目のデータの比較と入れ替え)まで繰り返す。
4番目の値が確定
3回目(4番目を除く)
同様に引数「1」(1番目と2番目のデータの比較と入れ替え)〜引数「2」(2番目と3番目のデータの比較と入れ替え)まで繰り返す。
3番目の値が確定
4回目(3番目を除く)
引数に「1」(1番目と2番目のデータの比較と入れ替え)で実行する。
ソートの完成!
繰り返しと変数を使って、リストのデータ個数の増減へ対応

繰り返す回数は「データの個数−1」回であり、繰り返すごとに比較回数が1回ずつ減っていくという点は変わりません。
繰り返しの回数は、「リストの長さ」ブロックを使うことで、データ数の増減にも自動で対応します。
はじめに変数「くらべるかいすう」に繰り返す回数を代入するために、「(ブロック番号)のながさ」ブロックから「1」を減算した値を代入します。
【1回分の比較と入れ替え部分の処理】
変数「ばんごう」を使いデータの位置を指定します。流れは以下のとおりです。
・変数「ばんごう」に1を代入
<次の処理を「くらべるかいすう」回繰り返す>
・定義「小ささを比べる(ばんごう)」で比較と入れ替え
→1回目は「ばんごう」が「1」なので1番目と2番目が対象
→2回目は「ばんごう」が「2」なので2番目と3番目が対象
…
・変数「ばんごう」を1増やす
【「データの個数-1」回、処理を繰り返す】
1回分の比較と入れ替えが終わったら、変数「くらべるかいすう」を1つ減らし、再び同じ処理を繰り返します。変数「くらべるかいすう」が0になるまで、「くらべるかいすう」を減らしながらこうして繰り返します。
今回は、ソートのまとめとして振り返りをしながら「小さい順」の並べかえに改造しました。
授業での活用
Scratchはゲームづくりだけでなく、子どもたちのアイデアを表現したり、調べたことを発表したりと、さまざまな教育活動に活用できるツールです。
今回は、これまでの2回に引き続き、バブルソートの仕組みの解説と、ステップごとにプログラムを完成させる体験を通して、より深い理解を目指す学習に取り組みました。
作業の中で規則性を発見したり、効率化を図るために試行錯誤したりするプロセスから、子どもたちは多くの学びを得られると考えています。
ぜひ、授業だけでなくクラブ活動や探究学習など、さまざまな場面で試してみてください。
◆変数とは
<筆者プロフィール>
ユーバー株式会社 代表 中村里香
2017年4月、すべての子どもが楽しく学べるプログラミング教育を目指し、ユーバー株式会社を設立。プログラミング教室運営、クラウド型学習サービス「うさプロオンライン」の提供、教材開発、講師育成支援、体験イベントの開催などを行う。環境に左右されない学びの機会を届けるため、教育現場や企業と連携し活動中。
ご質問・お問い合わせ info@yuber.jp 中村宛(ご質問は該当記事のURLを添えてください)
関連URL
最新ニュース
- 全国の学校施設づくり関係者と文科省がフラットにつながる「CO-SHA Slack コミュニティ」始動(2025年12月19日)
- eスタジアム、和歌山県主催・第2回「和歌山県高校eスポーツ選手権2026」に参画(2025年12月19日)
- 習い事や学習塾、8割以上の親が「子どもの成長につながった」と実感 =イー・ラーニング研究所調べ=(2025年12月19日)
- 子どもの新年の目標・抱負、8割以上の親が「達成のために助言や手助けをした」=栄光ゼミ調べ=(2025年12月19日)
- Biz Hits、理系出身者に聞いた「理系におすすめの職業」ランキング(2025年12月19日)
- デジタルハリウッド、neoAIと共同開発した壁打ちチューターAI「Ututor」が「生成AI大賞2025」優秀賞受賞(2025年12月19日)
- FC今治高校×三菱電機、「未来の理系人財」育成プロジェクトで共創ワークショップ開催(2025年12月19日)
- ARI、長岡技術科学大学でAIを使いこなす視点を学ぶ「キャリア形成研修」実施(2025年12月19日)
- 日本数学検定協会、「すらら国際デジタル算数/数学コンテスト2025」に数検3級から8級の英語版の問題提供(2025年12月19日)
- わけわけ、子どもの我流プログラミングを本物の教養へ変える「ゲームクリエイター探究講座」オンライン説明会開催(2025年12月19日)













