【情報1】プログラミング問題対策(配列編)

eyecatch-3382

生徒
生徒

情報1のプログラミング問題って難しくない?

と感じている人に向けた記事となっています。

2025年の大学入学共通テストから追加される「情報」。

試作問題が公表され、その問題の中でも登場しているのが「プログラミング」の問題。おそらく本番でも大問の1つとして出題されることが予想されます。

とは言っても

生徒
生徒

なんかプログラムで出てくる「=」って、数学のイコールと違うの?よくわからないんだけど…

というように、そもそも解き方がわからない人も多いのではないでしょうか

しかし、プログラム問題は実は以下を理解できれば読み解けるようになるのです。

プログラム問題を読み解くコツ
  • 値・文字列
  • 変数
  • 配列
  • 算術演算子
  • 論理演算子
  • 比較演算子
  • 制御文(条件分岐)
  • 制御文(繰り返し)
  • 関数
  • コメント

▶︎詳しくはこちらの記事で紹介しています。

eyecatch-3360v2【情報I】プログラミング問題に強くなる10個の基礎(苦手な人必見) eyecatch-3364【情報1】プログラミング問題対策(変数編)

 

この記事では、その中の「配列」について深掘りしたいと思います

この記事を読めば「情報I」のプログラム問題に強くなりますよ!

生徒
生徒

プログラミング問題が不安だよ…

という人はぜひ最後まで読んでみてください!

注意①

この記事でのコードの記述については「情報」科で規定する擬似言語の表記に則っています。

注意②

情報1のプログラム問題を解くためにイメージを掴みやすいような言葉を選ぶように心がけています。そのため、プログラミングそのものの原理原則や理屈と照らし合わせた時に齟齬がある場合もありますがご了承ください。

本記事の信頼性

