C言語プログラミング入門 - C99対応 -

C言語プログラミング入門 - C99対応 -

初めてC言語を学ぶ人のための入門書。単なる文法の羅列は避け,必要最低限の文法とアルゴリズムに内容を凝縮させ,それをいかに使うかに焦点を絞った。最新のC99規格で取り入れられた複素数型などのプログラム例も示している。

ジャンル
発行年月日
2009/09/25
判型
A5
ページ数
236ページ
ISBN
978-4-339-02442-5
C言語プログラミング入門 - C99対応 -
在庫あり
2営業日以内に出荷致します。

定価

2,750円(本体2,500円+税)

カートに入れる

電子版を購入

購入案内

  • 内容紹介
  • まえがき
  • 目次
  • 著者紹介

初めてC言語を学ぶ人のための入門書。単なる文法の羅列は避け,必要最低限の文法とアルゴリズムに内容を凝縮させ,それをいかに使うかに焦点を絞った。最新のC99規格で取り入れられた複素数型などのプログラム例も示している。

本書は慶應義塾大学理工学部2年生の授業のために作成した資料をテキストとしてまとめたものであるが,C言語を初めて学び,道具として使いたい人のためのテキストとしても使えるように心がけている。本書には,著者が10年間授業を教える中で,学生から数多く質問された内容に対する答えや授業を教えた際に補足説明した内容,さらには10年の間に起こったソフトウェアのバージョンアップなどに関する補足説明を取り入れるように心がけている。

プログラミング技術の習得のためには,プログラム言語の文法と問題解決のためのアルゴリズムの両方を覚えなければならない。著者が学生だった頃には,一つのテキストの中に,文法を知っているだけで解ける問題と文法とアルゴリズムの両方を知らなければ解けない問題の両方を扱ったものが多かった。そのためテキストの内容が理解できなくなったときに,文法がわからないのかアルゴリズムがわからないのか理解できず,結果としてプログラミングの習得ができないというケースが多数あったように思われる。そのような反省からか,最近出版されているプログラミング言語のテキストは,文法中心になっていて,アルゴリズムの部分については他書にゆだねるというスタイルのものが多い。本書もそのような文法中心のスタイルで書かれている。文法に関連した最低限のアルゴリズムは必要であるが,数値解析などのアルゴリズムを理解するのはそれだけで大変な作業だと思われる。

しかし,問題解決のアルゴリズムをすべて他書にゆだねるとしても,C言語の書き方をすべて理解するのは大変な労力を要する。実際に私たちが普段研究にC言語を使っていて,本当に知らなければならないことというのはどの程度のことだろうか。プログラミングを勉強してみると,本当に覚えなければならないことが意外に少ないということがわかる。本書では,C言語を使うときに最もよく利用する書式を中心に説明している。もちろんプログラムの専門家(プログラマ)になるにはもっと多くのことを勉強しなければならないが,一般的には本書で書かれている範囲のことを理解すれば十分だろう。

また,数多くのC言語の本が出版されているが,それぞれの書籍で書式が若干違っている。もちろん規格どおりにプログラミングしても多くのバリエーションがあるが,規格にはない書式を用いている本も多く見受けられる。特に1999年の規格改定では極めて大幅な改定が行われている。この最新規格は,C99と呼ばれており,この規格を100%取り入れた処理系はまだ見当たらない。大学の研究でよく用いられる処理系の中では,gccの最新のバージョンがC99規格によく対応している。本書は,2002年にコロナ社より出版された「C言語によるプログラミングの基碇」を全面的に改訂したものである。改訂に際して,C99の規格で新しく取り入れられた複素数型や可変長自動配列についてもプログラム例を示して説明している。

なお、本書の章末問題の解答は、Webページ(http://isp.appi.keio.ae.jp/)の「書籍」に掲載している。

最後に本書原稿を熟読し,出版にあたっていろいろとお世話をいただいたコロナ社の方々に深く感謝申し上げたい。

2009年7月
田中敏幸

目次
1. プログラミングの予備知識
 1.1 C言語の歴史
 1.2 コンパイラとインタプリタ
 1.3 その他のプログラミング言語
 1.4 文字コード
 1.5 アルゴリズムとアドレス.
 1.6 プログラムを実行するまで
 1.7 プログラム中のコメント
章末問題

2. ディスプレイ表示
 2.1 プログラムの書き方
 2.2 ディスプレイへの表示-printf関数の書き方-
 2.3 データ型
 2.4 変換指定によるデータ表示
 2.5 変数の値を表示する
 2.6 出力のフィールド幅と桁数
 2.7 printf関数の仲間たち
  2.7.1 標準ストリーム
  2.7.2 putc関数
  2.7.3 putchar関数
  2.7.4 puts関数
章末問題

3. キーボード入力と算術演算
 3.1 標準入力-scanf 文の書き方-
 3.2 プロンプト
 3.3 scanf関数の仲間たち
  3.3.1 getc関数
  3.3.2 getchar関数
 3.4 演算子
  3.4.1 算術演算子(四則演算)
  3.4.2 代入演算子(=)
  3.4.3 キャスト演算子
  3.4.4 ビット演算子
章末問題

4. 条件判断
 4.1 条件によって処理を変える
  4.1.1 if文
  4.1.2 関係演算子
  4.1.3 if-else文
  4.1.4 else-if文
  4.1.5 論理演算子
 4.2 条件演算子
 4.3 多数の選択肢(switch文)
章末問題

5. 同様の処理を繰り返す
 5.1 while文
 5.2 複合代入演算子
 5.3 do-while文
 5.4 for文
 5.5 goto文
章末問題

6. ライブラリ関数
 6.1 関数を使ってみよう
 6.2 複素関数
 6.3 文字種の判定と変換
章末問題

7. ユーザ定義関数
 7.1 自分独自の関数を作ってみよう
  7.1.1 関数の定義
  7.1.2 関数の呼び出し
  7.1.3 プロトタイプ宣言
 7.2 関数の性質
 7.3 関数のネスティングと再帰呼び出し.
章末問題

8. 記憶域クラスとプリプロセッサ
 8.1 記憶域クラス
  8.1.1 自動変数(auto)
  8.1.2 外部変数(extern)
  8.1.3 静的変数(static)
  8.1.4 レジスタ変数(register)
 8.2 プリプロセッサ
章末問題

9. 配列
 9.1 一次元配列
 9.2 多次元配列
 9.3 可変長自動配列
章末問題

10. ポインタ
 10.1 ポインタとアドレス
 10.2 動的メモリ割り付け
 10.3 ポインタと配列の違い
章末問題

11. 文字列処理
 11.1 文字配列
 11.2 ポインタによる文字列処理
章末問題

12. 構造体
 12.1 構造体
 12.2 時間を表す構造体
章末問題

13. データの保存と表示
 13.1 データの保存処理-ファイル処理-
  13.1.1 ファイル処理の基本.
  13.1.2 テキストファイルへの入出力-fprintf,fscanf -
  13.1.3 バイナリファイルへの入出力-fwrite,fread -
 13.2 計算結果のグラフ表示
章末問題

付録
A.1 標準ライブラリ
A.2 Microsoft Visual C++の使い方
A.3 GNU gcc の使い方
A.4 計算結果のグラフ表示
引用・参考文献
索引

田中 敏幸(タナカ トシユキ)

関連資料(一般)

  • 章末問題解答

関連資料ダウンロードはこちら