ストラウストラップのプログラミング入門(ビャーネ・ストラウストラップ 遠藤 美代子 επιστημη(エピステーメー))|翔泳社の本
  1. ホーム >
  2. 書籍 >
  3. ストラウストラップのプログラミング入門

ストラウストラップのプログラミング入門


翻訳
監修

形式:
書籍
発売日:
ISBN:
9784798119595
定価:
8,580(本体7,800円+税10%)
仕様:
B5変・1176ページ
分類:
プログラミング・開発

本書籍の他の形式を確認する

  • このエントリーをはてなブックマークに追加

C++の生みの親が初心者に語りかけるプログラミングの王道と手法

「プログラムを開発する」にはさまざまな問題が待ち構えている。開発するための環境であったり動作環境であったり対象ユーザーであったり、あるいは言語の選択やその言語の特性の理解などなど。しかし、純粋に“プログラムを組む”ことに焦点を合わせると、そこには各種問題を解決できる単純な原則がある。本書はその原則を実際に展開しながら「プログラミングとはなにか」「どうやってプログラミングを学習するか」を平易に解説してゆく。何度も挫折を繰り返した学習者や、原点に立ち戻り“プログラミング”を深めたい実務者など、すべての開発者必読の一冊である。


第1章 コンピュータ、人、プログラミング

1.1 はじめに
1.2 ソフトウェア
1.3 人
1.4 コンピュータサイエンス
1.5 遍在するコンピュータ
1.6 プログラマの基準

第1部 基礎

第2章 Hello, World!

2.1 プログラム
2.2 最初のプログラム
2.3 コンパイル
2.4 リンク
2.5 プログラミング環境

第3章 オブジェクト、型、値

3.1 入力
3.2 変数
3.3 入力と型
3.4 演算と演算子
3.5 代入と初期化
3.6 複合代入演算子
3.7 名前
3.8 型とオブジェクト
3.9 型の安全性

第4章 計算

4.1 計算
4.2 目的とツール
4.3 式
4.4 文
4.5 関数
4.6 vector
4.7 言語の機能

第5章 エラー

5.1 概要
5.2 エラーの原因
5.3 コンパイルエラー
5.4 リンクエラー
5.5 ランタイムエラー
5.6 例外
5.7 論理エラー
5.8 概算
5.9 デバッグ
5.10 事前条件と事後条件
5.11 テスト

第6章 プログラムの記述

6.1 問題
6.2 問題について考えること
6.3 電卓
6.4 文法
6.5 文法からコードへの変換
6.6 バージョン1 のテスト
6.7 バージョン2 のテスト
6.8 トークンストリーム
6.9 プログラムの構造

第7章 プログラムの完成

7.1 概要
7.2 入力と出力
7.3 エラー処理
7.4 負の数字
7.5 剰余:%
7.6 コードのクリーンアップ
7.7 エラーからのリカバリー
7.8 変数

第8章 プログラミング言語の機能:関数、その他

8.1 プログラミング言語の機能
8.2 宣言と定義
8.3 ヘッダーファイル
8.4 スコープ
8.5 関数の呼び出しと制御の戻し
8.6 評価の順序
8.7 名前空間

第9章 プログラミング言語の機能:クラス、その他

9.1 ユーザー定義型
9.2 クラスとメンバ
9.3 インターフェイスと実装
9.4 クラスの発展
9.5 列挙
9.6 演算子のオーバーロード
9.7 クラスのインターフェイス
9.8 Date クラス

第2部 入力と出力

第10章 入力および出力ストリーム

10.1 入力と出力
10.2 I/O ストリームモデル
10.3 ファイル
10.4 ファイルを開く
10.5 ファイルの読み取りと書き込み
10.6 I/O エラー処理
10.7 1 つの値の読み取り
10.8 ユーザー定義の出力演算子
10.9 ユーザー定義の入力演算子
10.10 標準入力ループ
10.11 構造化されたファイルの読み取り

第11章 入力と出力のカスタマイズ

11.1 規則性と不規則性
11.2 出力のフォーマット
11.3 ファイルのオープンと位置の指定
11.4 文字列ストリーム
11.5 行指向の入力
11.6 文字の分類
11.7 非標準セパレータの使用
11.8 その他の詳細