この記事の信頼性
kz2
コトゼニ(@kotozeni
  • 教育業界・学習塾で10年以上勤務。教員免許状所持
  • 500人以上の生徒に学習・進路指導:合格率 94.7%
  • プロ家庭教師・小学校学習支援サポーター、校内予備校の教室長
  • AIツールやオンラインでの豊富な指導経験を持つ
  • 不登校傾向のある生徒やギフテッドの特徴を持つ生徒も指導中

配列とは?

情報Ⅰ-配列

配列とはデータを格納する変数のまとまりのことです。

1つの変数につき、1つのデータしか格納できませんが、変数を束にして持つ配列なら、それぞれの変数にデータを格納することができるため、複数のデータを処理する時に役立ちます。

配列も変数同様に、「定義や設定」に着目しましょう。

配列の定義や設定

配列を使う際・定義する際には

  • 英数字を使う
  • 格納するデータの性質などを表す単語やローマ字で表記する 例:tate , yoko , width , length
  • 変数名が複数の単語にわかれるときには「_」で繋ぐ 例:kingaku_kei
  • データを変数へ格納する(代入する)ときには「=」を使う
  • 配列名は先頭文字が大文字
  • 「配列名[]」で表記し、[]の中の数字は添字(そえじ)といい、配列が持つ変数(箱)の数を表す
  • 添字は(特に問題文で説明がない限り)0 から始まる

というルールにもとに行われます。

#配列 Tokuten の 1番目の変数に 80 を代入する。

Tokuten[0] = 80

#配列 Seiseki の 3番目の変数に ”優” を代入する

Seiseki[2] = "優" #添字は0から始まるので、3番目の変数の添字は2となる

配列は、「繰り返し文」とよく併せて使われます。

配列を使う理由・メリット

cyber

そもそもなぜ配列を使うのかと言うと、複数のデータをまとめ扱うことができるからです。

たとえば、3人のテストの点数から成績を判定するプログラムを作ったとします。

変数のみでプログラムを立てると

#テストの点数から成績を判定するプログラム
#テストの点数が80点以上なら”優”、60点以上なら”良”、それ以下なら”努力推奨”と表示されるようにする
#得点はそれぞれ1人目「85点」、2人目「55」点、3人目「72」点とする

#1人目の成績判定
#変数 tensu1 に 一人目のテストの点数を代入。
  tensu1 = 85

#変数に代入された値をもとに判定(条件分岐)

  もし tensu1 >= 80 ならば:
  └ 表示する(”優”)
  そうでなくてもし tensu1 >= 60 ならば:
  └ 表示する(”良”)
  そうでなければ:
  └ 表示する(”努力推奨”)

#2人目の成績判定
#変数 tensu2 に 二人目のテストの点数を代入。
  tensu2 = 55

#変数に代入された値をもとに判定(条件分岐)

  もし tensu2 >= 80 ならば:
  └ 表示する(”優”)
  そうでなくてもし tensu2 >= 60 ならば:
  └ 表示する(”良”)
  そうでなければ:
  └ 表示する(”努力推奨”)

#3人目の成績判定
...

このように1件ずつコードを記述することになり、非常にコードが長くなります(冗長という)。

また、今回の例のように、3人程度であれば、上記のようにコードを全て記述することも可能ですが、

  • 数十件、数百件以上のデータを扱うこともある
  • 何件のデータを扱うかわからない(件数を、プログラム利用者に入力してもらう等)

といったこともプログラムではありうるので、全てのコードを記述することは現実的ではありません。

そういったときに配列を使うのです。

配列を使えば先程のコードも以下のように書き換えることができます。

(繰り返し処理・条件分岐を使っています)

#テストの点数から成績を判定するプログラム
#テストの点数が80点以上なら”優”、60点以上なら”良”、それ以下なら”努力推奨”と表示されるようにする
#得点はそれぞれ1人目「85点」、2人目「55」点、3人目「72」点とする


#配列 Tensu に 全員のテストの点数を代入。
  Tensu = [85,55,72]

#添字を表す変数 x を定義
  x = 0 

#成績判定
#配列に含まれている変数(値)の数だけ以下の処理を繰り返す
#処理:変数に代入された値をもとに判定(条件分岐)

 x を 0 から Tensuの変数の数 - 1 まで 1 ずつ増やすながら繰り返す:
  | もし Tensu[x] >= 80 ならば:
    └ 表示する(”優”)
  | そうでなくてもし Tensu[x] >= 60 ならば:
    └ 表示する(”良”)
  | そうでなければ:
  └ └ 表示する(”努力推奨”)

#処理結果 Tensu[0]:優
#処理結果 Tensu[1]:努力推奨
#処理結果 Tensu[2]:良

上記のコードの長さから短縮させることができ、コードとしてもスッキリした印象になりました。

配列や条件分岐、繰り返しの考え方を理解していないと、このようなコードになった時点で、「わかりにくい」になってしまうかもしれません。つまりこういったプログラムコードを見慣れていないのです。

コトゼニ
コトゼニ

この点がプログラム問題が難しいと感じさせる原因です。

ですから、順序立てて理解していけば、読めるようになるのです。

ちなみに、上記のプログラムでもコメント部分(#から始まる文章)を除けば

プログラムを記述しているのは、7、10、16〜22行目だけです。それらはいずれも

  • 定義や設定:7、10行目
  • 何かしらの動作や処理の実行:16〜22行目

に区分することができるのです。

なお、配列を使えば、「何件のデータを扱うかわからない(件数を、プログラム利用者に入力してもらう等)」という場合にも対応することができます。

先程の例のプログラムを修正してみると

#テストの点数から成績を判定するプログラム
#テストの点数が80点以上なら”優”、60点以上なら”良”、それ以下なら”努力推奨”と表示されるようにする
#得点は利用者が入力する。


#配列 Tensu に 全員のテストの点数を代入。
 人数分繰り返す
 └ Tensu = 【外部からの入力】

#添字を表す変数 x を定義
  x = 0 

#成績判定
#配列に含まれている変数(値)の数だけ以下の処理を繰り返す
#処理:変数に代入された値をもとに判定(条件分岐)

 x を 0 から Tensuの変数の数 - 1 まで 1 ずつ増やすながら繰り返す:
  | もし Tensu[x] >= 80 ならば:
    └ 表示する(”優”)
  | そうでなくてもし Tensu[x] >= 60 ならば:
    └ 表示する(”良”)
  | そうでなければ:
  └ └ 表示する(”努力推奨”)

7、8行目が変更されたことがわかります。

また、配列は、配列の中の値の合計を算出する場合にも使われます。

たとえば

#テストの平均点数を算出するプログラム

#配列 Tensu に 全員のテストの点数を代入。
  tensu = [85,55,72]

#添字を表す変数 x を定義
  x = 0 

#合計の値を代入する変数 goukei を定義。定義した時点ではまだどの得点も入っていないので初期値は0
  goukei = 0

#それぞれの値を goukei に足していく
  x を 0 から Tensuの変数の数 - 1 まで 1 ずつ増やすながら繰り返す:
   └ goukei = goukei + Tensu[x]

#平均値を算出する(goukeiの値を 配列Tensuの要素の数で割る)
   heikin = goukei / Tensuの要素の数

#配列 Tensu に 全員のテストの点数を代入。
 人数分繰り返す
 └ Tensu = 【外部からの入力】

#添字を表す変数 x を定義
  x = 0 

#成績判定
#配列に含まれている変数(値)の数だけ以下の処理を繰り返す
#処理:変数に代入された値をもとに判定(条件分岐)

 x を 0 から Tensuの変数の数 - 1まで 1 ずつ増やすながら繰り返す:
  | もし Tensu[x] >= 80 ならば:
    └ 表示する(”優”)
  | そうでなくてもし Tensu[x] >= 60 ならば:
    └ 表示する(”良”)
  | そうでなければ:
  └ └ 表示する(”努力推奨”)

このように、合計を代入する変数を使って、合計点や平均点を算出するコードも登場しやすいので覚えておきましょう。

img220126

練習問題

最後に「配列」に関する練習問題を解いてみましょう。

「ア」〜「ウ」に入るコードを下記の選択肢から選んでください。

# 平均身長を算出するプログラム
# 身長はそれぞれ[180,165,173,178,164]とする。

# 配列 Height に 全員の身長を代入。
  Height = [180,165,173,178,164]

# 配列 Height の要素数を代入する変数
  youso = 5

# 添字を表す変数 x を定義
   x = 0 

# 合計の値を代入する変数 goukei を定義。
   goukei = 

# それぞれの値を goukei に足していく
   x < Heightの要素数 の間繰り返す:
    | goukei = 
    └ x = x + 1

# 平均値を算出する
    heikin = goukei / youso

# 平均点を表示
    表示する()

# 実行結果:172

アの選択肢

  1. 0
  2. 1
  3. 172
  4. 860

解答

合計を代入するための変数には、初期値として0を代入しておきます。

定義時点では、まだどの値(身長)も加算されていないためです。そのため、正解は「1」です。

イの選択肢

  1. goukei
  2. goukei + goukei[x]
  3. goukei + height[x]
  4. goukei + height[x + 1]

解答

変数goukei にはそれぞれの値を順に代入していきます。それまでにgoukeiに代入されている値に、x番目に代入されるのは配列heightのx番目の変数の値です。そのため、正解は「3」となります。

ウの選択肢

  1. x
  2. goukei
  3. tensu
  4. heikin

解答

最後に表示させるべきなのは、変数 heikin に代入された値、つまり平均値です。そのため正解は「4」です。

まとめ

情報Iのプログラミング問題を解くために知っておきたい基礎知識の一つ、「変数」について詳しくを解説しました。

「変数」のコツを知れば、プログラムを読み解くのに非常に役立ちますよ!

コトゼニ
コトゼニ

「情報」科で高得点を目指すためにプログラミング問題を解けるようにしていきましょうね。

最後まで読んでいただきありがとうございました。

この記事が少しでも参考になれば幸いです。

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

ブログランキング・にほんブログ村へにほんブログ村

ブログ村に参加中です。上のバナーをクリックいただくだけで当ブログにポイントが入ります。いつも応援クリックありがとうございます。

Twitter

Twitter やってます。

新着記事のお知らせをしていますのでぜひフォローしてください!

人気の記事

この記事を読んだ人はこちらの記事も読んでいます。

▶︎「【塾長分析】大学入学共通テスト2025「情報」まとめ【難易度・対策】

共通テスト情報・対策共通テスト「情報」対策に必要なことは?塾講師が解説!勉強法と参考書

▶︎「【最新】(情報1)共通テスト試作問題 難易度と3つの対策

eyecatch-2491【最新】(情報1)共通テスト試作問題 難易度と3つの対策

コメントを残す

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

CAPTCHA