コンテンツにスキップ

2026年大学入学共通テスト「情報Ⅰ」のプログラムを実際に動かしてみよう【受講生用資料】

[2026年3月8日・15日実施]

1.はじめに

この資料はTENTOプラスコースでの受講生用資料です。今回のTENTOプラスでは、2026年度大学入学試験「情報Ⅰ」で出題されたプログラミングの問題を解いて、それを日本語プログラミング環境のPyPENで実際に動かしてみます。

2.試験問題を解いてみる

下記のサイトにある共通テスト「情報Ⅰ」の問題文の【第3問】のプログラミングの問題に挑戦してみてください。24ページから29ページ(PDFでは21ページ)にあります。

※今回のコースでは、時間の都合により講師が正解を解説しますが、皆さんは後でぜひ自力で解いてみてください

3.試験問題のプログラムをPyPENで実行してみる

問題に出されたプログラムを実際に動かしてみましょう。本コースでは、日本語プログラミング環境のPyPENを使います。

PyPENは現在大学入試で使われている「共通テスト用プログラム表記」とはぼ同様の書き方ですが、完全に同じではありません。そのため、PyPENで実行できるプログラムを後述の「4.正解プログラム」の各問の「>正解プログラム」に掲載してありますので、これをPyPENのエディタにコピーして実行します。

