C言語学習ポータル(無料版) 学習コンテンツ プログラミング的思考

🧭 プログラミング的思考

全8トピック・無料版に収録

分解・パターン認識・抽象化・アルゴリズム。コードを書く前に身につける4つの思考道具を、日常の例題で体感する。

アプリでこのトラックを学ぶ(無料・登録不要)

収録トピック

問題を分解する(Decomposition)

「引っ越しをする」と言われて、いきなり最初の一手を出せる人はいません。大きすぎて、どこから手をつけるか分からないからです。プログラミングでも同じことが起きます。「家計簿アプリを作る」と考えた瞬間に固まってしまうのは、能力の問題ではなく問題の大きさの問題です。 そこで最初の道具が分解です。大きな問題を、それ以上考えなくても手が動く大きさまで割っていきます。 カ…

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

分解して部品を並べると、次に見えてくるものがあります。似ているものです。この「似ている」を見つける力が、2つ目の道具パターン認識です。 カレーとシチューは8割同じ 作り方を並べてみましょう。 カレー: 材料を切る → 炒める → 煮る → カレールーを入れる シチュー: 材料を切る → 炒める → 煮る → ホワイトソースを入れる 最後以外は同じです。という…

抽象化——捨てる勇気

電車の路線図を思い浮かべてください。あの図には、実際の距離も、線路の曲がり具合も、川も山も描かれていません。それなのに——いや、描かれていないからこそ、乗り換えが一瞬で分かります。 これが3つ目の道具、抽象化です。一言でいえば、いまの目的に関係ない情報を捨てることです。 目的が変われば、捨てるものも変わる 同じ「東京」を表すのでも、 乗り換えを知りたい人には…

アルゴリズム——手順を組み立てる

分解して、パターンを見つけて、抽象化する。ここまでで材料は揃いました。最後の道具は、それらを動く順番に組み立てることです。この組み立てた手順をアルゴリズムと呼びます。 アルゴリズムと呼べる条件 ただの思いつきの手順とアルゴリズムを分けるのは、次の3つです。 明確 — どの手順も、解釈のブレなく実行できる 有限 — いつか必ず終わる(永遠に続く手順はアルゴリズ…

擬似コードで書いてみる

頭の中の手順を、そのままC言語で書こうとすると大変です。文法の心配と、手順の心配を同時にすることになるからです。人間の頭は、2つのことを同時に考えるのが苦手です。 そこで使うのが擬似コードです。プログラムの形をした日本語、と考えてください。文法エラーの存在しない世界で、手順だけに集中できます。 書き方の作法 決まった規格はありませんが、次の作法で書くと読みや…

フローチャート入門

擬似コードが「手順の文章」なら、フローチャートは「手順の絵」です。同じことを表しますが、絵にすると流れの形が一目で分かります。 覚える記号は5つだけ 角丸の四角(端子) — 「開始」「終了」。1本の流れの入口と出口 長方形(処理) — 計算や代入など、何かをする ひし形(判断) — 条件を書き、はい/いいえで2本に分かれる 平行四辺形(入出力) — 入力を受…

日常の問題をアルゴリズム化する

道具は4つ揃いました。分解・パターン・抽象化・アルゴリズムです。ここでは実際に、日常の問題を機械が実行できる手順に落としてみます。これができれば、あとは文法を覚えるだけという段階に入ります。 例題1: 自動販売機のおつり 1000円を入れて150円の飲み物を買ったとき、850円のおつりを枚数が最も少なくなるように返す手順を考えます。 おつり ← 投入金額 −…

良い手順・悪い手順——効率の予感

同じ答えにたどり着く手順が2つあったとき、どちらが良いのでしょうか。正しさが同じなら、次に見るのは手数です。 辞書で「たまご」を引く 紙の辞書で言葉を探す方法を2つ考えます。 方法A: 1ページ目から順にめくって探す 方法B: まん中を開く。目的の語より後ろなら前半を、前なら後半を捨てる。残った範囲でまた、まん中を開く 1000ページの辞書で比べます。方法A…

このトラックで出てくる用語

アルゴリズム 擬似コード 効率 抽象化 パターン認識 フローチャート プログラミング的思考 分解 問題解決

ほかのトラック

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

完全版(BOOTH)を見る

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

Web版 / BOOTH