【情報1】プログラミング問題対策(繰り返し編)

情報Ⅰ・プログラミング繰り返し

生徒
生徒

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

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

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

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

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

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

▶︎プレスリリース

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

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

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

コトゼニ
コトゼニ

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

注意①

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

注意②

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

本記事の信頼性

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

制御文(繰り返し)とは

情報Ⅰ-繰り返し

繰り返しとは、ある条件を満たす限り、指定した処理を継続的に実行する制御構造のことです。

プログラムは、基本的に書かれた順に上から実行されていき、そのことを「順次」構造と言います。

この「順次」に「条件分岐」と「繰り返し」の3つでどれだけ大きく複雑なプログラムも構成されていると言われています。

そのため、「繰り返し」ともう一つの制御構造「条件分岐」を読み解けるようになれば、プログラムをより一層読み解きやすくなるのです。

繰返し処理は

(繰り返す条件):
| # 処理1
| # 処理2
└ # 処理3

と表記します。

条件分岐の時同様に、繰り返して行いたい処理を「|」と「└」の範囲で囲います。なお、処理の最後の行は「└」を使います。

実際の例を見てみましょう。

使用例

# 1〜10まで足した合計を求めるプログラム
# 合計は 変数 goukei に代入する。

  goukei = 0 

# 繰り返し処理
  x = 1 
  x <= 10 の間繰り返す:
  | goukei = goukei + x
  └ x = x + 1 
 
  表示する(goukei)

# 実行結果: 55
# 配列 Data に個々の得点が代入されており、その得点の和を求めるプログラム
 Data = {25,40,55,70,62}
# 合計は 変数 goukei に代入する。

  goukei = 0 

# 配列の要素の数だけ繰り返し処理
  x を 0 から Dataの要素の数 まで 1 ずつ増やしながら繰り返す:
  └ goukei = goukei + Data[x] 
 
  表示する(goukei)

# 実行結果: 252
 # 入力された数だけ星(★)を表示するプログラム

 # 変数 hyouji に表示させる数を代入する
 
  hyouji = 6

 # 星(★)表示する回数をカウントするための変数 kaisu を設定する。初期値は0。

  kaisu = 0

 # 繰り返し処理

  kaisu < hyouji の間繰り返す:
  | 表示する("★")
  └ kaisu = kaisu + 1

 # 実行結果:★★★★★★

上記の例のように

  1. 条件式を満たす間、繰り返す
  2. 変数を用いて一定回数繰り返す

2つのパターンが多くで出てくるでしょう。

そのため、繰り返し行う処理が範囲がどこからどこまでなのかを見極めるようにしましょう。

コトゼニ
コトゼニ

そして、条件を満たさない場合は、そもそも繰り返し内の処理は実行されないことも覚えておきましょう

また繰り返し処理は

  • 条件を満たさなくなる
  • 一定回数を終える

まではそれより以下のコードへ移りません。

繰り返し処理を用いて、どのような処理結果を得ようとしているのかをコードから読み取るようにしましょう。

練習問題

練習問題1

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

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

 # 横方向の実線を表示させるプログラム

 # 実線(ー)を表示する回数をカウントするための変数 kaisu を設定する。初期値は0。

  kaisu = 0

 # 繰り返し処理

   の間繰り返す:
  | 表示する("ー")
  └ kaisu = kaisu + 1

 # 実行結果:ーーーーー

アの選択肢

  1. kaisu < 5
  2. kaisu <= 5
  3. kaisu < 6
  4. kaisu <= 6

解答

変数 kaisu は表示した回数を計上していくための変数です。実線を5つ表示させるために、0から計上し始めると、kaisu の値が5の場合を含めてしまうと、計6回処理が実行されてしまうことになります。

kaisu の中の値が「0, 1, 2, 3, 4 」の計5回実行されれば狙い通りの結果を得られます。

そのため、正解は「1」です。

模範コード

 # 横方向の実線を表示させるプログラム

 # 実線(ー)を表示する回数をカウントするための変数 kaisu を設定する。初期値は0。

  kaisu = 0


 # 繰り返し処理

  kaisu < 5 の間繰り返す:
  | 表示する("ー")
  └ kaisu = kaisu + 1

 # 実行結果:ーーーーー

練習問題2

 # 白星(☆)と黒星(★)を交互に表示するプログラム

 # 変数 hyouji に表示させる数を代入する
 
  hyouji = 6

 # 星(★)表示した回数をカウントするための変数 kaisu を設定する

  count = 1

 # 繰り返し処理
  count < hyouji の間繰り返す:
   | もし count % 2 == 0 ならば:
   |  | 表示する("★")
   |  | 
   | そうでなければ:
   |  | 表示する("☆")
   └  └ count = count + 1


 # 実行結果:

アの選択肢

  1. count = 1
  2. count = count
  3. count = count + 1
  4. count = count * 1

解答

変数 count は表示した回数を計上していくための変数です。ですから、白星であれ黒星であれ星を表示するたびに、変数count に代入されている値を+1していかなければなりません。

そのため、正解は「3」です。

イの選択肢

  1. ★☆★☆★
  2. ☆★☆★☆
  3. ★☆★☆★☆
  4. ☆★☆★☆★

解答

繰り返し処理が1度目に実施される際には、変数 count には1が代入されています。

このとき、count % 2 == 0 という条件は当てはまらない(1を2で割った時のあまりは0でない)ため、条件分岐の結果は「そうでなければ:」が適用され、それ以下の処理が実行されることになります。

そのため、1回目は「☆」が表示されます。

2度目は、count % 2 == 0 という条件が当てはまるため、条件分岐の結果は「もし count % 2 == 0 ならば:」となり、「★」が表示されます。

これが count < hyouji の間繰り返されます。最後に注意したいのが、比較演算子は「小なり」であるため、count < hyouji の最後のケースは

( 変数 count が) 5 < ( 変数 hyouji が) 6

となるため、合計で制御文の中の処理は5回行われることになります。

つまり、繰り返し処理の結果は

  • 1回目: ☆
  • 2回目: ★
  • 3回目: ☆
  • 4回目: ★
  • 5回目: ☆

となります。そのため、正解は「2」です。

模範コード

 # 白星(☆)と黒星(★)を交互に表示するプログラム

 # 変数 hyouji に表示させる数を代入する
 
  hyouji = 6

 # 星(★)表示した回数をカウントするための変数 kaisu を設定する

  count = 1

 # 繰り返し処理
  count < hyouji の間繰り返す:
   | もし count % 2 == 0 ならば:
   |  | 表示する("★")
   |  | count = count + 1
   | そうでなければ:
   |  | 表示する("☆")
   └  └ count = count + 1


 # 実行結果:☆★☆★☆

まとめ

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

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

耳寄りなお知らせ

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

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

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

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

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

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

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

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

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

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

Twitter

Twitter やってます。

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

関連記事

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

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

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

コメントを残す

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

CAPTCHA