実行のやり方

  1. PyPENのページ( https://watayan.net/prog/PyPEN/ )を開いておきます。
  2. 後述の「>正解プログラム」を表示させ、プログラムが書かれているブロックの右上に出てくるコピーアイコンでコピーし、先ほど開いたPyPENのページのエディタのエリアにペーストします。
  3. PyPENのページの[実行]ボタンをクリックして実行し、表示を確認します。

PyPENエディタの操作

  • エディタブロックの右下をマウスでつまんで左右に動かすと、エディタブロックの幅が変更できます。
  • 結果表示ブロックの右下をマウスでつまんで上下に動かすと、結果表示ブロックとエディタブロックの高さが変更できます。左右に動かすと、結果表示ブロックの幅が変更できます。
  • 実行するには、画面上部にある[実行]ボタンをクリックします。
  • 自分のプログラムを保存するには、ファイル名を記述してから[Save]ボタンをクリックします。
  • その他の詳しい使い方は、マニュアルを参照してください

4.正解プログラム

大学入試共通テストで出題されたプログラムをPyPENで実行できるように、以下の変更を加えています。

  • 共通テストでの関数「要素数(配列)」の代わりに、PyPENの組み込み関数である「length(配列)」を使っています。
  • 共通テストでの関数「最大値(x,y)」の代わりに、PyPENの組み込み関数である「max(x,y)」を使っています。
  • 共通テストの配列は添字が1始まりですが、PyPENは0始まりとなっています。そのため、下記のPyPENのプログラムでは、配列の最初に”0”をダミーで追加しています。さらに、kyakusuを算出するところで、配列の長さ(length)から追加分の1個を差し引いて、共通テストの問題と同様の結果が出るようにしています。

問2

「図2 2人目以降の来訪者の待ち時間を求めるプログラム」について

正解プログラムを表示させ、コピーしてPyPENで実行させてみましょう

正解プログラム(行頭の > をクリックすると表示されます)
taiken = 3
Touchaku = [0, 0, 3, 4, 10, 11, 12]
kyakusu = length(Touchaku)-1
Kaishi = [0, 0, 0, 0, 0, 0, 0]
Shuryou = [0, 0, 0, 0, 0, 0, 0]
Shuryou[1] = taiken
iを2からkyakusuまで1ずつ増やしながら繰り返す:
Kaishi[i] = max( Shuryou[i-1] , Touchaku[i] )
Shuryou[i] = Kaishi[i] + taiken
表示する(i, "人目の待ち時間:",
Kaishi[i] - Touchaku[i] , "分間"

問3 前半

「図3 最長待ち時間が10分間未満となる体験時間を調べるプログラム」について

正解プログラムを表示させ、コピーしてPyPENで実行させてみましょう

正解プログラム
Touchaku = [0, 0, 3, 4, 10, 11, 12]
kyakusu = length(Touchaku)-1
#←ーーーーーーーーーーーーーーーーーーーーーーーーー⓪
taikenを1から15まで1ずつ増やしながら繰り返す:
# ←ーーーーーーーーーーーーーーーーーーーーーーー①
Kaishi = [0, 0, 0, 0, 0, 0, 0]
Shuryou = [0, 0, 0, 0, 0, 0, 0]
Shuryou[1] = taiken
iを2からkyakusuまで1ずつ増やしながら繰り返す:
Kaishi[i] = max( Shuryou[i-1] , Touchaku[i] )
Shuryou[i] = Kaishi[i] + taiken
saichou = 0
iを1からkyakusuまで1ずつ増やしながら繰り返す:
saichou=max( saichou , Kaishi[i] - Touchaku[i] )
もし saichou < 10 ならば:
表示する("体験時間",taiken,"分間:",
"最長待ち時間", saichou, "分間")
# ←ーーーーーーーーーーーーーーーーーーーーーーー②
#←ーーーーーーーーーーーーーーーーーーーーーーーーー③

問3 後半

「最長待ち時間が10分以上で繰り返しをやめるプログラム」について(この項目は試験問題にはありませんが、本コースでは解説の都合上、問3は前半と後半に分けて後半をこのように呼ぶことにしています)

この問題は、まずは下記の正解プログラムをコピーせずに、試験問題文の問3後半を読みながら先程のPyPENプログラム(問3 前半)を実際に変更してみましょう。

正解プログラム
Touchaku = [0, 0, 3, 4, 10, 11, 12]
kyakusu = length(Touchaku)-1
#←ーーーーーーーーーーーーーーーーーーーーーーーーー⓪
taiken = 1
saichou = 0
(taiken <= 15) and ( saichou < 10 )の間繰り返す:
Kaishi = [0, 0, 0, 0, 0, 0, 0]
Shuryou = [0, 0, 0, 0, 0, 0, 0]
Shuryou [1] = taiken
iを2からkyakusuまで1ずつ増やしながら繰り返す:
Kaishi[i] = max( Shuryou[i-1] , Touchaku[i] )
Shuryou[i] = Kaishi[i] + taiken
saichou = 0
iを1からkyakusuまで1ずつ増やしながら繰り返す:
saichou=max( saichou , Kaishi[i] - Touchaku[i] )
もし saichou < 10 ならば:
表示する("体験時間",taiken,"分間:",
"最長待ち時間", saichou, "分間")
# ←ーーーーーーーーーーーーーーーーーーーーーーー②
taiken = taiken + 1

5.プログラムを改造してみる

いろいろと改造してみて、より深く理解しましょう。

  1. 【初級レベル】 途中の変数の値を表示してみよう。例えば、i人目の到着時刻、開始時刻、終了時刻、待ち時間を表示するようにしてみよう。そして試験問題文の表1の ”?” の部分を埋めてみよう。

  2. 【初級レベル】 試験問題文の空欄[ソ]の回数をプログラムで表示してみよう。(配列Kaishiの初期化処理をするところにカウンタを設け、最後にカウンタの値を表示してみよう)

  3. 【初級レベル】 最長待ち時間の上限を変えてみよう。10分ではなく5分とか15分とか。出力結果はどう変わるだろうか。

  4. 【中級レベル】 Touchakuリスト(到着時刻)の中身を手作業で変えてみよう。例えば、複数人の同時刻到着(グループなど)もあるとするとどうなるか。また、どうであれば待ち時間は減るか。

  5. 【上級レベル】 待ち時間を減らすにはどうすればいいか。問題にあるような体験時間を短くする方法以外にどんなことが考えられるか。プログラムの変更に限定せず、広い視野で考えてみよう。(興味ある人は「待ち行列システム」について学んでみよう)

    • 体験できるゲーム機を増やす【サービス窓口数の増加】
    • 到着が固まらないするように工夫する【到着の平準化・系の容量の調整】
      • 混んでいる時は「只今混雑しています」の看板を出し、空いている時は呼び込みをする
      • 混んでいる時は整理券を配ってしばらくしてから来てもらう、または空いたら連絡するようにする
      • 予約制にする
      • 待合場所を狭くし、一定以上の待ち行列ができないようにする
    • ルールを設ける【サービス規律の工夫】
      • グループは、各々が体験するのではなく一緒に体験してもらう
      • 予約の人、または整理券を持っている人は優先とする
      • ゲームオーバーになったら終わりとする
    • 運営側でゲームの難易度を随時変えられるようにし、混んでいる時はすぐにゲームオーバーになるようにする【サービス時間の短縮】
    • 待っているうちに、ゲームの操作方法などの説明書を読んでおいてもらう【ロスタイムの削減】
    • 大きなディスプレイを用意し、待っている人にも体験中の画面が見えるようにする【体感時間の低減】

    など

6.これまでの入試問題

時間がある人は、これまでの入試問題(試作・サンプル問題も含む)にも挑戦してみてください。これまでの試作問題(2022年(令和4年)11月公表)は、以前のTENTOプラス(2024年7月)で扱っています。また、それ以前のサンプル問題等の「共通テストに関する様々な情報」についても、下記の 1. のページの最後に紹介しています。ぜひ挑戦してみてください。

  1. 大学入試・情報Ⅰ「共通テスト用プログラム表記」を使ってみよう![2024年7月] 受講生用資料
  2. 大学入試・情報Ⅰ 2025年度入試問題に挑戦してみよう[2025年3月] 受講生用資料

7.感想のお願い

今後のために、よろしかったら次のような内容などを学習記録に書いて下さい

  • 今回のTENTOプラスはどうでしたか?わかりづらいところがありましたか?
  • 大学入試で出題されたプログラムをPyPENで実行させましたが、違和感なくできましたか?また、PyPENについてはどうでしたか?機能や操作性についてはどうですか?
  • 大学入試のプログラミング問題に対して、いくらかでも安心感や自信が付きましたか?