今年度から基本情報の試験内容が変わりましたね.
特に午後試験は大きく変わりました.
プログラムやアルゴリズムについてより深い理解を求められるようになったことでしょう.
プログラムを理解するには自分で書くのが1番です.
今回はプログラムをコードに書いて科目Bサンプル問題 問1を解説します.
科目Bサンプル問題 問1 年齢ごとの入場料を計算するプログラム
問題文は以下のとおりです.
if文を使った条件分岐の問題です.


Pythonでプログラムを書く
プログラムをPythonで書き直しました.
def fee(age):
ret = 0
# 0歳から3歳まで
if (age <= 3):
ret = 100
# 4歳から9歳まで
elif (□□□□□□□□□):
ret = 300
# 10歳以上
else:
ret = 500
return ret
□に入る条件式は age が4歳以上かつ9歳以下です
Pythonでは次のようになります.
def fee(age):
ret = 0
# 0歳から3歳まで
if (age <= 3):
ret = 100
# 4歳から9歳まで
elif (age >= 4 and age <= 9):
ret = 300
# 10歳以上
else:
ret = 500
return ret
age に 3, 4, 9, 10 をそれぞれ代入してその結果を確認しましょう.

ageが4, 9のときはちゃんと300が表示されていますね.
条件式はあっていそうなので選択肢から同じ意味を探します.
回答と解説
ウ (ageが4より大きい) and (ageが9以下)
ウが近そうですが,これはひっかけです.
age が4より大きいなので4は含みません.条件式になおすと 4 < age です.
気をつけましょう.
条件式はもう1つ書き方がありました.
それはageが9歳以下とする場合です.
すでに3歳以下の条件式と処理は書かれているのでage < 9としても問題ありません.
def fee(age):
ret = 0
# 0歳から3歳まで
if (age <= 3):
ret = 100
# 4歳から9歳まで
elif (age <= 9):
ret = 300
# 10歳以上
else:
ret = 500
return ret

条件式 age < 9 に該当する選択肢はカになります.
よってカが正解です.
カ ageが9以下
まとめ
今回は科目Bサンプル問題の問1を解説しました.
この問題ちょっと意地悪ですね.
問1なんだからもう少し優しくても良いだろうと思ってしまいました.
この問題から学べることはプログラムの書き方は1通りじゃないということです.
4~9歳を表現するとき age >= 4 and age <= 9
も age <= 9
(すでにage <= 3は定義済み)も一緒の意味になりました.
柔軟に考えられることを見ているのかもしれません.