v11 の作りかた v10 の中身を全部 copy othello.c の中の二つの関数 print_board init_board を、新に作成した board.c に「移動」する board.c の頭の方に、#include を挿入する === 一つのファイル内 される側 | (関係) | 利用する側 -> 問題ない 関係が正しいなら、それまで 関係が誤っていれば、チェックできる 二つのファイルにわかれている される側 利用する側 -> 関係がこわれてしまう 関係を示す情報を与える 関係が誤っていても、しることができない 二つのファイルにわかれている 利用する側 される側の情報を追加する される側 -> もし、「追加した情報」が正しいならば、問題ない でも「追加した情報」は正しいのか ? 「おなじ情報を『共有』しているかどうか?」 # 「正しい」<ー>「同じ物である」 二つのファイルにわかれている -> 何らかの方法で、同じ情報を共有する事が本質 利用する側 される側 -> ヘーダーファイルを作成し、情報を共有する(解決) == if 文と条件式の話 if ( 2 < 3 ) { oo } else { xx } -> if ( 1 ) { oo } else { xx } /* 2<3 は成立するので 1 という値になる */ -> oo /* 1 は「真(0 以外)」なので、条件が成立した場合となる*/ 例: オセロのプログラム while ( 1 ) { /* 1 は、恒真を表す事になる */ ... /* この ... の部分は、無限に繰り返される.. */ } 「条件式」が「値」を持つ -> 「計算」ができたり、関数の引数に渡せる -> より柔軟(複雑)な、記述が可能になる 「条件」は、実は、評価の結果 0(偽)/1(真)という整数値を求める式 (1<2) + (2<3) = 2 真 + 真 = 真 (1<2) + (3<2) = 1 真 + 偽 = 真 (2<1) + (2<3) = 1 偽 + 真 = 真 (2<1) + (3<2) = 0 偽 + 偽 = 偽 + | 真 | 偽 ---+----+------ 真 | 真 | 真 ---+----+------ 偽 | 真 | 偽 どちらか一方でも真なら、真、それいがいは偽 「または(論理和)」と同じ (1<2) * (2<3) = 1 真 * 真 = 真 (1<2) * (3<2) = 0 真 * 偽 = 偽 (2<1) * (2<3) = 0 偽 * 真 = 偽 (2<1) * (3<2) = 0 偽 * 偽 = 偽 * | 真 | 偽 ---+----+------ 真 | 真 | 偽 ---+----+------ 偽 | 偽 | 偽 両方も真なら、真、それ以外は偽 「かつ(論理積)」と同じ