【情報1】プログラミング問題対策(条件分岐編)

情報Ⅰ・プログラミング条件分岐

生徒
生徒

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

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

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

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

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

2月12日に実施された東進ハイスクールの 『大学入学共通テスト「情報Ⅰ」体験模試』ではプログラミング分野の得点率は、わずか約3割に留まったことが発表されています。

▶︎プレスリリース

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

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

この記事では、その中の「論理演算子」について深掘りしたいと思います

コトゼニ
コトゼニ

プログラミング問題を苦手とする人は多いです。早期にコツを掴んで差をつけましょう!

注意①

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

注意②

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

本記事の信頼性

この記事の信頼性
kz2
コトゼニ(@kotozeni
  • プログラミング講師
  • 【技術】HTML /CSS / JavaScript /Ruby /Ruby on Rails /Rspec /SQL /Git/Java
  • 30代未経験からエンジニア職の内定獲得
  • WEBアプリ・HP作成実績あり

制御文(条件分岐)とは

情報Ⅰ-条件分岐

条件分岐とは「もし〜なら」という条件を示す文章を用いて、

  • 値などが条件を満たす場合
  • そうでない(条件を満たさない)場合

それぞれで実行する処理を分けるために用いられます。

コトゼニ
コトゼニ

英語の「if」と同じイメージです。

実際のプログラミング言語でも「if(条件式)」のような記述方法で条件分岐を設定していくのですが、

情報Iでは

もし (条件式) ならば:

└ # 条件式を満たすときの処理

と表記します。

それに加えて、いくつかポイントを押さえましょう。

使用例

条件式を満たす時の処理が複数ある場合

# 条件式を満たす時の処理が複数ある場合

# 「 | 」で処理をつなぐ。処理はひとつにつき1行。
# 「 └ 」が制御文の終わりを示す
 
 もし (条件式) ならば:
    |   # 条件式を満たすときの処理1
    |   # 条件式を満たすときの処理2
    └   # 条件式を満たすときの処理3

例)
 もし x < 3 ならば:
    |   x = x + 1
    └   y = y + 1

条件式が複数ある場合

【条件式が2つ(「もし(条件式がAである)ならば」と「それ以外」)の場合】

  • 条件Aを記述したあとに「そうでなければ:」と記述する。
  • 「 | 」で処理をつなぐ。処理はひとつにつき1行。
  • 「 └ 」が制御文の終わりを示す

# 条件式が複数ある場合①

 もし (条件式A) ならば:
    |   # 条件式Aを満たすときの処理
 そうでなければ:
    └   # 条件式Aを満たさないときの処理

