【基本情報】流れ図(フローチャート)問題の解き方をわかりやすく解説!

アルゴリズムと流れ図について
この記事の内容

※タップすると該当箇所までジャンプできます。

基本情報技術者試験の学習をしていて、「アルゴリズム」って言葉よく目にしますよね。

アルゴリズムとは、「プログラムが処理をどの順番で行っているのか」のことです。そしてアルゴリズムを図を使って見える化したものを流れ図とかフローチャートと呼びます。

基本情報技術者試験では、アルゴリズムや流れ図の問題が頻出なので、今回はアルゴリズムや流れ図の解説とともに、実際の過去問にも取り組んでいきます。

これから基本情報技術者試験の学習を進めていきたい!とか、アルゴリズムとは何なのか知りたい!という方は最後まで読んでみてください!

[st-div class="" margin="0 0 10px 10px" padding="0 0 0 0" add_style=""][st-minihukidashi webicon="st-svg-check" fontsize="" fontweight="bold" bgcolor="#39617b" color="#fff" margin="0 0 0 0" radius="30" position="" add_boxstyle=""]合わせて読みたい[/st-minihukidashi][/st-div][st-card myclass="" id="2987" label="" pc_height="" name="" bgcolor="" color="" webicon="" readmore="on" thumbnail="on" type=""]

>> 基本情報技術者試験の合格を本気で狙いたい人はこちら

流れ図(フローチャート)問題の解き方をわかりやすく解説!

流れ図(フローチャート)はアルゴリズムを図を用いてまとめたものです。

アルゴリズムとは、「問題を解決するための手順や計算方法」のことですが、もっとわかりやすく「コンピュータが処理する順番のこと」と覚えるといいです。

占いとか心理テストの時に、はいといいえで分岐されたすごろくのような診断チャート見たことはありませんか?あの診断チャートをイメージするとわかりやすいかもしれないです!

流れ図はアルゴリズムを見える化したもの

流れ図は、アルゴリズムを見える化したものです。基本情報技術者試験では問題文に当たり前のように流れ図が出てきますが、どんなアルゴリズムを表現しているのかを確認するものだと思ってください。

例えば、図を見て「xにnを代入しているな」とか「xに100を加えているな」とか。「1+1を100回繰り返すプログラムを表した流れ図だな」など、どんなプログラムなのかイメージできるかどうかを問う問題がほとんどです。

システムを実際に開発するときは、アルゴリズムを作れるようになるのも大事ですが、基本情報技術者試験ではそこまでの必要はありませんので安心してください。

流れ図の解き方 = 基本構造覚えるだけでOK

アルゴリズムには順応型・分岐型・反復型の3つの基本構造があります。流れ図は、この3つの基本構造を理解しているだけで書いたり読んだりすることができます。

それぞれの意味は以下でまとめておきます。

[st-minihukidashi webicon="" fontsize="20px" fontweight="" bgcolor="#969696" color="#fff" margin="0 0 0 10px" radius="" position="" bordercolor="#39617b" borderwidth="2" myclass="st-mybox-class" add_boxstyle=""]アルゴリズムの基本構造[/st-minihukidashi]
  • 順応型・・・今の処理が終わったら次に進む構造
  • 分岐型・・・条件によって処理の方法が違う構造
  • 反復型・・・ある条件を満たすまでその処理を続ける構造
[st-kaiwa1]

もう少しわかりやすく説明しますね!

[/st-kaiwa1]

【長方形】順応型は一方通行の処理のこと

アルゴリズムの基本構造一つ目は「順応型」です。

[st-minihukidashi webicon="" fontsize="20px" fontweight="" bgcolor="#969696" color="#fff" margin="0 0 0 10px" radius="" position="" bordercolor="#39617b" borderwidth="2" myclass="st-mybox-class" add_boxstyle=""]順応型処理の例[/st-minihukidashi]
  1. 変数aに1を格納する
  2. 変数b
  3. a+bを求める

このように、長方形のみで書かれた流れ図は、一方通行に処理を進めるだけの簡単なアルゴリズムを表します。

【ひし型】分岐型は条件によって処理が変わる!

アルゴリズムの基本構造二つ目は「分岐型の処理」です。

分岐型は、〇なら〇の処理、△なら△の処理といったように、条件によって処理が変化するタイプの処理の事です。

流れ図で分岐型を表現するときは、ひし形を用います。具体的に以下の処理を流れ図で表現してみましょう。

