アルゴリズムとは「問題を解決するための手順をもれなく表現したもの」。
プログラミングをするにあたっては、まず初めに考えるものです。
例えば、文字列を表示したいなら
Console.WriteLine("*****");
であったり、
MessageBox.Show("*****");
といったものを使う、ということを考えて組み立てていきます。
このように、すでに関数として完成しているものではそのまま使うことができますが、
・土壌湿度が下がったら
・ポンプをオンにして
・一定時間経過したら
・ポンプをオフにする
※自動水やり器のアルゴリズム
このようなものもアルゴリズムの一つです。
プログラムはそのほとんどが、じつは「for」と「if」の組み合わせで表現することができます。
・関数として出来上がっているものをどのような順番で呼び出すか?
・関数がなければその処理をどのように「for」と「if」の組み合わせで実現するか?
が、アルゴリズムの設計です。
そこで、私は最初の一歩としてこの本を選択しました。
- 作者: 伊藤静香
- 出版社/メーカー: インプレス
- 発売日: 2016/03/16
- メディア: Kindle版
- この商品を含むブログ (1件) を見る
基本的な、主にデータの並べ替え(ソート)や抽出について丁寧に説明されています。
また、流れ図(フローチャート)と疑似言語ですべての例が説明されています。
フローチャートは考えをまとめるときや説明するときにも使えますので、プログラマでなくても使えると便利です。
疑似言語は慣れないとむしろ若干わかりにくいですね。
"if(i<5)" なら "i<5"と書かれていたり、
"i=5" を "5→i" と書いていたりします。
※C言語と疑似言語の関係
内容的には少なめだと思いますが、ここに出てくるようなものがプログラミングできるようになれば一段階複雑な問題にも取り組めるようになると思います。
この次ぐらいにこちらをみると、さらに多くの例にふれられると思います。
- 作者: 石田保輝,宮崎修一
- 出版社/メーカー: 翔泳社
- 発売日: 2017/06/06
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
こちらは、アルゴリズムをアニメーションで説明していて動きはわかりやすいですが、いきなりこちらを見てもプログラミングは難しいかもしれません。
勉強の目標を立てるために一度見てみると、意欲がわくのではないでしょうか?