大学入学共通テスト「情報I」— 練習問題 第 12 問 / 全 18 問 · 本番相当
在庫を減らしながら回す
関連レッスン: 配列と添字 — 0 から始まるか 1 から始まるか
次のプログラムを実行したとき、表示される内容はどれか。
この問題では、配列の添字は 1 から始まるものとする。
Zaiko = [3, 1, 2]
Chuumon = [1, 1, 3, 2, 2]
i を 1 から 5 まで 1 ずつ増やしながら繰り返す:
ban = Chuumon[i]
もし Zaiko[ban] > 0 ならば:
Zaiko[ban] = Zaiko[ban] - 1
そうでなければ:
表示する(ban, "番は品切れ")
表示する(Zaiko[1], "個 ", Zaiko[2], "個 ", Zaiko[3], "個")解説
Zaiko[ban] は内側から読みます。i = 1 では ban = Chuumon[1] = 1 なので Zaiko[1] が 3 から 2 に減ります。i = 2 も ban = 1 で、Zaiko[1] は 1 になります。i = 3 は ban = 3 で Zaiko[3] が 1 に、i = 4 は ban = 2 で Zaiko[2] が 0 になります。
i = 5 でふたたび ban = 2 になりますが、Zaiko[2] は 4 周目で 0 になっているので、条件が成り立たず 2番は品切れ が表示されます。前の周で書き換えた値が、後の周の判定に効いています。
最後の行では Zaiko[1] = 1、Zaiko[2] = 0、Zaiko[3] = 1 が表示されます。配列を書き換えながら回すループでは、いま見ている値が何周目の結果なのかを紙に書いて追ってください。
Zaiko[Chuumon[i]] は内側から評価する。減らした在庫が後の周回の判定を変える。
演習量を増やしたい方へ(おすすめ書籍)
共通テストのプログラミング問題だけを切り出して、易しい順に手を動かして解く練習帳。本サイトのシミュレーターで動かしながら読むと、紙の上で止まっていた処理の流れが追えるようになる。
試作問題と本試験を収録した過去問演習書。構文が読めるようになった後、本番の分量と時間配分に慣れる段階で効く。
テーマ別に問題を積み上げる実戦形式の問題集。分野ごとに弱点を潰していきたいときに使いやすい。
本セクションはAmazonアソシエイトのリンクを含みます。