1. トップ
  2. ズームイン
  3. ユーバーの「Scratchで小・中学校のプログラミング」Vol.39 <スクラッチで共テ情報の基礎固め3>

2026年1月8日

ユーバーの「Scratchで小・中学校のプログラミング」Vol.39 <スクラッチで共テ情報の基礎固め3>

ユーバープログラミングスクールの中村里香代表による、小中学校のプログラミング授業で使ってほしいプログラミング言語Scratch(スクラッチ)の学習動画第39回。
今回は<中級者>向け、『Scratchで共通テスト「情報」のプログラミング問題に必要な知識を学ぶ』をテーマに変数とリストのプログラムを紹介します。

「Scratchで共通テスト対策?」小中学校からできるアルゴリズム考察のための基礎固めーリスト内で条件に合うデータを探す

今回も共通テスト「情報」のプログラミング問題に必要なアルゴリズム考察の基礎固めを、Scratchのコードと日本語混じりの擬似言語と対比して説明します。全4回の3回目となる今回は、リスト内を参照し条件に合うデータを取り出します。

仮想問題:敬老の日の記念品の対象者データを抽出する

例題:地域に住む人の名前と年齢のデータを用意し、条件(例:60歳以上や80歳以上など)に合う住人を検索し、該当者を抽出してデータを作成する。

今回の学習内容:
・リストのデータを全て取り出す(変数iとループの活用:振り返り)
・条件に合うリストのデータを取り出す(60歳以上など)


*変数とは
数字、文字列、計算式などの値に名前をつけて保持し必要な時に再利用できる仕組みです。

*リストとは
複数の値をまとまりとして記憶させることができる特殊な変数の1つです。リスト内の値を要素、その位置(1番目、2番目…)を添字(インデックス)と言います。

◆リストのデータを全て取り出す(変数iとループの活用:振り返り)

リスト「name」には地域に住む人4名分のデータが格納されており、リスト「age」の対応する位置に各人の年齢が格納されています。リスト内の位置(「○ばんめ」「添字(インデックス)」)を変数「i」で指定して取り出す場合、name[i]に名前が、age[i]に年齢があります。

リスト内の全データを効率よく取り出すためにループ処理を活用します。ループ処理の中でリスト内の位置を指定する変数「i」を1つずつ増やすことで順番に全データを取り出します。

Scratchの操作とコード
はじめに変数「i」に1を代入します。
繰り返す回数を確定するためにリストの値数4を変数「NINZU」に代入しておきます。

次の処理をiがNINZU(=4)より大きくなるまで繰り返します。
・リスト「name」のi番目、リスト「age」のi番目を表示する
・変数「i」を1増やす

*Scratchでは「リストのながさ」ブロックで値数を取得できますが、擬似言語では、値数を変数(NINZU)に代入する傾向があるため今回の例では揃えています。
ただ、もし擬似言語で「リスト名.要素数」や「リスト名.長さ」のように、日本語の関数表記が用いられた場合でも、問題文の説明を読んで、その関数がリストの値数を返すことを理解すれば問題ありません。

擬似言語での対応:
擬似言語では、「変数名 = (値)」で代入を行います。
リストの添字を指定するiは「i = 1」、
リストの値数は「NINZU = 4」と定義します。

iを1からNINZU(=4)まで1ずつ増やしながら以下を繰り返します。
name[i] とage[i]でデータを取り出して表示

*添字の更新(インクリメント)部分は特定言語の構文ではなく「i を 1 から…」のような日本語混じりで表記されています。もし「i += 1」「i = i+1」「i++」といった表記があった場合にも説明文を読むことで理解できるはずです。

リスト内の位置(○番目、添字)を指定する変数「i」をループ処理の中で、変化させて複数リストの全データを取り出す処理が完成しました。
次からはこのループ処理でリストのデータを参照し、条件に合うデータのみを表示するコードに改造していきます。

条件に合うリストのデータを取り出す(60歳以上など)

ループ処理の中に条件(例 年齢が60歳以上)を挿入し、条件に合うデータの名前と年齢を取り出します。

Scratchの操作とコード
はじめに変数「TAISHO-AGE」に59を代入します。リストage の値と比較して調べる対象年齢として利用します。

iがNINZU(=4)より大きくなるまで繰り返す処理を次のように変更します。
・条件【「age」のi番目> 「TAISHO-AGE」】が真の時に以下を実行します。
・リスト「name」のi番目と「age」のi番目を表示する
・変数「i」を1増やす


擬似言語での対応:
擬似言語でも同様に、対象年齢用の変数に値を代入します。
・TAISHO-AGE = 59

iを1からNINZU(=4)まで1ずつ増やしながら繰り返す処理の中に以下の条件を追加します。
・もし age[i]>TAISHO_AGE なら
・name[i] と age[i]でデータを取り出して表示。

*「もし なら」や「表示する」の部分は、一般的に if やprint のような関数名を用いますが、擬似言語では特定の関数名を用いずに日本語混じりになるようです。説明文を読むことで何を指しているのかがわかります。*添字は0から始まるプログラミング言語が多いですが、前回の出題では1からとなっていました。コードがname[1]を参照している場合、それが最初の要素(値)を指すのかを判断するため、例示されるコードや説明をしっかり読むことが重要です。
*代入は「=」以外に「←」などの記述も想定されますが、問題文に説明がありますのでしっかりと読んで理解すれば心配ありません。

ループ処理の中に条件を挿入することで、条件にあった値のみを取り出す処理を完成しました。

次回は、この抽出したデータからあらたに対象者のみのリストを作成することで「60歳以上の対象者のみを抽出する」という仮想問題を完成します。

授業での活用

Scratchはゲームづくりだけでなく、子どもたちのアイデアの表現、発表、調べ学習など、さまざまな教育活動で活用できるツールです。

今回、「繰り返し(ループ)」の中に「条件(もし〜なら)」を組み込むことで、リスト内の必要なデータだけを選び出すという、より実務的なアルゴリズムにも触れました。このデータ選別の考え方も、情報を扱う上で基本となる部分です。

実際の試験問題や身の回りの課題を解決する仕組みを考える上では、さらに複雑な要素が絡み合うことでしょう。ただ、いきなりそういった難題に取り組むことで自信を失ってしまう事態は避けたいものです。

このようにシンプルでやさしい例題を理解した上でステップアップすることで、初学者が楽しくスムーズに力をつけていただけたらと考えています。

スクラッチの使い方

スクラッチでアンケートの結果発表

<筆者プロフィール>
ユーバー株式会社 代表 中村里香
2017年4月、すべての子どもが楽しく学べるプログラミング教育を目指し、ユーバー株式会社を設立。プログラミング教室運営、クラウド型学習サービス「うさプロオンライン」の提供、教材開発、講師育成支援、体験イベントの開催などを行う。環境に左右されない学びの機会を届けるため、教育現場や企業と連携し活動中。

ご質問・お問い合わせ info@yuber.jp 中村宛(ご質問は該当記事のURLを添えてください)

関連URL

「うさプロオンライン」

ユーバー

自律的な学習者への第一歩に 自己効力感の向上 活用事例多数紹介 すらら 活用事例のご紹介
Benesse 総合のプロフェッショナル 松村先生がレクチャー&事例つき どの学校でも無理なくできる!総合的な学習の時間ウェビナー
ユーバー株式会社

アーカイブ

  • ICT要員派遣はおまかせ!ICTまるごとサポート 詳細はこちら
  • 事例紹介作って掲載します。 ICT教育ニュースの楽々 事例作成サービス