第12章 表示モデル

12.1 なぜグラフィックスなのか
12.2 表示モデル
12.3 最初の例
12.4 GUI ライブラリの使用
12.5 座標
12.6 Shape
12.7 Shape のプリミティブの使用
12.8 実行

第13章 グラフィックスクラス

13.1 グラフィックスクラスの概要
13.2 Point とLine
13.3 Lines
13.4 Color
13.5 Line_style
13.6 Open_polyline
13.7 Closed_polyline
13.8 Polygon
13.9 Rectangle
13.10 名前のないオブジェクトの管理
13.11 Text
13.12 Circle
13.13 Ellipse
13.14 Marked_polyline
13.15 Marks
13.16 Mark
13.17 Image

第14章 グラフィックスクラスの設計

14.1 設計原理
14.2 Shape
14.3 基底クラスと派生クラス
14.4 オブジェクト指向プログラミングの利点

第15章 関数とデータのグラフ化

15.1 概要
15.2 単純な関数のグラフ化
15.3 Function
15.4 Axis
15.5 近似
15.6 データのグラフ化

第16 章 GUI

16.1 ユーザーインターフェイスの選択肢
16.2 [Next]ボタン
16.3 単純なウィンドウ
16.4 Button とその他のWidget
16.5 例
16.6 制御の反転
16.7 メニューの追加
16.8 GUI コードのデバッグ

第3部 データとアルゴリズム

第17章 ベクタとフリーストア

17.1 概要
17.2 vector の基礎
17.3 メモリ、アドレス、ポインタ
17.4 フリーストアとポインタ
17.5 デストラクタ
17.6 要素へのアクセス
17.7 クラスオブジェクトへのポインタ
17.8 型の操作:void* とキャスト
17.9 ポインタと参照
17.10 this ポインタ
17.10.1 リンクのその他の使用法

第18章 ベクタと配列

18.1 概要
18.2 コピー
18.3 不可欠な操作
18.4 vector の要素へのアクセス
18.5 配列
18.6 例:回文

第19章 ベクタ、テンプレート、例外

19.1 問題
19.2 サイズの変更
19.3 テンプレート
19.4 範囲チェックと例外
19.5 リソースと例外

第20章 コンテナとイテレータ

20.1 データの格納と処理
20.2 STL の理念
20.3 シーケンスとイテレータ
20.4 リンクリスト
20.5 vector のさらなる一般化
20.6 例:単純なテキストエディタ
20.7 vector、list、string
20.8 自作のvector をSTL 実装に合わせる
20.9 STL への組み込み配列の適合
20.10 コンテナの概要

第21章 アルゴリズムとマップ

21.1 標準ライブラリのアルゴリズム
21.2 最も単純なアルゴリズム:find()
21.3 一般的な検索:find_if()
21.4 関数オブジェクト
21.5 数値アルゴリズム
21.6 連想コンテナ
21.7 コピー
21.8 ソートと検索

第4部 視野を広げる

第22章 理想と歴史

22.1 歴史、理想、プロフェッショナリズム
22.2 プログラミング言語の歴史の概要

第23章 テキストの操作

23.1 テキスト
23.2 文字列
23.3 I/O ストリーム
23.4 マップ
23.5 問題
23.6 正規表現の概念
23.7 正規表現を使った検索
23.8 正規表現構文
23.9 正規表現を使ったマッチング
23.10 参考文献

第24章 数値

24.1 概要
24.2 サイズ、精度、オーバーフロー
24.3 配列
24.4 C スタイルの多次元配列
24.5 Matrix ライブラリ
24.6 例:1 次方程式を解く
24.7 乱数
24.8 標準数学関数
24.9 複素数
24.10 参考文献

第25章 組み込みシステムプログラミング

25.1 組み込みシステム
25.2 基本概念
25.3 メモリ管理
25.4 アドレス、ポインタ、配列
25.5 ビット、バイト、ワード
25.6 コーディング標準

第26章 テスト

26.1 私たちが望むもの
26.2 証明
26.3 テスト
26.4 テストのための設計
26.5 デバッグ
26.6 パフォーマンス
26.7 参考文献

第27章 C プログラミング言語

