見出し画像

【プログラミング編】アルゴリズム・フローチャートの作り方

今回はプログラミング基礎編ということで、アルゴリズムの考え方、フローチャートの作り方について簡単に解説していきます。自分の備忘録としての記録ですが、駆け出しエンジニアの方々の役に立てれば幸いです!

⑴アルゴリズムについて

アルゴリズムとは

「問題を解決するための手順や計算方法」のことで、ざっくり言うと、誰でもそのやり方に則れば答えを導くことができる手順のことです。
一般的には、コンピュータを使ってプログラムで問題を解決するための手順を表す言葉として使われることが多く、優れたアルゴリズムは、ある結果に辿り着くためのやり方(処理方法)を無駄なく効率よく組み立てられています。

アルゴリズムを学ぶ理由

①自分自身で実装することで、プログラミング言語に慣れるため
プログラミングでは複雑な計算をより効率的に処理するために、変数や配列、繰り返し処理、条件分岐などを用います。そのため、プログラミングの基礎要素やデータ構造を学ぶことができます。

②計算量の考え方を理解することができる
アルゴリズムの設計によって、処理速度やデータ量が大きく変わります。そのため、実際に自分で体験することでアルゴリズムの選択、設計の重要性を再認識することができます。

⭐️ポイント
こちらが意図した動作を確実にコンピュータにこなしてもらうには、あらゆるパターンを考え、1~10まで事細かに処理を記述することで、無駄のない効率の良い処理を行うことができます。

⑵フローチャートについて

フローチャートとは

日本語でいうと、「流れ図」のことです。複雑になりやすい業務フローやプログラミングのアルゴリズムの動きを多種多様な記号と線・矢印で表現することができます。

フローチャートで用いる基礎的な記号

●構造化プログラミングのお約束
〈原則〉順次、選択、繰り返しの3つの制御構造を使用します。

ちなみに、このフローチャートはGoogleスライドを用いて作成しています。Googleアカウントがあれば誰でも無料で作成できますので、ぜひ使ってみてくださいね!

【実践】フローチャートを使って1から10までの合計を求めてみよう!

❶普通に計算した場合

〈処理の流れ〉
変数x に 1 を代入 → 次々に 2~10 までを足していく。

このように単純に1から10まで足し算をすることで、答えを導き出すことができますよね。ですが、アルゴリズム的にはかなりイケてない処理方法です。

今回の処理は「1~10までの合計」ですが、もし「1~100の合計」「50~200の合計」となった場合、同じように一つひとつ記述しようと思えるでしょうか?このような変更や修正が起きた時、修正も広範囲になって大変ですし、テストや保守もイケてないですよね。

⭐️ポイント
今回の注目部分としては、「x + 数字 → x」という同じような足し算が繰り返されていることです。この部分に繰り返し構文を使って、スッキリした処理にしてみましょう!

❷アルゴリズムを使用した場合

〈処理の流れ〉

  1. 合計を入れるための変数xを0で初期化する

  2. xに足し込んでいく数字を入れるための変数iを開始番号の1で初期化する

  3. これ以降に続く繰り返し処理の終了条件を設定する
    〈条件判定〉
    ∟中身が「10より大きい(11以上)」の場合、処理を終了
    ∟中身が10以下なら以下の1~3の処理を繰り返す

    1. 変数xの中に変数iの中身を加算して、その結果を変数xに入れる

    2. 変数i の中身を1増やす

    3. 3の判定に戻る

⭐️ポイント
このアルゴリズム自体は数値をどれだけ変更してもOK!
例えば、iの初期値、繰り返しの終了条件を変更するだけで、「1~100の合計は?」や「10~200の合計は?」などの計算にも対応できちゃいます!

まとめ

  • アルゴリズムとは「問題を解決するための手順や計算方法」のこと

  • フローチャートを用いることで、複雑になりやすい業務フローやプログラミングの処理を記号と線・矢印などで表現することができる

  • 自分自身でプログラミングを行いながら実装することが大事!


〈参考資料〉
・きたみりゅうじ, キタミ式イラストIT塾 ITパスポート 令和03年, 株式会社技術評論社, 2020年12月25日.
・増井 敏克, “アルゴリズムとは何か?アルゴリズムの意味を理解してもっと楽しく学ぼう!”, TECH PLAY, 2018年7月11日, https://techplay.jp/column/298, (アクセス日:2022年1月23日).

この記事が気に入ったらサポートをしてみませんか?