記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
情報1のプログラミング問題って難しくない?
と感じている人に向けた記事となっています。
2025年の大学入学共通テストから追加される「情報」。
試作問題が公表され、その問題の中でも登場しているのが「プログラミング」の問題。おそらく本番でも大問の1つとして出題されることが予想されます。
【最新】(情報1)共通テスト試作問題 難易度と3つの対策プログラミング問題とは「プログラムを読み解く」問題です。とは言っても、プログラムの読み方を学んでいる人は少ないはず。
なんかプログラムで出てくる「=」って、数学のイコールと違うの?よくわからないんだけど…
というように、そもそも解き方がわからない人も多いのではないでしょうか。
しかし、プログラム問題は実は以下を理解できれば読み解けるようになるのです。
- 値・文字列
- 変数
- 配列
- 算術演算子
- 論理演算子
- 比較演算子
- 制御文(条件分岐)
- 制御文(繰り返し)
- 関数
- コメント
そこでこの記事では、学習塾業界に10年以上勤め、プログラミングも学んだ筆者が、プログラム問題を読むためのコツを紹介します。
この記事を読めば「情報I」のプログラム問題に強くなりますよ!
プログラミング問題が不安だよ…
という人はぜひ最後まで読んでみてください!
- 教育業界・学習塾で10年以上勤務。教員免許状所持
- 500人以上の生徒に学習・進路指導:合格率 94.7%
- プロ家庭教師・小学校学習支援サポーター、校内予備校の教室長
- AIツールやオンラインでの豊富な指導経験を持つ
- 不登校傾向のある生徒やギフテッドの特徴を持つ生徒も指導中
目次
早速ですが、プログラムで登場する以下の10つを抑えれば読み解けるようになります。
それは、
- 値・文字列
- 変数
- 配列
- 算術演算子
- 論理演算子
- 比較演算子
- 制御文(条件分岐)
- 制御文(繰り返し)
- 関数
- コメント
です。
試作問題で出題されたプログラミング問題を見てみましょう。
※2つ目の図(問3)は1つ目(問2)で登場した「変数」「繰り返し」「関数」も使われていますが、図の中に解説として含めていません。
このように、プログラムは上記9つのポイントを押さえれば読み解けるのです。
順に解説しますが、その前に、そもそもプログラムにはどう言ったことが書かれているのかという点を確認しましょう。
情報1で出てくるプログラミング問題のプログラムの中では、
プログラムの中では
- 定義や設定
- 何かしらの動作や処理の実行
のどちらかしか行われていません。
つまり、プログラム内の各行の文章は上記のいずれかの意味を表しているのです。
試作問題で確認しても、それがわかります。
この記事では、プログラムのそれぞれの行で、上記のどちらが行われているのかを読むことができることが目標です。
そのために、プログラムで登場するものを順にみていきましょう。
値は現実世界で使う、数字などの値のことを指します。
ただ、日本語や(文字としての)数字、「言葉」を表示させたい時には、「文字列」として扱うようにしてあげないといけません。
文字列にするには「” ”(ダブルクオーテーション)」囲ってあげる必要があります。
例
- 値: 3 , 100 ,10000 など
- 文字列: ”プログラミング”、”情報1”、”abcdefg” など
はじめの一歩として、値と文字列を表現するルールをまずは覚えましょう。
2つ目は変数です。
変数とは、数字や文字などのデータを格納するために用意する箱のようなものです。
プログラムでは数字や文字などのデータを変数に格納(代入)することがほとんどです。
なぜわざわざそんなことをするの?と思うかもしれません。
変数を使うことで状況によって値が変わる場合でも対応しやすいからです。実際のプログラムコードでも変数はたくさん使います。
難しく書きましたが、
値やデータは変数に入れて処理することが多いと覚えておいて良いです。
そして、変数には値などのデータが入っているため、プログラムで登場した際には、「(そのコードの行の時点で、)その変数にどのような値・データが入っているのか」を意識するようにしましょう。
現実世界でも液体は箱(入れ物)に入れないと思うように扱えないですよね。
同じようにプログラムでも値は入れ物に入れないと処理できないとイメージしましょう。
変数の定義や設定
変数を使う際・定義する際には
- 英数字を使う
- 格納するデータの性質などを表す単語やローマ字で表記する 例:tate , yoko , width , length
- 変数名が複数の単語にわかれるときには「_」で繋ぐ 例:kingaku_kei
- データを変数へ格納する(代入する)ときには「=」を使う
というルールがあります。
特に最後のデータを変数へ格納する(代入する)ときには「=」を使うというルールは非常に重要です。
プログラミングでつまずきやすい第一ポイントです。
変数にデータを書くのすることを「代入する」といい、「=(イコール)」を使います。
使用例
#変数 length に 3 を代入する。
length = 3
#変数 fruit に ”りんご” を代入する
fruit = "りんご"
上記のコードが表す意味は、それぞれ
- (3行目)『length』という名前のついた変数(箱)にデータ(「3」)を代入する
- (7行目)『fruit』という名前のついた変数に「りんご」という文字列データを代入する
となります。
重要な点は数学で使う「=」の意味と違うということです!
配列とはデータを格納する変数のまとまりのことです。
1つの変数につき、1つのデータしか格納できませんが、変数を束にして持つ配列なら、それぞれの変数にデータを格納することができるため、複数のデータを処理する時に役立ちます。
配列も変数同様に、「定義や設定」に着目しましょう。
配列の定義や設定
配列を使う際・定義する際には
- 英数字を使う
- 格納するデータの性質などを表す単語やローマ字で表記する 例:tate , yoko , width , length
- 変数名が複数の単語にわかれるときには「_」で繋ぐ 例:kingaku_kei
- データを変数へ格納する(代入する)ときには「=」を使う
- 配列名は先頭文字が大文字
- 「配列名[]」で表記し、[]の中の数字は添字(そえじ)といい、配列が持つ変数(箱)の数を表す
- 添字は(特に問題文で説明がない限り)0 から始まる
というルールにもとに行われます。
使用例
#配列 tokuten の 1番目の変数に 80 を代入する。
tokuten[0] = 80
#配列 seiseki の 3番目の変数に ”優” を代入する
seiseki[2] = "優" #添字は0から始まるので、3番目の変数の添字は2となる
配列は、後述する「繰り返し文」とよく併せて使われます。
続いては算術演算子です。
算術演算子とは、「値を計算するために使われる記号」のことで、その多くが算数・数学でも使われているものです。
一部、プログラムならではの表現がありますので、その点を覚えてプログラムを読み解くようにしましょう。
プログラムで登場する算術演算子(加減乗除)は、
演算子 | 意味 |
---|---|
+ (プラス) | 加法 |
- (マイナス) | 減法 |
* (アスタリスク) | 乗法 |
/ (スラッシュ) | 除法 |
で表します。ポイントは
- 掛け算の時には「×」ではなく「*」(アスタリスク)
- 割り算の時には「÷」ではなく、「/」(スラッシュ)
を使う
ということです。
厳密には、整数の除法の際には、商を出すために「÷」が使われます。
また、プログラム独特なものは、
演算子 | 意味 |
---|---|
+ (プラス) | 文字列や(変数の)値を連結 |
% (パーセント) | 除法における余り |
** (アスタリスク(2つ)) | べき乗 |
となります。それぞれの演算子が表す意味をしっかり覚えましょう。
さらに、四則演算を行う際には、数学同様、加減乗除の優先順位となります。つまり、「+とー」「×と÷」が同じ式の中にある場合は、乗法と除法が優先されます。
そのため、加法・減法を優先的に行いたい場合は、数学同様()で囲ってあげましょう。
使用例
# 例
heikin = 35 + 50 + 60 + 70 + 50 / 5
# この場合、225 が代入されます。一方、
heikin = ( 35 + 50 + 60 + 70 + 50 ) / 5
# この場合、53 が代入されます
ここで重要なことは、「=」です。「=」は代入を意味するのでしたね。
つまり、
heikin = ( 35 + 50 + 60 + 70 + 50 ) / 5
という文章も、
NG
「heikin」が、 ( 35 + 50 + 60 + 70 + 50 ) / 5 の結果と等しい
という意味ではなく、
GOOD
( 35 + 50 + 60 + 70 + 50 ) / 5 の結果 を変数「heikin」に代入する
という意味となります。
つまり、「=」が使われている式は基本的には右辺の処理を優先するということを覚えておきましょう。
論理演算子とは
「かつ」「または」「否定(=●●ではない)」のことで、複数の条件を組み合わせて、より複雑な条件を表すときに使います。
数学でも使いますよね。ベン図の重なり合うところ、そうでないところなど指定の仕方によって指す範囲が異なります。
そして、情報Iのプログラムにおいてはそれぞれ
- かつ : and
- または : or
- 否定 : not
と表記されます。
使用例
# AかつB
A and B
# AまたはB
A or B
# AがBでない
not A == B
具体的な例を表記すると、
# 変数 english には英語の点数が代入されている。
# 変数 math には数学の点数が代入されている
# 英語・数学の点数が両方80点以上
english >= 80 and math >= 80
# 英語・数学の点数のいずれかが80点以上
english >= 80 or math >= 80
# 英語・数学の点数が両方80点以上でない
not (english >= 80 and math >= 80)
このように
条件式 (and , or , not)条件式
という形式で記述します。
論理演算子を用いた条件分岐はプログラムにおいても非常に多用さるため、それぞれどのような意味か、ベン図のどの範囲を指すのかという点を意識して把握できるようになりましょう。
比較演算子は大小関係を示すために使用します。
比較演算子は数学でも使用しているため、馴染み深いものばかりです。
条件分岐や論理演算子と併用することが非常に多いので、押さえておきましょう。
比較演算子 | 意味 | 記述方法 |
---|---|---|
== | 等しい | x == y |
< | 小なり | x < y |
> | 大なり | x > y |
<= | 以下 | x <= y |
>= | 以上 | x >= y |
!= | 等しくない | x != y |
一見して、その演算子の意味がわかりやすいかと思いますが、プログラムならではのルールも押さえておきましょう。
- 等しいは「=」ではなく「==」で表現する。
- 「等しくない」という表現ができる(「 != 」を使う)
- 「以上 ≦」、「以下 ≧」は「>」と「=」をそれぞれ書く「 <= , >= 」
続いて制御文です。まずはその中の一つ「条件分岐」です。
条件分岐とは「もし〜なら」という条件を示す文章を用いて、
- 値などが条件を満たす場合
- そうでない(条件を満たさない)場合
それぞれで実行する処理を分けるために用いられます。
英語の「if」と同じイメージです。
実際のプログラミング言語でも「if(条件式)」のような記述方法で条件分岐を設定していくのですが、
情報Iでは
もし (条件式) ならば:
└ # 条件式を満たすときの処理
と表記し、意味は
▶︎条件式で書かれていることを満たす場合、「 # 条件式を満たすときの処理」を行いなさい、満たさない時には、制御文の範囲より後ろ(続き)の行のコードへ移りなさい
となります。
それに加えて、いくつかポイントを押さえましょう。
条件式を満たす時の処理が複数ある場合
もし (条件式) ならば:
| # 条件式を満たすときの処理1
| # 条件式を満たすときの処理2
└ # 条件式を満たすときの処理3
もし~ならばの条件を満たすときに行いたい処理を「|」と「└」の範囲で囲います。なお、処理の最後の行は「└」を使います。
条件式が複数ある場合
もし (条件式A) ならば:
| # 条件式Aを満たすときの処理
そうでなければ:
└ # 条件式Aを満たさないときの処理
もし (条件式A) ならば:
| # 条件式Aを満たすときの処理
そうでなくもし (条件式B) ならば:
| # 条件式Bを満たすときの処理
そうでなければ:
└ # 条件式A、条件式Bを満たさないときの処理
続いては制御文の2つ目「繰り返し」です。
プログラムは、基本的に書かれた順に上から実行されていきます。そのことを「順次」構造と言います。
この「順次」に「条件分岐」と「繰り返し」の3つでどれだけ大きく複雑なプログラムも構成されていると言われています。
そのため、先程紹介した「条件分岐」と、この「繰り返し」を読み解けるようになれば、プログラムをより一層読み解きやすくなるのです。
繰返し処理は
(繰り返す条件):
| # 処理1
| # 処理2
└ # 処理3
と表記します。意味は
- そもそも(繰り返す条件)で書かれていることを満たさない場合は「繰り返しブロック」を抜け出し、それ以降の処理を進める
- (繰り返す条件)で書かれていることを満たす場合、「 # 処理1」「#処理2」「#処理3」を順に行いなさい
- 処理1〜3を終えた時点で、もう一度(繰り返す条件)を見直し、条件を満たしているか確認しなさい
- (繰り返す条件)を満たしていれば、再度「処理1〜3」を実行しなさい
- (繰り返す条件)を満たさなくなれば、制御文の範囲より後ろ(続き)の行のコードへ移りなさい
となります。
条件分岐の時同様に、繰り返して行いたい処理を「|」と「└」の範囲で囲います。なお、処理の最後の行は「└」を使います。
実際の例を見てみましょう。
使用例
# 1〜10まで足した合計を求めるプログラム
# 合計は 変数 goukei に代入する。
goukei = 0
# 繰り返し処理
x = 1
x <= 10 の間繰り返す:
| goukei = goukei + x
└ x = x + 1
表示する(goukei)
# 実行結果: 55
解説
8行目から繰り返し文が登場しています。
8行目に到達した時点で、xに代入されている値は「1」です(7行目で定義されている)。そのため、繰り返し条件である「x≦10」を満たすため、9行目、10行目の処理に移ります。
9行目では、変数同士を算術演算子で演算しています。そのときには右辺を優先して演算し、その結果を左辺の変数に代入するのでしたね。
ですので、9行目の時点で変数goukeiは「0」が代入されているため、
goukei + x #goukei は 0、xは1のため、0+1 という計算式になる。
となり、goukeiに右辺の演算結果「1」が改めて代入されることになります。
そして、処理の2つ目である、
x = x + 1
へと移ります。
ここでも右辺の演算を優先します。はじめて10行目に到達した時点でxは「1」が代入されているので、
x = x + 1 #xが1のため、1 + 1 という計算式になる。
となり、その結果が改めてxに代入されることになります。
さらに、10行目の処理を終えた時点でxには「2」が代入されているため、繰り返し条件である「x≦10」を満たすため、再び9行目、10行目の処理を実行することになるのです。
9行目、10行目の処理を繰り返し、「x≦10」を満たさなくなった時、繰り返し文の範囲を抜けて、次の処理「12行目」に移ることになります。
使用例2
# 配列 Data に個々の得点が代入されており、その得点の和を求めるプログラム
Data = {25,40,55,70,62}
# 合計は 変数 goukei に代入する。
goukei = 0
# 配列の要素の数だけ繰り返し処理
x を 0 から Dataの要素の数 まで 1 ずつ増やしながら繰り返す:
└ goukei = goukei + Data[x]
表示する(goukei)
# 実行結果: 252
上記2つの例のように
- 条件式を満たす間、繰り返す
- 変数を用いて一定回数繰り返す
2つのパターンが多く出てくるでしょう。
繰り返し処理を用いて、どのような処理結果を得ようとしているのかをコードから読み取るようにしましょう。
関数はメソッドと呼ばれ、処理をまとめたものとして捉えましょう。
実際のプログラミング言語にはすでにプリセットされている関数とエンジニアが定義する(いわばオリジナルの)関数の2つに分けられます。
「情報」の問題では問題文中に定義されていることが多いため、その関数でどのような処理がひとまとめになっているかを確認するようにしましょう。
なお関数は
関数名(引数)
と記述します。
試作問題でも出てますね。
関数を捉える上で、覚えておきたいことは「引数(ひきすう)」です。
引数とは「追加情報」のようなもので、引数があれば、「引数(で与えられた値)で関数を実行する」ことになります。
英語で言うならば、目的語にあたるのが引数です。
たとえば
使用例
# 関数の例
計算(50)
表示する("あなたの点数は", tensu ,"です")
# 上記の例では「計算()」「表示する()」が関数名
# 上記の例ではそれぞれ「50」、「"あなたの点数は", tensu ,"です"」が引数
上記の例なら
”引数「50」を使って、「計算」という関数を実行する”、”引数「”あなたの点数は”, tensu ,”です”」を使って「表示する」という関数を実行する”という意味になります。
このように引数は関数を実行する際の追加情報(関数の処理対象)として使われるものとして捉えておきましょう。
最後はコメントです。
コメントは、その名の通り、プログラムの中に記述して細く説明をするために記述します。
「情報I」では「#」から始まる文章がコメントとなります。コメントとして書かれた文章はプログラム実行時には無視されるルールとなります。
たとえば以下のようなプログラムコードでは
使用例
#変数 length に 3 を代入する。
length = 3
#変数 fruit に ”りんご” を代入する
fruit = "りんご"
- (1行目)「#変数 length に 3 を代入する。 」
- (5行目)「#変数 fruit に ”りんご” を代入する 」
がコメントとなり、プログラム実行時にはコンピュータに無視される文章となります。
一方でコメントがついていない
- (3行目)length = 3
- (7行目)fruit = “りんご”
の文については、実行される処理となります。
このコメントがあるかないかは問題によってさまざまですが、コメントが記載されている時には解読の手助けとして必ず読むようにしましょう。
実際のプログラムファイルの中にもたくさんコメントは記述されます
最後に、上記のことを踏まえてプログラムを読んでみましょう。
まずは1〜13の数字の中で好きな数字を思い浮かべてください。そして以下のコードにおいて、コメントの通りの処理ができるように、「ア」~「オ」にあてはまるものを選択肢から選んでください。
# 1〜13の中で好きな数字を思い浮かべ、変数 num に代入します。
num = 【思い浮かべた数】
# 以降のそれぞれの計算結果は変数 result に代入します。
# 思い浮かべた数字に4を足します。
result = num ア 4
# さらに倍にします。
result = result イ 2
# そこから6を引きます。
result = result ウ 6
# さらに2で割ります。
result = result エ 2
# そこから最初に思い浮かべた数字を引きます。
result = result オ num
# その結果を表示します
表示する(result)
ア〜オの選択肢
ア〜オに入る適切な演算子を以下から選びなさい。なお選択肢は複数使っても良い。
- +
- –
- *
- /
- %
そして解答は以下の通りです。
解答
それぞれコメントに書かれた計算に適した演算子を選びましょう。解答は、
ア:1 (+)
イ:3 (*)
ウ:2 (ー)
エ:4 (/)
オ:2 (ー)
となります。
なお、この処理を行うと、1〜13どの数を選んでも表示される結果(resultの値)は「1」となります。
結果が「1」にならない場合は、演算子が間違えていることになりますので、見直してみましょう。
解説コード
# 1〜13の中で好きな数字を思い浮かべ、変数 num に代入します。
num = 【思い浮かべた数】
# 以降のそれぞれの計算結果は変数 result に代入します。
# 思い浮かべた数字に4を足します。
result = num + 4
# さらに倍にします。この時点で右辺の変数 result に入っている値は最初の数に4を足した数字(8行目の結果)です。
result = result * 2
# そこから6を引きます。この時点で右辺の変数 result に入っている値は12行目の右辺で計算した結果の値です。
result = result - 6
# さらに2で割ります。この時点で右辺の変数 result に入っている値は16行目の右辺で計算した結果の値です。
result = result / 2
# そこから最初に思い浮かべた数字(変数 num に入っている値)を引きます。この時点で右辺の変数 result に入っている値は20行目の右辺で計算した結果の値です。
result = result - num
# その結果を表示します。この時点で変数 result に入っている値は23行目の右辺で計算した結果の値です。
表示する(result)
情報I、大学入学共通テスト「情報」科の範囲となっているプログラミング問題について、読み解くコツを解説しました。
これらのコツを知った上で、プログラムを多く読み解くようにすれば何を行いたいのかがわかりやすくなります。
プログラムコードを読み進めると同時に、各行でどういったことが行われているか、つまり「いま何をしているのか」を読み解けるようになればプログラム問題に強くなれるでしょう。
「情報」科で高得点を目指すためにプログラミング問題を解けるようにしていきましょうね。
最後まで読んでいただきありがとうございました。
この記事が少しでも参考になれば幸いです。
それではまたここで会いましょう!
にほんブログ村ブログ村に参加中です。上のバナーをクリックいただくだけで当ブログにポイントが入ります。いつも応援クリックありがとうございます。
Twitter やってます。
新着記事のお知らせをしていますのでぜひフォローしてください!人気の記事
この記事を読んだ人はこちらの記事も読んでいます。
▶︎「【塾長分析】大学入学共通テスト2025「情報」まとめ【難易度・対策】」
共通テスト「情報」対策に必要なことは?塾講師が解説!勉強法と参考書▶︎「【最新】(情報1)共通テスト試作問題 難易度と3つの対策」
【最新】(情報1)共通テスト試作問題 難易度と3つの対策スポンサーリンク