#author("2022-05-02T14:13:27+09:00","ldap:bbm85148","土村 展之")
#author("2022-05-04T16:53:08+09:00","ldap:bbm85148","土村 展之")
* プログラミング実習II知能・機械の教科書 [#h8221d47]

『キックオフC言語 2022年度用』のサポートページです。

** 配布 [#ge8fc588]
製本した印刷物は、授業の初回で配布します。A5版以外に、少量ですが大きめの手作りのB5版も用意しています。

PDF は以下で公開します。
- [[閲覧用:https://cs.kwansei.ac.jp/~tutimura/debug/KickOffC/KickOffC-2022view.pdf]]
-- ページ番号が、ページの上と下の2ヶ所にあるので、ページ全体が表示されてなくても確認が容易です。
-- リンク部分の文字の色が「赤」です。
- [[印刷用:https://cs.kwansei.ac.jp/~tutimura/debug/KickOffC/KickOffC-2022print.pdf]]
-- ページ端に、章ごとの帯のような印(ツメ)があります。
-- リンク部分の文字の色が「黒」です。
-- B5用紙の中にA5の領域の版面があるので、裁断できるのなら「B5用紙に原寸」で印刷してA5に裁断するのがベストですが、通常は「A5用紙に原寸」「B5用紙に122%拡大」のどちらかで印刷するのがよいでしょう。
- [[ソースコード閲覧:https://cs.kwansei.ac.jp/~tutimura/debug/KickOffC/source/]]
-- [[全ファイルダウンロード:https://cs.kwansei.ac.jp/~tutimura/debug/KickOffC/KickOffC-2022source.zip]]

** 正誤表 [#o4cc021b]
*** 多数 [#jba28e2e]
// 04/14 37021623 福田 壮一朗
『自動''清''算』→『自動''精''算』

*** まえがき [#A00]
:p.iv 下から6行目|『チーティング』→『ティーチング』

*** 3章 [#A03]
:p.50 問題6.と7.|難易度順的には、6.と7.を入れ替えておくべきでした。
:p.50 問題7.タイトル部分|『関数の''再利用と''信頼性』→『関数の信頼性''・キャスト''』再利用する場面は、特にありませんでした。逆にキャスト(p.30参照)の必要になる場合があります。
:p.50 問題8.|指示を追加します。『εはマクロ名をEPSとして定義せよ。(p.31を参照のこと。)』具体的には、次のような記述を #include の直後に書きます。
 #define EPS 0.000001

*** 4章 [#A04]
:p.54 脚注*3|『単純に 2 つの if を並べるだけだと、 printf() が 2 回とも実行される場合があるので、 else if は必須です。』→『この例ではelseがなくても動作に変わりはありませんが、一般の条件では2つのifが同時に成り立つ可能性があるので、else ifで構造的に1回だけに絞っています。』
:p.69 問題2.|指示を追加します。『if文1つで判定せよ。』
:p.69 問題4.|指示を追加します。『1≦m≦6, 1≦n≦3の範囲に該当しなければ、何も表示しない。この動作を void print_grade(int a) の関数に独立させ、また70ページのコラムを参考に、正しく動作することのわかる main() を作れ。』
:p.69 問題6.|辺の長さをintに限定するメリットはないので、関数のプロトタイプを『int exist_triangle(double a, double b, double c)』にしておくべきでした。
:p.69 問題6.|辺の長さをintに限定するメリットは特にないので、関数のプロトタイプを『int exist_triangle(double a, double b, double c)』にしておくべきでした。(解答には影響しません。)

*** 5章 [#A05]
:p.86|誤植ではありませんが、問題を追加します。
&br;『0. 次のプログラムの無駄を省いて、単純にせよ。(34ページの問題2.も参照のこと。)』
 #include <stdio.h>
 
 int main(void) {
     int a;
     for (int i=1; i<=5; i++) {
         a = i * 10;
     }
     printf("%d\n", a);
     return 0;
 }

*** 6章 [#A06]
:p102 問題6.と問題7.|誤植ではありませんが、以下で問題を差し替えます。
~6. ''[ある?ない?]''
&br;ソースコード 6.5 の is prime3() を利用して、次の関数を作れ。
~• int is_sum_of_2primes(int n) は、 n が 2 つの素数の和で表せれば TRUE、そうでなければ FALSE を返す。
~そして main() 関数で、2 から 100 までの整数のうち、素数でもなく、2 つの素数の和でも表せないものを、すべて求めて表示せよ。
~7. ''廃止''
:p102 問題9.|[[12章>#A12]] の6章部分を参照してください。

*** 7章 [#A07]
:p.112 コラムのすぐ上の行|『''場合''には』→『''変数''には』意味が通じないので、訂正します。
:p.117 下から1行目|ユークリッドの互除法を説明していませんでした。[[WikiPedia.ja:ユークリッドの互除法#手続き的記述]] などを参照してください。

*** 12章 [#A12]
:p.191 6章|補足があります。最後に、次の文を追加します。『受け取れない金額に「受け取れません」と表示することは、最初の段階では考えなくても構いません。(6.4.3項のように、例外的な処理が必要になります。)』
:p.195 ソースコード中の60行目|『%d:%d:%d』→『%d:%''02''d:%''02''d』分と秒は、1桁の数字でも0を補って、2桁で表示する必要がありました。

*** 13章 [#A13]
:p.203 ソースコード 13.2の7行目|コメント中の引数名が不一致です。『''a''と''b''がほぼ等しければ0, ''a''>''b''なら正, ''a''<''b''なら負を返す』→『''x''と''y''がほぼ等しければ0, ''x''>''y''なら正, ''x''<''y''なら負を返す』
:p.208 コラムの1行目|『終端を示こと』→『終端を示''す''こと』


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