So-net無料ブログ作成

本のベストセラー

アルゴリズムの絵本-プログラミングが好きになる9つの扉 [プログラミング]

初心者がプログラムを作れるようになるように書いた本。
アルゴリズムはプログラムを作るときの考え方。複雑な数学的計算により結果を求めていく高度なロジッ

クもあるが、この本では初歩的なアルゴリズムに触れながら、プログラムを作る際のアプローチを解説。
イラストを使い、一テーマ見開き2ページで解説。

プログラムとは、コンピュータにために書かれた命令書。ただ順番にやっていくだけでなく、分岐すると

ころが面白いし役に立つところ。

プログラムができるまでは、企画→設計→コーディング→デバッグ→ドキュメント→完成となる。
一人でやるときでも、設計くらいはしないと、完成はおぼつかない。

処理の流れを表すフローチャートの書き方を解説。

言語はC言語を使うので、この使い方と文法をかるーく紹介。
文字列、変数・定数、数値、配列、ポインタ、演算子、比較・論理演算子
ファイル読み書き、キーボード入力、メモリの確保の仕方、構造体

基本制御解説
処理の分岐/繰り返しが基本。これを使ってプログラムを構造化するという。
if,for while,break,switch解説

制御活用(実際にプログラミングする)
1-5の和
配列から値を見つける
などを通して、構造化の具体例、テストの方法などを少しずつ解説
最後はコイン投げゲームを作ってみる。

関数を使う
関数=値を与えて値を戻すものが多いが、返さないものもある。呼び出すと何度でも利用でき、再帰呼び

出しもできる。
定義方法、プロトタイプ宣言、呼び出すときは引数を揃える。
変数はローカルとグローバルがあり、ローカルは関数が呼び出されるとメモリが確保される。
渡される引数は値と参照があり、箱の中身をわたすか、箱の場所を渡すかで解説。
1-5の和を始まり終わりを渡す関数に直してみる。
階乗をもとめるプログラムを再帰処理で書く。

カレンダーを作るのを題材に具体的にプログラミングの道筋を考える。
①問題を整理
どんな入力でどんな表示がでる?
どんな情報が必要?
②設計
メイン関数の中に
 a入力データを読み込む関数
 b月の日数を決定する関数
 c最初の日の曜日を決定する関数
 dカレンダーを表示する関数
がいる
③それぞれの関数を記述
④よりよりプログラムを目指す
 流れがわかりやすいか
 無駄がないか
 他のプログラムへの応用がきくか
⑤テストとデバッグ
ここでは、わざとバグを残して読者に考えさせていた。

実践プログラミング
ラインエディタを作る。
①仕様分析
必要な機能と、入力可能なコマンドをきめる。画面イメージを決める。
②データ形式を決める。読み込む行数はファイルに合わせて決めることになるとわかる。
大きさの決まっていない2次元配列は
char (*buf)[5]; となる。
この部分の読み込みをするところだけを試作していた。
③基本設計決定
処理フローをつくる。変数のスコープで読み込みバッファ、ファイル名、読み込み行数はグローバルの方

がプログラムが煩雑にならないなどを決定。
④メイン部分からコーディング

高度なアルゴリズム解説
素数・素因数分解、最大公約数(ユークリッド互除法)を求める
リンクリストを使ってみる

ソートとサーチ(アルゴリズムがフローで解説してあった)
交換法・・・基準となる要素を設定し、それより右の要素と比較して順序が異なっていれば入れ替える
バブルソート・・・隣り合う要素を比較して、右の方が小さければ両者を入れ替えるという作業を左から

順に行い、大きい数を右によせていく。
挿入ソート・・・並べ替えが済んだカードを配列にいれながら、配列の適正な位置に要素を挿入していく
シェルソート・・・大まかに分割してその中で並べ替えて最後は挿入ソート
クイックソート・・・基準値を決めて、それより大きい数と小さいグループに分ける。それらのグループ

に対して同じことを繰り返す。
二分探索・・・整列されているデータを二つにわけ、目的の値の検索範囲を絞り込んでいく。
ほとんどの場合クイックソートが速いが元の並びしだいでは他が速いこともある。

プログラミングで詰まったらのアドバイス
初心者はなにがわからないかわからないという状態が多い。なにがわからないかはっきりさせよう。
サンプルをよんだりしてコードに慣れよう。

プログラミングの心得
その1集中して書く
その2わからないところで止まらない
その3コーディングばかりやらない
その4妥協しない
その5プライドを持つ
その6恥ずかしがらずに聞く
その7健康に気を付ける
その8周りの意見を聞く。


アルゴリズムの絵本-プログラミングが好きになる9つの扉

アルゴリズムの絵本-プログラミングが好きになる9つの扉

  • 作者: (株)アンク
  • 出版社/メーカー: 翔泳社
  • 発売日: 2003/08/05
  • メディア: 単行本(ソフトカバー)



nice!(1)  コメント(0)  トラックバック(0) 

nice! 1

コメント 0

トラックバック 0


この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。