CO-P28情報Ⅰ 対策問題

コンピュータとプログラミングプログラミング特訓 (第3問対策)

次のプログラムは、100点満点のテストで「10点刻みの度数分布」を作る。空欄【ア】に入るものはどれか。 (1) Hindo = [0,0,0,0,0,0,0,0,0,0] (添字0〜9) (2) Ten = [85, 42, 67, 98, 42] (3) i を 0 から 4 まで 1 ずつ増やしながら繰り返す: (4) | kaikyu = 【ア】 (5) | もし kaikyu > 9 ならば: kaikyu = 9 (100点は最上位の階級へ) (6) ⎿ Hindo[kaikyu] = Hindo[kaikyu] + 1 ※ ÷は整数の商。85点→添字8、42点→添字4に入れたい。

解答・解説を見る

正解: 1

正答

1

この問題のポイント

整数の商で階級を割り出す — プログラミング×データ分析の融合問題です。

解説

空欄は問題文のヒントから逆算します。「85点→添字8、42点→添字4に入れたい」。85から8、42から4を作る計算は「10で割った整数の商」です。85÷10=8.5の整数部分で8、42÷10=4.2で4。よって Ten[i] ÷ 10 が正解です。10点刻みの階級(0〜9点が階級0、10〜19点が階級1、…、80〜89点が階級8)に、整数の商がそのまま階級番号として対応します。

プログラム全体をトレースします。
i=0のとき: kaikyu = 85÷10 = 8 → Hindo[8]を+1。
i=1のとき: kaikyu = 42÷10 = 4 → Hindo[4]を+1。
i=2のとき: kaikyu = 67÷10 = 6 → Hindo[6]を+1。
i=3のとき: kaikyu = 98÷10 = 9 → Hindo[9]を+1。
i=4のとき: kaikyu = 42÷10 = 4 → Hindo[4]を+1(度数2に)。
なお(5)は、100点のとき 100÷10=10 で添字が範囲外になるのを防ぎ、最上位の階級9に入れるための調整です。

誤答の%(余り)だと 85%10=5 で「一の位」が出てしまい、点数の高低と無関係な振り分けになります。**÷は「どの区間か」、%は「区間内のどこか」**という対比で覚えると混同しません。

「連続する値を10で割って区間に振り分ける」処理は、度数分布表・ヒストグラム作成の中核で、プログラミング(第3問)とデータ分析(第4問)をつなぐ重要テクニックです。CO-P11の「値を添字に使う度数カウント」と組み合わさった、本試験の集計プログラムの完成形といえます。

選択肢の確認

1.○ 整数の商が階級番号(85→8、42→4)。ヒントの対応と一致。
2.× 余りは一の位(85→5)。階級とは無関係の振り分けになる。
3.× ×10では850などになり、添字として使えない。
4.× ループ変数 i を割っても点数と無関係。

ここだけは覚えよう

10点刻みの階級番号=点数÷10の整数の商 — ÷で「どの区間か」、%で「区間内のどこか」。

関連問題

CO-P27CO-P29