【情報I 大学入学共通テスト】サンプル問題第2問をじっくり解説してみました

eyecatch-166

生徒
生徒

大学入学共通テストの情報Iの問題解いてみたけど難しい…

こう感じて悩んでいる人に向けた記事となっています。

この記事では大学入試センターが公表している「情報I」のサンプル問題について解説してみたいと思います。

コトゼニ
コトゼニ

特に第2問は「変数」や「配列」を使う問題だから難しいと感じるんじゃないかな

プログラミングならではの「変数」「配列」を使った問題、第2問についてみていきましょう。

サンプル問題「情報」とは

大学入試センターが公示しているプロトタイプ

そもそも、サンプル問題とは?という疑問から触れていきたいのですが、サンプル問題とは、大学入試センターが公示している、プロトタイプの試験問題のことです。

平成30年に学習指導要領が改訂され、令和4年(2022年)から高校に入学する生徒は新しい学習指導要領にて勉強します。そのため、2025年度から大学入学共通テストも新しい学習指導要領に対応した形式で出題されることになっています。

それに伴って、

コトゼニ
コトゼニ

”こんな感じ”の問題にしようと思ってると示してくれるのがサンプル問題です

詳しくは、こちらのHPに載っています。(大学入試センターのHPへ移動します)

大学入試センター「令和7年度以降の試験に向けた検討について」

情報Ⅰの授業がなぜ導入されるのかなどを知りたい場合は是非この記事を読んでください。

eyecatch-143【2022年度から施行】高校で学ぶ「情報I」ってどんな内容?その内容と大学入学共通テストに加わる理由を徹底解説

では実際にサンプル問題の第2問を見ていきましょう。

サンプル問題「情報」第2問

獲得議席数を算出するプログラムを作ろう

この大問では、選挙の得票数による獲得議席数をプログラムを作って求める問題内容になっています。

まずは設問の会話文を読みながら、どのようなプログラムを作ろうとしているのかを把握しましょう。

第2問 問題文
サンプル問題「情報」第2問

会話文の中で早速「配列」が出てきていますね。

「配列」とは「データを入れる箱(のようなもの)のセット」と考えると良いでしょう。

それぞれの箱は添字と呼ばれる番号で区別され、プログラム上では、その中に入っているデータは添字を使って呼び出します。

配列のイメージ

第2問 問1

プログラムを見てみよう

サンプル問題の次のページで実際のプログラムのコードが記述されています。

プログラム
サンプル問題「情報」第2問

まず、(01)(02)行で配列を定義し、それぞれに値(データ)を代入しています。

「これから”これらの値が入った配列”を使いますよ」という宣言をしています。

同様に(03)(04)行で「sousuu」という変数、「giseki」という変数を定義し、最初の値を入れています。

変数とは

データを入れるための「箱」のようなもの。

プログラムではデータを扱う際に、変数に代入することになっており、変数名で呼び出して処理することが多い。

コトゼニ
コトゼニ

料理するとき、材料を鍋など容器に入れるよね?容器を使わないと、火にかけられませんし、うまく調理できません。変数は、同じようにデータを使うときの「容器」と考えるとイメージしやすいかも。

続いて、(05)行です。

突然、「m」という文字が出現しました。その後の文章には「0から”ア”まで1ずつ増やしながら繰り返す」とあります。さらに読み進めると、(06)行で「Tokuhyo[m]」と記載があり、「m」が登場しています。

「Tokuhyo」は(02)行目で定義した、配列でした。配列の横に”[]”で表記するのは「添字」です。

つまり、「m」は添字として使用されていることがここでわかります。

添字とは、配列の中の箱を指定するために使われるものでした。ということは、添字は配列の中にある箱の数までを指し示すことができればOKとなります。

この「Tokuhyo」という配列は、配列内に、4つのデータが格納されています(「1200」,「660」,「1440」,「180」)。つまり、添字で4つ分を表現できればOKとなります。

添字は「0」から始まり、今回は4つ必要なので「3」まであればOKですね。

これで、空欄”ア”は「3」が入ることがわかります。

これにより、「(06)の処理内容を(05)の条件を満たす間くり返す」ことを読み解くことができました。

そして(07)行目で

sousuuに代入されている値(総得票数)をgisekiに代入されている値(6議席のため6)で割り、その商を「kizyunsuu」という変数に代入しています。

そして(08)で「基準得票数」という文字列を表示させて、変数「kizyunsuu」に入っている値を表示させています。

画面上で「基準得票数:580」と表示されるイメージです。

ポイント

ここでは、総得票数は、1200+660+1440+180=3480。それを議席数6で割るため、変数「kizyunsuu」に代入されている値は、3480÷6=580となります。

次の処理(09)では「比例配分」という文字列を表示し、

(10)では添字となる変数「m」を0から3になるまで1ずつ増やしながら(11)行目の処理を繰り返すよう指示しています。

その(11)行目では「Tomei[m]」を表示させています。

(09)行目から(11)行目までを見て、比例配分による、各党の獲得議席数を算出しようとしていることを読み取ります。

コトゼニ
コトゼニ

そもそも獲得議席数を算出するプログラムを作る問題だからね。

獲得議席数は、「得票数」を「基準得票数」で割ると出すことができます(これは設問の問題文にも書いています)。

最後の部分に得票数を基準得票数で割ることが書かれている
サンプル問題「情報」第2問

ここで空欄”イ”には「得票数」、空欄”ウ”には「基準得票数」が入ることがわかります。

得票数は配列「Tokuhyo」に、基準得票数は変数「kizyunsuu」に代入されていましたね。

ここで注意したいのは、配列「Tokuhyo」の中のデータを指定するには、添字が必要ということです。

(添字がないと、プログラムは(配列の中の)どの箱に入っているデータを使って演算すれば良いかが分からない)

そのため、空欄”イ”には添字をつけた、「Tokuhyo[m]」が入ります。

そして、空欄”ウ”には「kizyunsuu」が入ります。

まとめ

サンプル問題「情報」の第2問の問1を解説しました。

変数と配列にどのような値が入っているのか、そしてその値の指定方法を掴むことができるかどうかがポイントとなります。ぜひコードを読んでみて読解してみてください。

問2以降は次の記事で解説していきます。

それではまたここで会いましょう!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA