#author("2017-09-26T19:01:26+09:00","default:tutimura","tutimura")
#author("2017-09-27T10:13:02+09:00","default:tutimura","tutimura")
* プログラミング実習I 教科書の正誤表 [#p5c4c780]

** 全般 [#z6c60797]
変数名や関数名の命名規則に、C言語では「すべて小文字、単語は_でつなげる」というスネークケースが用いられることが多いが、「単語の先頭を大文字にしてつなげる」というキャメルケースの用いられている部分がところどころに見られる。
:p.71 リスト3.4|Large→large &br;Small→small
:p.257 リスト7.8|Tokyo→tokyo
:p.332からp.336にかけて多数|FileName→filename
:p.71 リスト3.4|『Large』→『large』&br;『Small』→『small』
:p.257 リスト7.8|『Tokyo』→『tokyo』(固有名詞の表記を優先して先頭大文字にするという考え方もある)
:p.332からp.336にかけて多数|『FileName』→『filename』

** 3章 [#n29d1732]
:p.65 図3.1|浮動小数点の内部表現には、「符号部」を含める必要があるが、図には抜けている。
:p.66 coffee break 内3行目|<limit.h>→<limit''s''.h>
:p.66 coffee break 内の用語|''最小値''という単語が、文脈によって2通りの意味に用いられていることに注意する。''doubleの最小値''は、「0より大きい」という前提がついているのに対して、''intの最小値''にはその前提がない。
:p.75 下から4行目|全体で15桁、小数点以下3桁→全体で''少なくとも''15桁、小数点以下''がちょうど''3桁
:p.66 coffee break 内3行目|『<limit.h>』→『<limit''s''.h>』
:p.66 coffee break 内|「最小値」という単語が、文脈によって2通りの意味に用いられていることに注意する。「doubleの最小値」には''0より大きい''という前提がついているのに対して、「intの最小値」にはその前提がない。
:p.75 下から4行目|『全体で15桁、小数点以下3桁』→『全体で''少なくとも''15桁、小数点以下''がちょうど''3桁』

** 4章 [#j6e9880b]
:p.102 13行目(箇条書きの次の行)|手順1および4に→手順''2''および4に
:p.145 <<プログラムの形式>> 4.7(フローチャート)|下から戻る矢印の先が、「初期化」のマスの上に入っているが、上ではなく''下''に入るべき。
:p.102 13行目(箇条書きの次の行)|『手順1および4に』→『手順''2''および4に』
:p.145 <<プログラムの形式>> 4.7|フローチャートの下から戻る矢印の先が、「初期化」のマスの上に入っているが、上ではなく''下''に入るべき。

** 5章 [#o569581b]
:p.169 リスト5.6の直前の段落からリスト5.7にかけて|また、関数の定義では、その多くを省略することができます...→関数の定義では、C言語の旧規格との互換性のために、省略できるキーワードがいくつかありますが、メリットはありませんのできちんと記述するようにしましょう。
:p.169 リスト5.6の直前の段落からリスト5.7まで|『また、関数の定義では、その多くを省略することができます...』→関数の定義では、C言語の旧規格との互換性のために、省略できるキーワードがいくつかありますが、省略するメリットはありませんのできちんと記述するようにしましょう。

** 6章 [#acf404b8]
:p.207 下から2行目|4つの変数→''5''つの変数
:p.208 図6.5|name配列の[8]の箱が余分
:p.238 下から1行目|int a[3][2] = {1,2,3,4,5,6}; と定義することもできます。→int a[3][2] = {1,2,3,4,5,6}; という記述はエラーにはなりませんが、「初期化子の周りに中括弧がありません」といった警告が出ることがあります。
:p.207 下から2行目|『4つの変数』→『''5''つの変数』
:p.208 図6.5|name配列の[8]の箱が余分。
:p.238 下から1行目|『int a[3][2] = {1,2,3,4,5,6}; と定義することもできます。』→int a[3][2] = {1,2,3,4,5,6}; という記述はエラーにはなりませんが、「初期化子の周りに中括弧がありません」といった警告が出ることがあります。

** 7章 [#a11feb1d]
:p.251 リスト7.2 のタイトル|配列を文字に格納する→配列 ''に'' 文字 ''を'' 格納する
:p.251 リスト7.3 の直前の段落から p.252 リスト7.4にかけて|ところで、リスト7.2には...少しトリッキーに感じられるかもしれませんが...→削除(トリッキーですので、真似しないでください。)
:p.251 リスト7.2 のタイトル|『配列を文字に格納する』→『配列 ''に'' 文字 ''を'' 格納する』
:p.251 リスト7.3 の直前の段落から p.252 リスト7.4まで|『ところで、リスト7.2には...少しトリッキーに感じられるかもしれませんが...』→削除(トリッキーですので、真似しないでください。)

** 9章 [#x8c1165c]
:p.297 最初の段落から4段落|次に構造体タグの省略について...警告を出すコンパイラも存在します。→構造体タグを省略してもメリットはありませんので、通常はしないでください。
:p.297 最初の段落からの4つの段落|『次に構造体タグの省略について...警告を出すコンパイラも存在します。』→構造体タグを省略してもメリットはありませんので、通常は省略しないでください。

** 10章 [#t7287778]
:p.345 リスト10.7|プログラの中程で if((fp=fopen()) == NULL) とNULLとの比較が記述してあるのに、もう少し下では while(fgets(string, STRING_SIZE, FP)) とNULLとの比較が省略されていて、一貫性に欠けます。このページの2行めには「fgets関数はNULLを返します」との記述があるので、while(fgets(string, STRING_SIZE, FP)!=NULL) と明示的に書くのがよいでしょう。
:p.345 リスト10.7|プログラの中程で「if( (fp=fopen()) == NULL)」とNULLとの比較が記述してあるのに、もう少し下では「while(fgets(string, STRING_SIZE, FP))」とNULLとの比較が省略されていて、一貫性に欠けます。このページの2行めには「fgets関数はNULLを返します」との記述があるので、「while(fgets(string, STRING_SIZE, FP) != NULL)」と明示的に書くのがよいでしょう。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS