Amazon.co.jpで購入する
cbook24.comで購入する
C言語書籍一覧目次へ
|
C言語で「やりたい」ことを「できる」にかえる基本の12章
すべての学習のスタートはここからはじまる
ISBN4-89627-107-6 メディアテック出版
京都大学助教授 中島
康彦
A5判 268ページ 本体価格2,280円 2001年2月
[内容]
プログラミングを初めて学ぶときは、まず文法の学習から始めるのが普通ですが、それでは物足りない、つまらないという方も多いでしょう。やはり自分でプログラムを作成し、それを動かしてみることにプログラミングの醍醐味はあるのです。
そこで本書では、もっと実践的にプログラミングを学びたいという初心者に向け、実際にUNIX上でプログラムを動かしながらCの基本を学んでいく形式をとっています。基本的なプログラムからちょっと高度なものまで作成の手順を追って詳細に解説しているので、本格的なプログラミングを始める際に必要な知識や考え方を、実際に体験しながら身に付けていくことができます。
本書で得たテクニックを使って、ぜひ「やりたい」ことを「できる」にかえていってください!
[目次]
はじめに
§ 本書の内容
§ UNIXのシェルスクリプトでは手に負えない時
§ なぜCか
§ プログラムの移植性
§ 演習にあたって
§ 本書の使い方
§ 謝辞
序章 プログラムによる問題解決
§0.1 telnetコマンドの用意
§0.2 UNIXへの接続
§0.3 Tera TermによるUNIXへのログイン
§0.4 ASTEC-XによるUNIXへのログイン
§0.5 作業ディレクトリを作る
§0.6 ソースプログラムが実行されるまで
§0.7 Cプリプロセッサ(cpp)
§0.7.1 注釈除去
§0.7.2 識別子置換
§0.7.3 ファイル取り込み
§0.7.4 条件付きコンパイル
§0.8 Cコンパイラ本体(cc1)
§0.8.1 区切り
§0.8.2 ブロック
§0.8.3 識別子
§0.8.4 定数
§0.8.5 文字列
§0.8.6 記憶クラスに関する予約語
§0.8.7 型に関する予約語
§0.8.8 サイズを求める予約語
§0.8.9 プログラムの流れを制御する予約語
§0.8.10 その他の予約語
§0.8.11 演算子
§0.9 アセンブラ(as)
§0.10 リンカ(ld)
§0.11 実行
§0.12 ソフトウェア開発とは
§0.13 課題:CPUの差異と無関係なファイルはどれか
第1章 最大/最小/平均
§1.1 作業ディレクトリを作る
§1.2 外部仕様と内部仕様
§1.3 最大=max(D1, D2, …, Dn)
§1.4 最小=min(D1, D2, …, Dn)
§1.5 整数演算に関する留意点
§1.5.1 C言語は整数桁溢れ例外を検出しない
§1.5.2
整数除算では小数点以下は切り捨てられる
§1.6 算術平均=(D1+D2+…+Dn)/n
§1.7 幾何平均=n√(D1*D2* … *Dn)
§1.8 調和平均=n/(1/D1+1/D2+ … +1/Dn)
§1.9 関数呼出しに関する留意点
§1.9.1 値による関数呼出し
§1.9.2 アドレスによる関数呼出し
§1.10 標準入力からのデータ読み込み
§1.11 標準出力へのデータ書き出し
§1.12 プログラムにまとめる(stat1.c)
§1.13 入力データに0があると異常終了
§1.14 改良版(stat2.c)
§1.15 コンパイルと実行
§1.16 課題:耐性試験
第2章 日数/曜日計算(Fairfield公式)
§2.1 作業ディレクトリを作る
§2.2 年月日から経過日数/曜日を求める
§2.3
紀元元年元日からの経過日数を計算するには
§2.4 プログラムにまとめる(days1.c)
§2.5 解説
§2.6 経過日数から年月日/曜日を求める
§2.7 年月日を計算するには
§2.8 プログラムにまとめる(ymd1.c)
§2.9 解説
§2.10 改良版(days2.c)
§2.11 改良版(ymd2.c)
§2.12 コンパイルと実行
§2.13 課題:年月日の正当性検査
第3章
整列と計算量(バブルソートとクイックソート)
§3.1 作業ディレクトリを作る
§3.2 データの作成(sort.data)
§3.3 外部仕様と内部仕様
§3.4 コンピュータの動作と計算量
§3.5 アルゴリズムの違いと計算量
§3.6 バブルソート
§3.7 プログラムにまとめる(sort.bubble.c)
§3.8 解説
§3.9 クイックソート
§3.10 プログラムにまとめる(sort.quick.c)
§3.11 解説
§3.12 コンパイルと実行
§3.13 課題:計算量の変化
第4章 二次方程式と演算精度
§4.1 作業ディレクトリを作る
§4.2 単精度浮動小数点数(IEEE754形式の場合)
§4.3 倍精度浮動小数点数(IEEE754形式の場合)
§4.4 二次方程式の求解
§4.5 実数解を求めるプログラム(equation1.c)
§4.6 解説
§4.7 コンパイルと実行
§4.8 桁落ち
§4.9 実数解を求めるプログラム(equation2.c)
§4.10 解説
§4.11 コンパイルと実行
§4.12 課題:異常終了の回避
第5章 連立一次方程式(Gauss消去法)
§5.1 作業ディレクトリを作る
§5.2 n元連立一次方程式の表現
§5.3 Gauss消去法(LU分解)
§5.4 LとU すなわち mijとAij'を求める
§5.5 Lb' = bを解く
§5.6 Ux=b'を解く
§5.7 除算を減らす
§5.8 実は配列mは不要
§5.9 解が求まらない場合がある
§5.10 行の入れ換え(ピボッティング)
§5.11 解が求まらない場合の検出
§5.12 プログラムの仕様
§5.13 プログラムにまとめる(equation2.c)
§5.14 サンプルファイルの解説
§5.15 コンパイルと実行
§5.16 課題:実際の問題にあてはめる
第6章 積分(数値積分,Monte Carlo法)
§6.1 作業ディレクトリを作る
§6.2 Simpson公式(二次曲線による近似)
§6.3 プログラムの仕様
§6.4 Simpson公式に基づくプログラム
§6.5 解説
§6.6 Monte Carlo法(乱数を用いる近似)
§6.7 プログラムの仕様
§6.8 Monte Carlo法に基づくプログラム
§6.9 解説
§6.10 半径2の円の4分の1(答えはπ)
§6.11 コンパイルと実行
§6.12 正規密度関数(原始関数が存在しない)
§6.13 コンパイルと実行
§6.14 課題:正規密度関数を用いてπを求める
第7章 待ち行列シミュレーション
§7.1 作業ディレクトリを作る
§7.2 時刻0〜mの間にちょうどx人が到着する確率
§7.3 次の1人の到着時刻が0〜mである確率
§7.4 ポアソン分布と指数分布
§7.5 M/M/1モデル
§7.6 シミュレーション
§7.7 プログラムの仕様
§7.8 プログラムにまとめる(queue.c)
§7.9 解説
§7.10 コンパイルと実行
§7.11
課題:異常な待ち行列をシミュレートしてみる
第8章 回帰分析(最小自乗法)
§8.1 作業ディレクトリを作る
§8.2 最小自乗法
§8.3 プログラムの仕様
§8.4 プログラムにまとめる(squares.c)
§8.5 解説
§8.6 コンパイルと実行
§8.7 サンプルデータを使った実行
§8.8 課題:将来のデータ量の推定
第9章 時系列分析(移動平均法)
§9.1 作業ディレクトリを作る
§9.2 移動平均法
§9.3 プログラムの仕様
§9.4 プログラムにまとめる(ido.c)
§9.5 解説
§9.6 コンパイルとサンプルデータを使った実行
§9.7 RANGEを10や14に変更してみる
§9.8 課題:季節変動を除去できない理由
第10章 最短経路探索(Dijkstra法)
§10.1 作業ディレクトリを作る
§10.2 Dijkstra法
§10.3 プログラムの仕様(データ構造)
§10.4 一次元リスト(一方向リスト)
§10.5 プログラムの仕様(関数の仕様)
§10.6 プログラムの組み立て(dijkstra.c)
§10.7 冗長な部分をまとめる
§10.8 プログラムの組み立て(dijkstra.c続き)
§10.9 コンパイルとサンプルデータを使った実行
§10.10
課題:通行不能区間がある場合の最短経路
第11章 最大流問題(多層ネットワークとKarzanov法)
§11.1 作業ディレクトリを作る
§11.2 多層ネットワーク
§11.3 極大流
§11.4 Karzanov法
§11.5 プログラムの仕様(データ構造)
§11.6 一次元リスト(双方向リスト)
§11.7 プログラムの仕様(関数の仕様)
§11.8 プログラムの組み立て(karzanov.c)
§11.9 コンパイルとサンプルデータを使った実行
§11.10 課題:バイパスがある場合の極大流
【付録】 演習に必要なファイルの入手方法
【付録】 課題解答
索引
|