[st-minihukidashi webicon="" fontsize="20px" fontweight="" bgcolor="#969696" color="#fff" margin="0 0 0 10px" radius="" position="" bordercolor="#39617b" borderwidth="2" myclass="st-mybox-class" add_boxstyle=""]分岐型処理の例[/st-minihukidashi]
  1. 変数Aに1から9の数字をランダムで格納する
  2. もしも、Aが奇数なら「Aは奇数です」と返す
  3. もしも、Aが偶数なら「Aは偶数です」と返す

【八角形】反復型は一定の処理を繰り返す!

アルゴリズムの基本構造三つ目は「反復型の処理」です。

反復型を流れ図で表現するときは、六角形を半分にして繰り返す処理を中に組み込みます。

以下のような例で流れ図を書いてみましょう。

[st-minihukidashi webicon="" fontsize="20px" fontweight="" bgcolor="#969696" color="#fff" margin="0 0 0 10px" radius="" position="" bordercolor="#39617b" borderwidth="2" myclass="st-mybox-class" add_boxstyle=""]反復型処理の例[/st-minihukidashi]
  1. 変数Aに1を格納する
  2. 変数Aに1を加える
  3. 変数Aが10になるまで2の処理を繰り返す
  4. 変数Aが10になったので処理を終了する

流れ図では、六角形を半分に割って、繰り返す処理を挟み込む状態になっています。なんかサザエさんのオープニングを思い出しますね…

過去問で流れ図の知識を深める!

実際に基本情報技術者試験の午前問題で出題された問題を解いてみましょう。

流れ図 × 基数変換の問題

次の流れ図は,10進整数 j(0<j<100) を8桁の2進数に変換する処理を表している。2進数は下位桁から順に,配列の要素 NISHIN(1) から NISHIN(8) に格納される。流れ図のa及びbに入る処理はどれか。ここで,j div 2 はjを2で割った商の整数部分を,j mod 2 はjを2で割った余りを表す。

出典:令和元年秋期 問1
01.gif/image-size:294×247
01a.gif/image-size:343×135

上記の例題は、「流れ図 × 基数変換」の問題です。

問題文にて「次の流れ図は,10進整数 j(0<j<100) を8桁の2進数に変換する処理を表している。」とあるあるため、部分からこの下の図が10進数から2進数への基数変換を表す流れ図であることが分かります。

そして流れ図を見ると八角形の間にa,bが長方形に格納されてあるので、「a → b」の処理を、反復することも分かります。

解答の選択肢を実際にaとbに入れてみて、10進数が2進数へ変換されている選択肢を選びましょう。

01a.gif/image-size:343×135

まずはア、aに「j ← j div 2」、bに「NISHIN(k)←j mod 2」を入れてみましょう。

問題文から、「j ← j div 2」は 「jを2で割った時の商の整数部分をjに格納すること」を阿波らしており、bの「NISHIN(k)←j mod 2」は「jを2で割ったあまりをNISHIN(k)に格納すること」を表しているので、実際に、50をjに入れてみて考えましょう。

aの処理にて「50 ÷ 2 = 25」がjに格納。bの処理にて「25 ÷ 2 = 12あまり1」より1がNISHIN(k)へ格納。

本来50を基数変換したとき、「00110010」の為、最下位の値は0にならなくてはならない為、上手に基数変換できていない。

よってアは消去。


続いてイ。aに「j←j mod 2」、bに「NISHIN(k) ← j div 2」を入れてみましょう。

同じように、50を入れてみて、正しく「00110010」に変換されるかを試します。

まずはa「j←j mod 2」より「50 ÷ 2 の余りは 0」、b「NISHIN(k) ← j div 2」より「0 ÷ 2 = 0」なので、最下位の値は0。ここまではOK。

しかし反復し、2回目の処理にてa「j←j mod 2」より「0 ÷ 2 の余りは 0」、b「NISHIN(k) ← j div 2」より「0 ÷ 2 = 0」と、2日目以降ずっと0が続いてしまいます。

すなわち、「00000000」と正しい結果にならないためイも消去。


続いてウ。aに「NISHIN(k) ← j div 2」、bに「j←j mod 2」を入れて、50で試してみましょう。

a「NISHIN(k) ← j div 2」より、「50 ÷ 2 = 25」を最下位の値にする処理をしているため、そもそも論外。

2進数に25はあり得ませんのでウは消去。


これで答えはエとわかりますが、一応aに「NISHIN(k) ← j mod 2」、bに「j ← j div 2」を入れて、50で試してみましょう。

まずはa「NISHIN(k) ← j mod 2」より「50 ÷ 2 のあまりは0」なので最下位の値は0。ここはOK

そしてb「j ← j div 2」より「50 ÷ 2 = 25」をjに格納。

