【情報1】プログラミング問題対策(論理演算子編)

【情報1】プログラミング問題(論理演算子)eyecatch-3387

生徒
生徒

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

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

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

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

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

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

▶︎プレスリリース

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

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

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

コトゼニ
コトゼニ

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

注意①

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

注意②

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

本記事の信頼性

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

論理演算子とは

情報Ⅰ-論理演算子

算術演算子とは、

  • 「かつ」
  • 「または」
  • 「否定(=●●ではない)」

のことで、複数の条件を組み合わせて、より複雑な条件を表すときに使います。

コトゼニ
コトゼニ

数学でも使いますよね。

ベン図の重なり合うところ、そうでないところなど指定の仕方によって指す範囲が異なります。

ちなみに、「かつ」は複数の条件を満たすことが掛け合わされるため「論理積」、「または」は条件を満たすケースを足していくイメージのため「論理和」と言われます。

そして、情報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)条件式

と記述する

ということです。

論理演算子を用いた条件分岐はプログラムにおいても非常に多用さるため、それぞれどのような意味か、ベン図のどの範囲を指すのかという点を意識して把握できるようになりましょう。

使用例

プログラムの中で使われている具体的な例を紹介すると

# 成績判定プログラム
# 英語と数学の点数で判断する。
# それぞれ80点以上なら「優秀」、どちらかが80点以上であれば「普通」、両方80点以下であれば「努力」と表示する
# 変数 english には英語の点数が代入されている。
# 変数 math には数学の点数が代入されている

 english = 80
 math = 75

 もし english >= 80 and math >= 80 ならば:
 | 表示する("優秀")
 そうでなくもし english >= 80 or math >= 80 ならば:
 | 表示する("普通")
 そうでなければ
 └ 表示する(”努力”)

#実行結果: 普通

このようにプログラムでは登場します。

それぞれの論理演算子が登場した際に、

  • 条件Aを満たすのか
  • 条件Bを満たすのか
  • 両方満たすのか
  • 両方満たさないのか

をそれぞれ判定するようにしましょう。

練習問題

最後に「論理演算子」に関する練習問題を解いてみましょう。

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

# 合格判定のプログラム
# 筆記試験と実技試験の点数で判断する。
# それぞれ80点以上なら「合格」、どちらかが80点以上なら「次回一次試験免除」、両方80点以下であれば「不合格」と表示する
# 変数 hikki には筆記の点数を代入する
# 変数 jitsugi には実技の点数を代入する

# 得点を入力する
  hikki = 【外部からの入力】
  jitsugi = 【外部からの入力】

# 合否判定
  もし  ならば:
  | 表示する("合格")
  そうでなくもし  ならば:
  | 表示する("次回一次試験免除")
  
  └ 表示する(”不合格”)

# このプログラムを筆記:85点、実技:79点として実行する
# 処理結果:次回一次試験免除

アの選択肢

  1. hikki >= 80 and jitsugi >= 80
  2. hikki > 80 and jitsugi > 80
  3. hikki >= 80 or jitsugi >= 80
  4. hikki > 80 or jitsugi > 80

イの選択肢

  1. hikki >= 80 and jitsugi >= 80
  2. hikki > 80 and jitsugi > 80
  3. hikki >= 80 or jitsugi >= 80
  4. hikki > 80 or jitsugi > 80

ウの選択肢

  1. そうでなければ:
  2. そうでなくもし hikki > 80 and jitsugi > 80 なら:
  3. そうでなくもし hikki < 80 and jitsugi > 80 なら:
  4. そうでなくもし hikki < jitsugi なら:

解答

ア)合格の条件は筆記、実技、両方が80点以上である必要があるため、論理演算子としては「and」を使います。

また、「80点」は含まれるため「>」ではなく「>=」にする必要があります。そのため、正解は「1」です。

 

イ)筆記、実技のどちらかが80点以上であれば「次回一次試験免除」という判定になります。ですから論理演算子は「or」を使います。ア同様、80点も含まれます。そのため、正解は「3」です。

 

ウ)両方が80点以上、いずれかが80点以上を指定すれば、「先述2パターン以外の場合」に他のパターンは全て含まれるため、詳細な条件を設定しなくても条件分岐が正しく行われます。そのため、正解は「1」です。

模範コード

# 合格判定のプログラム
# 筆記試験と実技試験の点数で判断する。
# それぞれ80点以上なら「合格」、どちらかが80点以上なら「次回一次試験免除」、両方80点以下であれば「不合格」と表示する
# 変数 hikki には筆記の点数を代入する
# 変数 jitsugi には実技の点数を代入する

# 得点を入力する
  hikki = 【外部からの入力】
  jitsugi = 【外部からの入力】

# 合否判定
  もし hikki >= 80 and jitsugi >= 80 ならば:
  | 表示する("合格")
  そうでなくもし hikki >= 80 or jitsugi >= 80 ならば:
  | 表示する("次回一次試験免除")
  そうでなければ
  └ 表示する(”不合格”)

# このプログラムを筆記:85点、実技:79点として実行する
# 処理結果:次回一次試験免除

まとめ

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

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

耳寄りなお知らせ

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

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

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

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

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

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

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

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

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

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

Twitter

Twitter やってます。

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

関連記事

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

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

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

コメントを残す

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

CAPTCHA