27.1 C とC++:同胞
27.2 関数
27.3 言語間の小さな相違点
27.4 フリーストア
27.5 C スタイルの文字列
27.6 入出力:stdio
27.7 定数とマクロ
27.8 マクロ
27.9 例:侵入性があるコンテナ

第5部 付録

付録A 言語のまとめ

A.1 概要
A.2 リテラル
A.3 識別子
A.4 スコープ、ストレージクラス、ライフタイム
A.5 式
A.6 文
A.7 宣言
A.8 組み込み型
A.9 関数
A.10 ユーザー定義型
A.11 列挙
A.12 クラス
A.13 テンプレート
A.14 例外
A.15 名前空間
A.16 別名
A.17 プリプロセッサディレクティブ

付録B 標準ライブラリのまとめ

B.1 概要
B.2 エラー処理
B.3 イテレータ
B.4 コンテナ
B.5 アルゴリズム
B.6 STL ユーティリティ
B.7 I/O ストリーム
B.8 文字列演算
B.9 数値
B.10 C の標準ライブラリの関数
B.11 その他のライブラリ

付録C Visual Studio の使用

C.1 プログラムを実行するための準備
C.2 Visual Studio のインストール
C.3 プログラムの作成と実行
C.4 その後

付録D FLTK のインストール

D.1 概要
D.2 FLTK のダウンロード
D.3 FLTK のインストール
D.4 Visual Studio でのFLTK の使用
D.5 動作テスト

付録E GUI の実装

E.1 コールバックの実装
E.2 Widget の実装.
E.3 Window の実装
E.4 Vector_ref
E.5 例:Widget の操作

用語集
参考文献
索引

本書は付属データの提供はございません。

書籍への問い合わせ

正誤表、追加情報をご確認の上、こちらよりお問い合わせください

書影の利用許諾について

本書籍に関する利用許諾申請はこちらになります

追加情報はありません。

ご購入いただいた書籍の種類を選択してください。

書籍の刷数を選択してください。

刷数は奥付(書籍の最終ページ)に記載されています。

現在表示されている正誤表の対象書籍

書籍の種類:

書籍の刷数:

本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。

対象の書籍は正誤表がありません。

最終更新日:2015年05月25日
発生刷 ページ数 書籍改訂刷 電子書籍訂正 内容 登録日
1刷 0063
練習問題8 1行目
整数値を評価して、それが偶数か数かを
整数値を評価して、それが偶数か奇数かを
2013.07.02
1刷 0090
5行目
vector は、インデックスでアクセスできる要素のシーケンスである。
vectorとは、要素のシーケンスにほかならず、インデックスで任意の要素にアクセスできる。
2015.05.25
1刷 0138
練習問題2の1行目、コード1行目のコメント、練習問題5(3か所)
華氏
ケルビン(K)
2015.05.25
1刷 0138
練習問題3の1行目
華氏0度
0ケルビン
2015.05.25
1刷 0445
「14.2.4 コピーと可変性」7行目
void my_fct(const Open_polyline& op, const Circle& c)
void my_fct(Open_polyline& op, const Circle& c)

これに伴い、監注を削除します
2015.05.25
1刷 0486
5行目
7. ウィンドウにコンソールを追加する
7. ウィンドウに余弦を追加する
2015.05.25
1刷 0627
下から11行目
: alloc(a), elem(a.allocate(n)), sz(n), space(n) { }
: alloc(a), elem(alloc.allocate(n)), sz(n), space(n) { }
2015.05.25
1刷 0628
「TRY THIS」の2行上
同様に、vector_base<T,A>::reserve() といったvector<T,A> の派生クラスのメンバから、基底クラスのメンバvector_base<T,A> を参照する際には、this-> を明示的に使用しなければならない。
同様に、vector<T,A>::reserve()といったvector_base<T,A>の派生クラスのメンバから、基底クラスvector_base<T,A>のメンバを参照する際には、this->を明示的に使用しなければならない。
2015.05.25
1刷 0662
下から3行目
insert() とdelete()
insert() とerase()
2015.05.25
1刷 1035
「イテレータの演算」の表、3項目目(左列、右列のそれぞれ1か所)
difference(p,q)
distance(p,q)
2015.05.25