カレーを作る手順を因数分解

ある記事で、カレーを作るたとえ話が書かれていました。
カレーの作り方
- 材料を切る
- 炒める
- 煮込む
- ルーを入れる
- 煮込む
このうち、材料を切る作業を細かく書くと
- ジャガイモを切る
- 包丁とまな板を洗う
- ニンジンを切る
- 包丁とまな板を洗う
- 玉ねぎを切る
- 包丁とまな板を洗う
- 肉を切る
- 包丁とまな板を洗う
実際は、こんなことはしないでしょう。包丁とまな板を洗うのはまとめてやりますよね。
- ジャガイモを切る
- ニンジンを切る
- 玉ねぎを切る
- 肉を切る
- 包丁とまな板を洗う
包丁とまな板を洗うのは、同じ作業なのでまとめて1回でやる。この考え方は「因数分解」の考え方だ、と書かれていました。
プログラミングでは因数分解の考え方を使う

プログラムを作るとき、この因数分解の考え方をよく使います。
長い処理の中に、同じような操作を含んでいないかを見つけて1つにまとめてしまうのです。
1つにまとめることで、メリットがあります。%LAST_NAME%さん、何だかわかりますか?
- プログラムが短くなる
- 修正が必要になったとき、1か所を直すだけで済む
などですね。
1つにまとめることにはデメリットもある

プログラムの同じ部分を1つにまとめることは、基本的にはよいことです。
同じような処理をループにして、5回繰り返すなどとします。
ただしループにすることにはデメリットもあります。何でしょう? わかりますか?
- プログラムの処理がわかりにくくなる
- エラーを解析するときにわかりにくくなる
何回目のループでエラーになったのか、一発ではわかりません。エラーしたときのループ回数を確認しないといけません。
まあ、これはたいした手間ではないですけれど。
で、今回言いたかったことは、
- プログラミングでは、因数分解の考え方を使っている
- プログラミングをやっておけば、数学の考え方に強くなる
という、言われてみれば当たり前のことでした。
コメント