例)
 もし x % == 0 ならば:
    |   表示する(”偶数です")
 そうでなければ:
    └   表示する(”奇数です")

【条件式が2つ以上(「もし(条件式がAである)ならば」「もし(条件式がBである)ならば」と「それ以外」)の場合】

  • 条件Bを記述するときにに「そうでなくもし(条件式B)ならば:」と記述する。
  • それ以外の場合は「そうでなければ:」と記述する。
  • 先の行に書かれた条件に当てはまった時点で、それ以下の制御文は無視されます(それ以下に記述された条件を満たすかどうかは判定しない)。
  • 「 | 」で処理をつなぐ。処理はひとつにつき1行。
  • 「 └ 」が制御文の終わりを示す
# 条件式が複数ある場合②

# 条件式が2つ以上(「もし(条件式がAである)ならば」「もし(条件式がBである)ならば」と「それ以外」)の場合

 もし (条件式A) ならば:
    |   # 条件式Aを満たすときの処理
 そうでなくもし (条件式B) ならば:
    |   # 条件式Bを満たすときの処理
 そうでなければ:
    └   # 条件式A、条件式Bを満たさないときの処理

例)
 seiseki = 90

 もし seiseki >= 80 ならば:
    |   表示する(”優秀です")
 そうでなくもし seiseki >= 60 ならば:
    |   表示する(”普通です")
 そうでなければ:
    └   表示する(”努力が必要です")

# 実行結果 : 優秀です
# seisekiに代入されている値が90で、21行目の条件を満たすため、23行目以下の条件を満たすかどうかは無視される。

練習問題

最後に「条件分岐」に関する練習問題を解いてみましょう。

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

 # 駐車料金を判定するプログラム

 # 料金は1時間につき、220円。最大料金は2400円とする。1時間以下の単位での料金は発生しないものとする。

 # 12時間駐車したとする。

 # 1時間あたりの料金を変数 ryoukin に代入する
   ryoukin = 210

 # 駐車時間を変数 jikan に代入する
   jikan = 12

 # 最大料金を変数 max に代入する
   max = 2400 

 # 駐車料金を算出し、変数 goukei に代入する
   goukei = 

 # 駐車料金の表示
   もし goukei > max ならば:
     | 表示する()
   そうでなければ
   └ 表示する(goukei)

 # 実行結果: 

アの選択肢

  1. ryoukin + jikan
  2. ryoukin * jikan
  3. ryoukin / jikan
  4. ryoukin % jikan

解答

駐車料金は1時間あたりの料金に駐車時間を掛け合わせた結果を代入します。

そのため、正解は「2」です。なお、選択肢「1」は加算、「3」は割り算、「4」は余りを求めています。

イの選択肢

  1. ryoukin
  2. jikan
  3. max
  4. goukei

解答

最大料金が設定されているため、駐車料金(合計)が最大料金を超えている場合は、駐車料金は最大料金が適用されます。「もし goukei > max ならば」という条件分岐で、駐車料金と最大料金を比較しており、「駐車料金が最大料金よりも大きいならば」と読むことができます。このときには最大料金が適用されます。そのため、正解は「3」です。

ウの選択肢

  1. 12
  2. 210
  3. 2400
  4. 2640

解答

1時間あたり220円×駐車時間12時間=2640円ですが、最大料金より大きいため、駐車料金は最大料金が適用されます。そのため、正解は「3」です。

模範コード

 # 駐車料金を判定するプログラム

 # 料金は1時間につき、220円。最大料金は2400円とする。1時間以下の単位での料金は発生しないものとする。

 # 12時間駐車したとする。

 # 1時間あたりの料金を変数 ryoukin に代入する
   ryoukin = 210

 # 駐車時間を変数 jikan に代入する
   jikan = 12

 # 最大料金を変数 max に代入する
   max = 2400 

 # 駐車料金を算出し、変数 goukei に代入する
   goukei = ryoukin * jikan

 # 駐車料金の表示
   もし goukei > max ならば:
     | 表示する(max)
   そうでなければ
   └ 表示する(goukei)

 # 実行結果:2400 

まとめ

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

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

耳寄りなお知らせ

大学入学共通テストで採用されている擬似言語に対応した、プログラミング問題に特化した問題集を作成しました。

  • 基礎的なプログラミングの知識を身につけることができる問題を収録
  • 大学入学共通テストで採用されている「擬似言語」に対応
  • 全問解答・解説がついているから一人でも勉強しやすい!
コトゼニ
コトゼニ

まだまだプログラミング問題を苦手とする人は多いです。早期にコツを掴んで差をつけましょう!

【高校情報Ⅰ】プログラミングが苦手な人必見!疑似言語コードの読み解きを1ヶ月でマスターする基礎問題集

情報1プログラミング問題30題アイキャッチ【情報1】1ヶ月完成!プログラミング基礎問題集30題

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

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

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

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

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

Twitter

Twitter やってます。

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

関連記事

この記事を読んだ人はこちらの記事もよく読まれています。

▶︎プログラミング問題に強くなるための記事はこちら

eyecatch-3360v2【情報I】プログラミング問題に強くなる10個の基礎(苦手な人必見) 情報1プログラミング問題30題アイキャッチ【情報1】1ヶ月完成!プログラミング基礎問題集30題

コメントを残す

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

CAPTCHA