反復して2度目のa「NISHIN(k) ← j mod 2」は「25 ÷ 2 のあまり1」を最下位の値へ格納 10となり正しくなっている。

処理を8回反復していくと「00110010」となるので、エが答えだとわかります。

流れ図(フローチャート)以外!基本情報技術者試験おすすめ学習方法3選

流れ図やフローチャートを学習しているということは、基本情報技術者試験の学習をしている人も多いのではないでしょうか?

もしも基本情報技術者試験を確実に1発で合格したいのであれば、参考書オンライン学習サービスを利用するのがおすすめです。

以下のサービスを利用して基本情報技術者試験合格を目指してみてください!

基本情報技術者試験おすすめの学習方法
  • 本・参考書
  • オンライン講座

おすすめ学習方法①:本・参考書

基本情報技術者試験の学習をするなら、マイペースにお金もそんなにかけずに、学習できる「本・参考書」がおすすめです。

僕が実際に中を見て確認した中でおすすめの参考書は以下の通り。

基本情報技術者試験のおすすめ参考書
  • イメージ&クレバー方式でよくわかる 栢木先生の基本情報技術者教室
  • キタミ式イラストIT塾 基本情報技術者
  • 基本情報技術者 合格教本 (情報処理技術者試験)

それぞれに、メリット・デメリットが存在しており、あなたの学習意欲が湧き上がる、よりわかりやすい参考書を選ぶ必要があります。

以下の記事では、それぞれの参考書がどんな人におすすめなのか、メリットやデメリットを紹介しているので、基本情報技術者試験を本や参考書で学習したい人は是非読んでみてください!

[st-div class="" margin="0 0 10px 10px" padding="0 0 0 0" add_style=""][st-minihukidashi webicon="st-svg-check" fontsize="" fontweight="bold" bgcolor="#39617b" color="#fff" margin="0 0 0 0" radius="30" position="" add_boxstyle=""]合わせて読みたい[/st-minihukidashi][/st-div][st-card myclass="" id="2594" label="" pc_height="" name="" bgcolor="" color="" webicon="" readmore="on" thumbnail="on" type=""]

おすすめの学習方法②:オンライン講座

基本情報技術者試験を、確実に1発で合格したいのであれば、「オンライン講座」を利用して最短最速で学習するのもおすすめです。

オンライン講座で学習することで、わからないところをすぐに質問できるため、挫折するリスクを下げてられますし、学習ペースも管理してくれるので、モチベーションの維持にもなり、より確実に合格を目指せます。

特に以下の3つのサービスがおすすめです。

基本情報技術者試験 おすすめオンライン講座

[st-div class="" margin="0 0 10px 10px" padding="0 0 0 0" add_style=""][st-minihukidashi webicon="st-svg-check" fontsize="" fontweight="bold" bgcolor="#39617b" color="#fff" margin="0 0 0 0" radius="30" position="" add_boxstyle=""]合わせて読みたい[/st-minihukidashi][/st-div][st-card myclass="" id="2432" label="" pc_height="" name="" bgcolor="" color="" webicon="" readmore="on" thumbnail="on" type=""]

まとめ

今回はアルゴリズムと流れ図についてまとめてみました。

アルゴリズムの問題は基本情報技術者試験には出題されることが多々ありますのでしっかりと理解していきましょう!

[st-minihukidashi webicon="" fontsize="20px" fontweight="" bgcolor="#375da5" color="#fff" margin="0 0 0 10px" radius="" position="" bordercolor="#39617b" borderwidth="2" myclass="st-mybox-class" add_boxstyle=""]アルゴリズム&流れ図 まとめ[/st-minihukidashi]
  • アルゴリズムとは「問題解決するための手順のこと」
  • 流れ図とは「アルゴリズムを見える化したもの」
  • 流れ図は基本構造を理解していたら読める!
    • 順応型 → a ⇨ b ⇨ c と順番にただ進んでいく。流れ図で言うと長方形
    • 分岐型 → a ⇨ b or c と分かれ道になっている。流れ図で言うとひし形
    • 反復型 ⇨ a ⇨ b ⇨ c の次また a ⇨ b ⇨ cを繰り返す。流れ図で言うと八角形
]]>
  • この記事を書いた人

ぺぺまる

 
\人生を楽しむプロ/

札幌生まれ札幌育ちの27歳|大学受験失敗をきっかけに自分の本当にやりたいことを探求|何者でもない自分から抜け出したくて資格勉強start ▶ アウトプットブログ ▶ 簿記 ▶ FP ▶ 基本情報技術者 ▶ 宅建 |一緒に挑戦してみませんか!

-基本情報技術者試験
-,