![見出し画像](https://assets.st-note.com/production/uploads/images/66810912/rectangle_large_type_2_b61d3dbcc308fc4eb5cf27bdcbee1481.png?width=1200)
【情報関係基礎 解説】大学入学共通テスト「情報」プログラミング対策講座~令和3年 第3問擬似言語 スゴロクゲーム解説
大学入学共通テスト 情報関係基礎 令和3年 第3問 擬似言語プログラミング
【資料ダウンロード】
PDFの他、パワーポイント、学習指導案 等の原本も無料提供しています。
情報教育の底上げが目的なので、資料を修正して、学校・塾(営利目的含む)の授業等で利用して頂いて問題ありません。私への連絡不要ですが、利用する際には、YouTubeチャンネル・情報Ⅰ動画教科書・IT用語動画辞典を紹介してもらえると嬉しいです。
■独自解説パワーポイント
https://toppakou.com/info1/download/98_大学入学共通テスト/01_R03/情報大学入学共通テスト対策【情報関係基礎_令和3年大問3】.pptx
■問題
大学入試センター 情報関係基礎過去問ダウンロード(情報処理学会 情報入試委員会)
https://drive.google.com/drive/folders/140pQJOKWzYH2-NvzPCyQdqFPHcZhCSOa
【文字おこし】
大学入学共通テスト 情報 対策講座
情報関係基礎 令和3年 大問3の擬似言語を使ったすごろくゲームの解説をしています。
本文は読んでいること前提で、設問に関する部分から本文を掘り下げてみていきます。
図1のNさんが作成したスゴロク
表1のマスの種類とその効果
そして、表2のNさんとSさんの各ラウンドのスゴロクの記録を照らし合わせながら見ていきます。
理解しやすいようにNさんのコマは、この男の子
Sさんのコマはこの女の子の絵を使います。
まず、表2の開始時より、NさんSさんともに1コマ目からスタートします。
まずラウンド1でNさんは、サイコロの目が3だったので、3マス進めてコマの位置は4となります。
4マス目には沼がありますが、これは次のラウンドで判定するものなので後ほど説明します。
Sさんの1ラウンド目のサイコロの目は1なので1マス進めてコマの位置は2となります。
そして、ラウンド2は、ア、イの空欄部分になります。
まず、Nさんはサイコロを振って6の目が出ています。
ここで注意すべき点は、Nさんのコマは今は沼にはまっているということです。
表1の沼の説明を見ると「出た目の数の半分だけコマを前進させる。小数点以下は切捨て。」
と書かれています。
つまり、出た目は6ですが、沼にはまった分、半分だけしか進めないので、6÷2で3マス進めることになります。よって4マス目から3マス進めてコマの位置はマス7(ア)となります。
次にSさんは、現状の2マス目はただの道で特殊な効果が無いので現在の2マス目から出た目の数である4マス進めてコマの位置はマス6(イ)になります。
ラウンド3を続けてみていきましょう。
Nさんの出た目はハテナマークとなっています。
ただ動かした後のコマの位置は9ということが分かります。
ラウンド2のコマの位置は7ということが分かっているいて、マス7はただの道なので出た目の数だけ進めるので、9-7で2が出た目だということが分かります。
Sさんは3ラウンド目で出た目が3ですが、ラウンド2完了時点のコマの位置はマス6なので「穴」の特殊効果があります。
マスの効果を確認すると、「出た目が4以上なら、出た目の数だけコマを前進させる。3以下の場合はそのマスにとどまる」とあります。
今回の出た目は3なので、今のマス6にとどまることになります。
よってハテナの部分は6になります。
――
そして4ラウンド目は、Nさんの出た目は1で今いるマス9には特殊効果は無いので、そのまま1マス進めてマス10になります。
Sさんは出た目も、進めたあとのコマの位置もわかりません。
ただ次の5ラウンド目を見ると出た目が3でコマの位置はマス8ということが分かります。
現在マス6で、落とし穴に落ちているので、サイコロが3だと進めません。
つまり、ラウンド4で落とし穴を抜けているということが分かります。
落とし穴を抜ける条件は4以上なのでラウンド4は4以上の数ということになります。
4から順番にシミュレーションしていきます
4が出た場合マス10になりますが、ラウンド5で出た目が3の場合、マス13となり マス8と一致しませんので、4ではないことが分かります。
5が出た場合、マス11となりますが、ラウンド5で出た目が3の場合、特殊効果が崖なので、3マス戻って8となり、すでに決められているコマの位置と合致するので、ラウンド4の出た目は5(ウ)になります。コマの位置は11の崖となります。
5ラウンド目でNさんはマス10から12に移動、Sさんはマス11から8に移動になります。
6ラウンド目に移ります。
NさんのコマNはラウンド6で何とかの目が出ればゴールに到達とあります。
ゴールの条件は、「ゴールより先に進もうとした場合はゴールにとどまる」とありますので
ゴールを突き抜ける数でもOKということになります。
普通に考えたら、あと3マスでゴールなので3以上と考えてしまいがちですが、
いまは特殊効果の沼に入っていることを忘れてはいけません。
半分しか進めないので6が出れば、半分の3マス進めてゴールになります。
つまり6の目が出ればゴールだったということで選択肢としては④(エ)になります。
実際は出た目は4で、その半分しか進めないので6ラウンド目でNさんのいちは2マス進めて、14となります。
Sさんはマス8から5マス進めて13となります。
7ラウンド目は、Nさんは崖からのスタートで3マス戻って11となります。
Sさんはマス13からのスタートで特殊効果は無いので2以上が出ればゴールとなり無事に3が出たのでSさんが先にゴールとなります。
では、問2の解説を行っていきます。
問2は問1で説明した内容を擬似言語に置き換えた穴埋め問題になります。
問題を解くコツは実際に数値を当てはめながらトレースしていくことです。
上から処理を説明していきながら穴埋めをしていきます。
まず1行目は変数に値を設定しています。
変数ninzuはプレーヤーの人数になります。
先ほどのNさんとSさんも2名でしたが
これもninzu に2を代入します。
owariはループの継続条件になります。
5行目に owariが0の間 とありますが、
owariが0なら6行目から21行目の処理をずっと繰り返します。
owariの初期値として継続条件の0を入れています。
18行目にowariに1を設定する処理があります。
のちほど説明しますが、コマが15以上の時に入る処理なので、勝者がきまった時点で1を設定しすべての処理を終了します。
変数 r はラウンド数になり 初期値に0をいれます。
2行目から4行目を見ていきましょう。
繰返し条件は 変数iを1からninzuまで1つずつ増やしながらとあるので
今回はninzuは2なので 2回ループすることになります。
配列変数Koma[i,r]はラウンドrにおけるプレーヤーiの更新後のコマの位置と表3の説明にあります。
このような2次元配列を思い浮かべるとイメージが膨らむと思います。
横軸にラウンド番号で012345・・
縦軸はプレーヤー番号で1、2というように数えます。
たとえば、先ほどの Nさんをプレーヤー1とした場合
ラウンド5のコマの位置12を設定したい場合は
配列で言えばこの位置になります。
配列変数に置き換えると
Komaの各括弧の第一引数にプレーヤー番号の1、第二引数にラウンド番号の5を入れます。
コマ位置は左矢印で12を代入します。
今回は1ループ目でプレーヤー1、ラウンド0 として 1を代入しています。
つまり、一番初めのスタート位置の設定になります。
2ループ目でプレーヤー2のラウンド0として 1を代入しています。
つまりプレーヤー1,2のラウンド0としての初期のコマ位置を設定しています。
5行目から21行目は初めに説明した、終わるまでの繰り返し処理になります。
6行目は 変数rに 1プラスした値を 変数rに上書きしています。
つまり、今回は0+1でラウンド1ということになります。
7行目はninzu 分 1から繰り返すので
まずはiは1で、プレーヤー1のループになります。
繰返し範囲は20行目までになります。
8行目はサイコロを振って出た目を保持する配列変数になります。
プレーヤー1の1ラウンド目のサイコロの目が3だとすると
Saikoro[1,1]←3 ということになります。
この値を取り出したい場合は
Saikoro[1,1] とプレーヤー番号とラウンド番号を指定すれば取り出すことができます。
9行目はプレーヤーのコマ位置を取り出す処理になります。
取り出した値を変数kに代入しています。
第二引数はラウンド番号になりますが 何を入れるべきかは先に10行目の処理を見ていきます。
次の10行目をみると、配列変数Masu[k]の引数として使っています。
Masu配列にはあらかじめ倍率が設定されています。
問1のスゴロクと突き合わせると
配列変数1を指定するとスタート・道なので 1
配列変数3を指定すると 崖なのでー1 が返却されます。
配列変数が4の場合は、 沼なので0.5
配列変数が8の場合は落とし穴なので 0が返却されます。
このマス目毎の判定は前のラウンドで行き着いたコマ位置で判定することは問1で説明した通りです。
つまり、rは今回のラウンド番号が入っているので、前回のラウンドが終わった時点のマスが必要になるのでr-1をしてあげる必要があるので空欄オの選択肢としては⑦が正解になります。。
今回は初回のラウンド1なので Koma[1,1-1] で3行目で設定した1が取得できます。
=============
11行目はbairituが0の場合なので現在いるのが穴マスかどうかを判定しています。
先ほど配列変数Saikoroの設定した値を取得し 4以上かどうかを判定していますが、問1より穴を抜けられるかを判定しています。
あなを抜けられる場合は出た目の数だけ進めるので、つまり、通常の道と同じ数すすめる
ということになるので、bairitu変数に1を設定しなおします。
ですので空欄 カは1になります。
14行目は、本文の「Nさんは、コマが移動する数を「出た目×マスの効果値」の計算で求められるように」という部分が該当します。
出た目は配列変数Saikoroで取得していますので、マスの効果値はbairitu変数が該当するので、 キの部分は bairitu になり解答群では⑧が該当します。
得た値をidou変数に代入していますので、idou変数は実際にコマを進める数ということになります。
15行目は今いるマスからコマを動かす処理になります。
今いるマス目はkなので移動するコマ数は先ほどのidou変数に入っているので
それを足し合わせればよいので 空欄クはidou変数ということで解答群では⑨が該当します。
16行目はスタートより後ろに行かないように 移動後のマス目が1を下回ったら1を設定する処理になります。
17行目から19行目は ゴールに達した場合のループを抜けるための変数を設定する処理になります。
――――
問3は問2まで説明した機能に おばけが登場します。
お化けの初期位置はマス6になります。
プレーヤーがお化けを追いぬこうとした場合は、お化けのいるマスに戻されます。
つまりおばけにつかまります。
お化けは一定間隔を移動しますが、ケ、コはおばけのラウンドごとの位置を答える問題です。
擬似言語と照らし合わせながら見ていきましょう。
1行目でおばけの初期のマス目である6を変数obakeに
設定しています。
7行目はラウンド数をマイナス1して4で割った値を求めています。
たとえばラウンド1の場合は1-1で0となり0÷4 で余りは0
ラウンド2は2-1で1となり、1÷4の余りは1となります。
8行目でその余りが2より小さければ今のおばけの位置から1プラスしたマスをおばけの位置とします。つまり右に1つずらします。
8行目の条件に合致しない場合、つまり2以上なら
今のおばけの位置から1マイナスしたマスをおばけの位置とします。つまりおばけを左に1つずらします。
1ラウンド目から9ラウンド目まで求めると
1ラウンド目は aが0なので 6+1で7がおばけのいる位置になります。
2ラウンド目は aが1なので 7+1で8がおばけのいる位置になります。
3ラウンド目は aが2なので 8-1で7がおばけのいる位置になります。
よって、空欄ケは8 空欄コは7となります。
この計算式にしたがって9ラウンド目まで求めるとおばけの位置はこのようになり、6~8の間になることが分かります。
よってサの解答は①になります。
おばけに捕まる条件が擬似言語で記述されている部分は
22行目から24行目になります。
配列変数Koma[i,r-1]なので移動前のマス目がお化けのマス目より小さくて、移動後のマス目がおばけのマス目より大きければ つまりおばけを追い抜いてしまったら、23行目の処理でおばけのいるマス目の値が設定されます。つまり本文中の表現では、おばけに捕まる処理になります。
ラウンド4からおばけを含めた動きを確認していきましょう。
ラウンド4の開始時の位置は、ラウンド3の更新後のコマ位置のことなので5になります。
そして出た目が3なので本来なら、8ですが、お化けがマス6にいるのでマス6でおばけに捕まります。
よって空欄のシは6が入ります
そしてラウンド5で先におばけがマス7に移動します。
出た目は6ですが、1つ先におばけが移動しているのでマス7で捕まってしまいます。
ラウンド6で先におばけがマス8に移動します。
これは、出た目は1なので移動後のマス目は8になりおばけの位置と重なります。
ラウンド7開始時に、お化けが1マス後ろに下がりマス7になります。
これでおばけを追い抜いたことになるので、出た目の2の数分進めるのでコマの位置はマス10になります。
つまりコマが初めてマス9以降になるのはこのラウンドの7なので空欄スは7になります。
以上で解説を終わります。
最後までご視聴ありがとうございました。
【解説重要用語】
擬似言語、変数、配列
★私の目標
「とある男が授業をしてみた」 の葉一さん
https://www.youtube.com/user/toaruotokohaichi
※Google社に招待頂いた、「YouTube教育クリエイターサミット2020」で
葉一さんと文部科学省・Google役員の対談セッションに感銘を受けて、高校情報講座スタートしています。
【参考サイト・参考文献】
大学入試センター 情報関係基礎過去問ダウンロード(情報処理学会 情報入試委員会)
https://drive.google.com/drive/folders/140pQJOKWzYH2-NvzPCyQdqFPHcZhCSOa
tkmium note 難関進学校の情報科教諭が作成
【解説】情報関係基礎 令和3年度 共通テスト 2021 1次日程 | tkmium-note
https://tkmium.tech/jouhoukankei-r3/
E.V.ジュニア note 難関進学校の数学科・情報科教諭が作成
共通テスト「情報関係基礎」の問題を見る|E.V.ジュニア|note
https://note.com/evjunior/n/n2b66f7977b18