大学入学共通テスト(情報) 過去問
令和5年度(2023年度)本試験
問37 (<旧課程>情報関係基礎(第3問) 問5)

このページは閲覧用ページです。
履歴を残すには、 「新しく出題する(ここをクリック)」 をご利用ください。

問題

大学入学共通テスト(情報)試験 令和5年度(2023年度)本試験 問37(<旧課程>情報関係基礎(第3問) 問5) (訂正依頼・報告はこちら)

次の文章を読み、( キ )にあてはまるものを次のうちから1つ選べ。

Aさんは、天井から地上まで吊り下げられたロープをキャラクターに順次飛び移らせてゴールを目指すゲーム(図1)を遊んでいる。ロープは全部で11本あり、一列に並んでいる。ゲームはキャラクターが1本目のロープの高さ55mの地点にいる状況から始まり、11本目のロープの高さ0mの地点がゴールである。キャラクターができることは、ロープを降りることと、同じ高さのまま次のロープに飛び移ることの二つのみであり、ロープを登ったり、前のロープに戻ったりすることはできない。各ロープには1か所ずつリボンが巻かれており、キャラクターがこのリボンに触れるたびに得点を1点獲得できる。各ロープにリボンが巻かれている高さ(以下、リボンの高さと呼ぶ。)はあらかじめ決まっており、表1のとおりとなっている。ゴールに到達して最後のリボンの得点を加えたゲーム終了時の得点をできるだけ高くするため、Aさんは手続きを作成して、どのようにキャラクターを動かしたらよいか検討することにした。

(1)Aさんは手始めとして、全部で11本のロープで合計55m降りるのだから、各ロープを5mずつ降りるという動かし方を考えた。このゲームはロープの降り始めや降り終わりでもリボンに触れたとみなすので、1本目のロープで55mから50mまで降りるときは、55mの高さのリボンに触れたこととなり、1点獲得できる。2本目では50mから45mまで降りるが、ここではリボンに触れない。また、6本目では( アイ )mから( ウエ )mまで降りるが、ここでもリボンに触れない。
この動かし方での得点を求めるためにAさんが作成した手続きが図2である。なお、各ロープにおけるリボンの高さは配列Ribonに格納されており、Ribon[i]はi本目のロープのリボンの高さを表す。また、変数tokutenには得点を、変数takasaにはキャラクターが今いる高さを格納する。手続きを実行し、ゲーム終了時の得点は( キ )点であることがわかった。

図2 5mずつ降りるときの得点を求める手続き

(01)tokuten←0
(02)takasa←55
(03)iを1から11まで1ずつ増やしながら,
(04)│ もし( オ )ならば
(05)│  │ tokuten←tokuten+1
(06)│ を実行する
(07)│ takasa←( カ )
(08)を繰り返す
(09)「得点は」とtokutenと「点」を表示する

問題文の画像
  • 2
  • 3
  • 4
  • 5

次の問題へ

正解!素晴らしいです

残念...

この過去問の解説 (3件)

01

1本ずつ(i)、降りる範囲(takasaからtakasa-5)、リボンの位置(Ribon[i])、得点(tokuten)の推移を確かめていきましょう。
 

1本目:55から50、リボン55、得点1
2本目:50から45、リボン53、得点1
3本目:45から40、リボン31、得点1
4本目:40から35、リボン37、得点2
5本目:35から30、リボン37、得点2
6本目:30から25、リボン22、得点2
7本目:25から20、リボン13、得点2
8本目:20から15、リボン19、得点3
9本目:15から10、リボン25、得点3
10本目:10から5、リボン16、得点3
11本目:  5から0、リボン  0、得点4

 

ゲーム終了時の得点は4点であることがわかります。

参考になった数0

02

ロープを下りる途中(降下中)や降下前・降下後でリボンに触れても得点になるため、  
リボンの高さが「takasa から takasa−5 の範囲内」にあればよい
これより、(オ)Ribon[i] ≧ takasa−5 かつ Ribon[i] ≦ takasa となります。

 

ループの1回で行う処理は次の2つです。  
①「降下中にリボンに触れたかの判定」  
②「次のロープに移動するために高さを更新」
i が 1 増える(次のロープに移動する)ときには、takasa を次のロープでの降下前の高さに合わせて更新する必要があります。  
毎回 5 m ずつ下に降りるため、前のロープでの高さから 5 m 減らした値が次のロープでの高さになります。  
これより、(カ) takasa−5 となります。

 

よって、手続きの全体像は以下のようになります。


(01) tokuten ← 0
(02) takasa ← 55
(03) i を 1 から 11 まで 1 ずつ増やしながら
(04) │ もし Ribon[i] ≧ takasa−5 かつ Ribon[i] ≦ takasa ならば
(05) │   │ tokuten ← tokuten + 1
(06) │ を実行する
(07) │ takasa ← takasa − 5
(08) を繰り返す
(09) 「得点は」と tokuten と「点」を表示する

 

提示された手続きに基づき、各ステップにおけるリボンとの判定および得点の推移を整理すると、以下の通りとなります。

 

iRibon[i]

高さ範囲

 (takasa−5 ≤ Ribon[i] ≤ takasa)

得点

判定

tokuten

更新

次の

takasa

15550 ≤ 55 ≤ 55 → ○1点150
25345 ≤ 53 ≤ 50 → ×0点145
33140 ≤ 31 ≤ 45 → ×0点140
43735 ≤ 37 ≤ 40 → ○1点235
53730 ≤ 37 ≤ 35 → ×0点230
62225 ≤ 22 ≤ 30 → ×0点225
71320 ≤ 13 ≤ 25 → ×0点220
81915 ≤ 19 ≤ 20 → ○1点315
92510 ≤ 25 ≤ 15 → ×0点310
10165 ≤ 16 ≤ 10 → ×0点35
1100 ≤ 0 ≤ 5 → ○1点40

最終的な tokuten は 4 であるため、
得点は 4点 となります。

参考になった数0

03

表1から、リボンの高さがキャラクターの降下経路

(55 → 50 → 45 → … → 0 の5m刻み)と一致するのは

ロープ番号リボンの高さ降下経路リボンに触れたか?
15555→50
25350→45
33145→40
43740→35
53735→30
62230→25
71325→20
81920→15
92515→10
101610→5
1105→0

ロープ番号の1・4・8・11 の位置でリボンに触れています。
よって、得点は 4点 になります。

参考になった数0