C言語学習ポータル(無料版) 学習コンテンツ プログラミング的思考 パターンを見つける(Pattern Recognition)

🧭 プログラミング的思考

パターンを見つける(Pattern Recognition)

無料公開版に収録・読む目安 10分

🎯 分解した作業の中から共通点・繰り返しを見つけ出せるようになる

分解して部品を並べると、次に見えてくるものがあります。似ているものです。この「似ている」を見つける力が、2つ目の道具パターン認識です。

カレーとシチューは8割同じ

作り方を並べてみましょう。

最後以外は同じです。ということは、共通部分を「野菜の下ごしらえ」という1つの手順としてまとめ、最後だけ差し替えれば両方作れます。プログラムでいえば、共通部分を関数にして、違う部分だけ引数で渡す、という発想そのものです。

同じことを何度もしているなら、それは繰り返し

もう一つのパターンは「回数」です。

これらは「材料の数だけ切る」「5日ぶん繰り返す」と言い換えられます。同じ形の作業が並んでいたら、繰り返しにまとめられるというサインです。プログラムではループになります。

ビットコピペを3回した瞬間に「あれ?」と思えたら、それがパターン認識だよ。

なぜ見つけると得なのか

パターンをまとめると、良いことが3つあります。

  1. 書く量が減る — 100人分の処理も、1人分+繰り返しで書ける
  2. 直す場所が1か所で済む — 5か所にコピーしていたら5か所直すことになる
  3. 意図が読みやすくなる — 「同じことを繰り返している」と一目で分かる

逆に、パターンを見逃したまま似たコードを並べると、必ずどこかで直し忘れが起きます。これは初心者だけの話ではなく、現場のバグの定番でもあります。

見つけるコツ

パターンは、探そうと思って眺めても案外見つかりません。次の3つのサインを合図にすると見つけやすくなります。

ビット「あ、さっきと同じだ」と思ったら、そこで一度止まるのがコツだよ。

まとめすぎにも注意

ただし「似ている」と「同じ」は違います。たまたま今は似ているだけのものを無理にまとめると、あとで片方だけ仕様が変わったときに、かえって複雑になります。目安は、変わる理由が同じかどうか。カレーとシチューは「煮込み料理」という同じ理由で変わるので、まとめて良い仲間です。

分解で部品に分け、パターンで似た部品をまとめる。この2つはセットで使う道具だと覚えてください。分解しただけでは部品が散らかったままで、まとめて初めて全体の形が見えてきます。そしてパターンを見つける力は、経験がそのまま効く分野でもあります。たくさん見た人ほど、速く気づけます。

要点まとめ

アプリで演習問題まで解く(無料・登録不要)

同じトラックのほかの項目

問題を分解する(Decomposition)大きな問題を、手が動く大きさの小問題に分ける考え方を身につける 抽象化——捨てる勇気目的に必要な情報だけを残し、残りを捨てる「抽象化」の考え方を理解する アルゴリズム——手順を組み立てるアルゴリズムの条件を理解し、順次・分岐・反復の3つの型で手順を組み立てられる 擬似コードで書いてみる擬似コードの書き方を知り、日本語まじりで手順を表現できるようになる フローチャート入門フローチャートの基本記号を覚え、処理の流れを図で読み書きできる 日常の問題をアルゴリズム化する身近な問題を、抜けのない手順として書き下せるようになる 良い手順・悪い手順——効率の予感同じ結果でも手順によって手数が大きく変わることを、探索の例で実感する
‹ 問題を分解する(Decomposition) 抽象化——捨てる勇気 ›

もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。

完全版(BOOTH)を見る

📚 姉妹教材:手を動かして覚える Linux 教材 — Linuxとインフラの仕組みを地図で学ぶ

Web版 / BOOTH