関連サイト
本書の関連ページが用意されています。
内容紹介
C言語によるプログラミングを理解するためには、コンピュータやプログラミングについてあらかじめある程度の知識を持っている必要があります。
本書のコンセプトは「コンピュータ無しで学べる」ことです。Cプログラミングを「学ぶ前」に知っておいてほしいことをまとめました。本書を読んでからコンピュータを使ってCプログラミングを始めれば、プログラミングを効率よく学ぶことができるはずです。
「早くCプログラミングを体験してみたい」人は本書と普通の「Cプログラミング入門書」との併読も可能。もちろんCプログラミングで「挫折」した人にも本書をお奨めします。
書誌情報
- 著者: 村山公保
- ページ数: 348ページ(PDF版換算)
- 対応フォーマット: PDF
- 出版社: マイナビ出版
対象読者
コンピュータプログラミングの入門者、Cプログラミングに挫折した人
著者について
村山公保
倉敷芸術科学大学大学院産業科学技術研究科 計算機科学専攻教授、博士(工学)
[主な著書]
「基礎講座C」(毎日コミュニケーションズ)
「基礎からわかるTCP/IP ネットワーク実験プログラミング第2 版」「基礎からわかるTCP/IP ネットワークコンピューティング入門 第2 版」「マスタリングTCP/IP 入門編 第4 版」(共著)(以上、オーム社)
「岩波講座インターネット第3 巻トランスポートプロトコル」(共著)(岩波書店)
目次
はじめに
本書の使い方
序章 Cプログラミングを学ぶ前に
- 0.1 Cの上達が早い人
- 0.2 Cプログラミングができるようになるためには
- 0.3 目標プログラム
- 0.4 本書の内容
第1章 はじめの一歩
- 1.1 プログラムってなんだろう?
- 1.1.1 プログラミングとは?
- 1.1.2 コンピュータのプログラム
- 1.1.3 入力、処理、出力
- 1.1.4 0と1とコンピュータプログラミング
- 1.2 2進数と情報の単位
- 1.2.1 コンピュータの基本はビット
- 1.2.2 複数桁の2進数を使う
- 1.2.3 1バイトは8ビット
- 1.2.4 よく使われる16進数
- 1.3 プログラムとソフト、ハード
- 1.3.1 ハードウェアとソフトウェア
- 1.3.2 コンピュータのソフトは2進数
- 1.3.3 高級言語と低級言語
- 1.3.4 ソフトは入れ替えられる
- 1.4 Cプログラミングを学ぶ前の心構え
- 1.4.1 プログラミングの適性
- 1.4.2 物事をするときの段取りをきちんと考える
- 1.4.3 手作業でできないことはプログラミングできない
- 1.4.4 法則性を見つけ出す
- 1.4.5 物事を数字に置き換える力
- 1.4.6 巡回する数字
- 1.4.7 入力と出力から中身を考える
- Exercises: 演習問題
第2章 Cプログラムを観察しよう
- 2.1 Cのプログラムを見てみよう
- 2.1.1 Cプログラムの例
- 2.1.2 Cプログラムと行番号
- 2.1.3 Cプログラムは文字で作る
- 2.1.4 Cは英語とは違う
- 2.1.5 プログラムの見かけをおそれるな!
- 2.2 音読のすすめ
- 2.2.1 声に出して読んでみよう
- 2.2.2 それでは実践です
- 2.2.3 読み方の例
- 2.2.4 なぜそう読むの?
- 2.2.5 パターン認識力
- 2.3 記号に慣れよう
- 2.3.1 Cの記号に慣れよう
- 2.3.2 読みにくい記号
- 2.4 英字の省略形に慣れよう
- 2.4.1 省略形に慣れる
- 2.4.2 printf、stdioの覚え方
- 2.5 Cの流儀を理解しよう
- 2.5.1 Cの流儀
- 2.5.2 実行開始の場所と終了の場所
- 2.5.3 カッコに注意しよう
- 2.5.4 Cプログラムは関数の集まり
- 2.5.5 インデント(字下げ)を理解しよう
- Exercises: 演習問題
第3章 プログラムの作り方
- 3.1 プログラムを作るときの考え方
- 3.1.1 手順を考える
- 3.1.2 入力、処理、出力を考える
- 3.1.3 ファイル入出力
- 3.1.4 関数(ファンクション)と部品(モジュール)
- 3.1.5 すべてを作る必要はない
- 3.1.6 決まった処理はコンピュータに任せよう
- 3.2 プログラムが実行されるまで
- 3.2.1 コンパイル、アセンブル
- 3.2.2 ライブラリのリンク
- 3.2.3 エラーになると実行できない
- 3.2.4 実行中にエラーが起きることもある
- 3.2.5 処理系依存
- Exercises: 演習問題
第4章 データの表現方法
- 4.1 数字の表現方法
- 4.1.1 デジタル
- 4.1.2 コンピュータは有限の桁数を処理する
- 4.1.3 データには型がある
- 4.1.4 2進数の負の数
- 4.1.5 オーバーフロー
- 4.1.6 浮動小数点
- 4.2 文字の表現方法
- 4.2.1 ASCII文字セット
- 4.2.2 制御コードとエスケープシーケンス
- 4.2.3 日本語の表現方法
- Exercises: 演習問題
第5章 Cを学ぶために必要なコンピュータの知識
- 5.1 コンピュータの構造
- 5.1.1 パーソナルコンピュータの構造
- 5.1.2 メモリにはアドレスが付いている
- 5.1.3 メモリへの読み書き
- 5.1.4 CPUとメモリはバスでつながっている
- 5.1.5 ROMとRAM
- 5.1.6 CPUと入出力装置もバスでつながっている
- 5.2 プログラムが実行されるまで
- 5.2.1 CPUを構成する3つの装置
- 5.2.2 CPUの基本処理
- 5.2.3 プログラムはメモリ上に置かれる
- 5.2.4 マシン語命令の実行
- 5.2.5 演算装置(ALU)による演算処理
- 5.2.6 メモリバスのビット数
- 5.3 プログラムの構造
- 5.3.1 プログラムの種類
- 5.3.2 ソフトウェアの階層構造
- 5.3.3 プログラムの実行とシェル
- 5.3.4 プログラムの構造
- 5.3.5 プロセスとスレッド
- 5.4 入出力
- 5.4.1 入出力とバッファ
- 5.4.2 標準入出力
- 5.4.3 リダイレクト
- 5.4.4 ファイル入出力
- 5.4.5 ストリーム
- 5.4.6 入力の終わりはEOF
- Exercises: 演習問題
第6章 コンピュータは計算機
- 6.1 Cプログラミングと数学
- 6.1.1 普通の数学とは違う
- 6.1.2 演算子を使って計算する
- 6.1.3 演算子には優先順位がある
- 6.1.4 定数と変数
- 6.1.5 イコール(=)は代入
- 6.1.6 演算は1つひとつ丁寧に行われる
- 6.1.7 演算の状態は保存される
- 6.2 2進数の計算
- 6.2.1 2進数の基本演算
- 6.2.2 2進数の演算の基本はビット演算
- 6.2.3 シフト演算
- 6.3 演算子
- 6.3.1 四則演算と剰余
- 6.3.2 カンマ演算子
- 6.3.3 増分演算子(インクリメント)、減分演算子(デクリメント)
- 6.3.4 代入演算子
- 6.3.5 比較演算子
- 6.3.6 論理演算子
- 6.3.7 条件演算子
- Exercises: 演習問題
第7章 変数とメモリ
- 7.1 変数とメモリ
- 7.1.1 メモリを組み合わせて型を作る
- 7.1.2 変数は宣言しないと使えない
- 7.1.3 2種類の変数、自動変数と静的変数
- 7.1.4 変数には分かりやすい名前を付けよう
- 7.2 ポインタ
- 7.2.1 ポインタとは?
- 7.2.2 ポインタの実際
- 7.2.3 0番地(NULL)だけ特別
- 7.3 配列
- 7.3.1 配列とは
- 7.3.2 配列とメモリ
- 7.3.3 文字データをメモリに格納する
- 7.4 構造体
- 7.4.1 構造体とは
- 7.4.2 構造体とメモリ
- 7.5 変数をより深く知ろう
- 7.5.1 キャスト(型変換)
- 7.5.2 メモリの動的取得(malloc)
- Exercises: 演習問題
第8章 処理の流れ
- 8.1 処理の流れとフローチャート
- 8.1.1 処理の流れ
- 8.1.2 フローチャート
- 8.2 処理の流れとフローチャート
- 8.2.1 基本は順次処理(sequential)
- 8.2.2 選択処理(select)
- 8.2.3 反復処理(loop)
- 8.2.4 while文によるループ
- 8.2.5 for文によるループ
- 8.3 コンピュータの内部での処理の流れ
- 8.3.1 内部の流れを知ろう
- 8.3.2 基本は順次処理(sequential)
- 8.3.3 選択処理(select)
- 8.3.4 反復処理(loop)
- Exercises: 演習問題
第9章 関 数
- 9.1 関数とは?
- 9.1.1 数学の関数のおさらい
- 9.1.2 Cの関数
- 9.1.3 関数を作る理由
- 9.2 関数の基礎知識
- 9.2.1 メインルーチンとサブルーチン
- 9.2.2 引数と戻り値
- 9.2.3 関数を使うときには宣言が必要
- 9.2.4 スコープ(通用範囲)
- 9.2.5 関数とマクロの違い
- 9.3 関数呼び出しの仕組み
- 9.3.1 関数とメモリ
- 9.3.2 関数呼び出しの実際
- 9.3.3 関数呼び出しとスタック
- Exercises: 演習問題
第10章 ソフトウェア開発の基礎
- 10.1 プログラムの開発と実践
- 10.1.1 プログラムを作る目的・使用する目的
- 10.1.2 ソフトウェア開発工程
- 10.2 ウォーターフォールモデル
- 10.2.1 要求定義
- 10.2.2 外部設計と内部設計
- 10.2.3 コーディング
- 10.2.4 テスト
- 10.3 開発以外に大切なこと
- 10.3.1 運用
- 10.3.2 スキルアップ
- Exercises: 演習問題
おわりに
付 録
- A.1 サンプルプログラム
- A.2 演算子の優先順位
- A.3 2進数と桁数
- A.4 数の接頭語
- A.5 10進数 <-> 16進数変換表
- A.6 10進数 <-> 16進数、2進数変換表
- A.7 2進数から10進数に変換する方法
- A.8 10進数から2進数に変換する方法
- A.9 16進数から10進数に変換する方法
- A.10 10進数から16進数に変換する方法
- A.11 ASCII文字セット(ASCII character sets)
- A.12 Cのエスケープシーケンス
- A.13 読みにくい記号
- A.14 読みにくい単語
- A.15 for文プログラムのフローチャートの例
- A.16 while文プログラムのフローチャートの例