第8回目となる今回は,共通テスト教科追・再試験「情報I」のプログラム問題を解いてみたいと思います.
問題(令和7年1月26日実施)PICTO式で解いてみる.
では問題を見ていきましょう.
この第3問(22ページから27ページ)がプログラミング,アルゴリズムの問題です.この問題を実際に解いてみたいと思います.
設問1
まずいきなりですが,図2から見てみましょう.え!いきなりプログラムと解答群から見るんですか?と驚かれるかもしれませんが,とりあえず見てみましょう.
さて,空欄[ ア ][ イ ]を考えてみましょう.解答群を見ると,まず添え字の番号が1,2,nで分かれています.キャプションに一人分の結果を各配列に格納するプログラムとあります.ということは,Iremono,Shurui,Keiryouの対応する添字の番号に順に入れるので,nが本命だと思われます.(05)行で種類と書いてありますので,空欄アは(5),同様に(07)行で軽量と書いてありますので,空欄イは(8)でしょう.
ー 共通テスト「情報」最適化の原則 ー
変数が連続代入されることはない
設問2
まずいきなりですが,図4から見てみましょう.え!いきなりプログラムと解答群から見るんですか?と驚かれるかもしれませんが,とりあえず見てみましょう.
まず[ ウ ]を考えてみましょう.(01) 行で代入されたninzu(単位は人)は使われるとしたら,[ ウ ][ カ ][ キ ] のいずれかですが,[ カ ][ キ ]はいずれも単位がgです.足し算の場合,全ての項は単位が同じになるはずです.よって[ ウ ]は(4) ninzu です.原則はもう頻出の以下のものですね.
ー 共通テスト「情報」最適化の原則 ー
変数や配列の要素の値の単位が何になるか考えよ.
ー 共通テスト「情報」最適化の原則 ー
ある変数の値がある変数に代入や比較されるならば単位はたぶん同じ.
ー 共通テスト「情報」最適化の原則 ー
定義されている変数,配列が使われないことはない
[ カ ][ キ ]は繰り返しの中で使われていますが,いずれも変数kanen,
funen の代入文の右辺にそれぞれ kanen, funen が含まれていないと,連続代入になってしまいます.よって [ カ ]は(5) kanen, [ キ ]は(6)funenです.
ー 共通テスト「情報」最適化の原則 ー
変数が連続代入されることはない
次に[ エ ][ オ ]に行きましょう.図2からIremono[i] もShurui[i] もなんらかの名称で表現されるモノを割り当てた数値(単位なし)です.比較されるということは単位は多分同じです.よって,(2)(5)は除かれます.図2からShurui[i] == 1 だと可燃ごみで,Shurui[i] == 2 だと不燃ごみと書かれているので,変数名kanen,funenとの対比を考えると[ オ ]は(3)Shurui[i] == 1 が濃厚です.また,図2から,Iremono[i] == 1 だとバケツで,Iremono[i] == 2 だとゴミ袋と書いてあるので,おそらく350はバケツの重さで,[ エ ]の正答は,(0) Shurui[i] == 1 が濃厚です.
ー 共通テスト「情報」最適化の原則 ー
変数と変数が比較されるならば単位はたぶん同じ.
設問3
まずいきなりですが,図5から見てみましょう.え!いきなりプログラムと解答群から見るんですか?と驚かれるかもしれませんが,とりあえず見てみましょう.
ではやってみましょう.
ちなみに[ ア ]はIremono[n]です.[ ク ]から行きましょう.
ー 共通テスト「情報」最適化の原則 ー
定義されている変数,配列が使われないことはない
ー 共通テスト「情報」最適化の原則 ー
変数や配列の要素の値の単位が何になるか考えよ.
からもうわかりますね.[ ク ]が(1)shuruisuです.[ ケ ]は
ー 共通テスト「情報」最適化の原則 ー
ある変数の値がある変数に代入や比較されるならば単位はたぶん同じ.
を考えると,(07)行の左辺は,ゴミの種別を番号で表したものなので単位はないです.単位がない(というかループ変数で何にでもなりうる)のは,(0) j です.
次に,図6を見てみましょう.え!いきなりプログラムと解答群から見るんですか?と驚かれるかもしれませんが,とりあえず見てみましょう.
共通テスト「情報」最適化の原則 を適用すれば,
[ コ ]は(4) Shurui[i],[ サ ]は(c)Goukei[s],[ シ ]は(8) Namae[j] ,[ ス ]は(b) Goukei[j]であることを導くのは難しくありません.どれを適用すれば良いのか考えてみてください.
最後に
以上が,2025年度共通テスト追・再試験「情報I」のプログラム問題の解説でした.一見テクニック集かと思われるかもしれませんが,いずれもデバッグやリファクタリングの際に行なっているプログラミングの自然な行為なのです.今回の試験では,本試験に引き続き1オリジンの配列が使われました.事前では,0オリジンの配列がデフォルトと思われていたので,少し混乱も見られたようです.しかしながら作問チームがあえて1回目の試験で,1オリジンの配列を適用してきたのは,メッセージとしては妥当かと思えます.