[メモ] if 構文の組合わせと、論理演算子の関係 P && Q : 論理積 [if 構文] if ( P ) { if ( Q ) { /* P&&Q の処理 */ } else { /* その他 */ } } else { /* その他 */ } [論理積] if ( P && Q ) { /* P&&Q の処理 */ } else { /* その他 */ } P || Q : 論理和 [if 構文] if ( P ) { /* P||Q の処理 */ } else if ( Q ) { /* P||Q の処理 */ } else { /* その他 */ } [論理和] if ( P || Q ) { /* P||Q の処理 */ } else { /* その他 */ } == 先週まで 命令をどのように組み合わせるか ? 三つの基本構造 : 順接, 条件分岐(選択), 繰り返し 順接 : 並べるだけ 関数定義/関数呼び出し 条件分岐 : if 構文 / swtich-case 繰り返し : 再帰呼び出し / while, for 構文 データをどのように組み合わせるか ? # 間接的に(データを組み合わせる事により..) 命令を組み合わせるための基礎的内容 !! 「if 構文」 !! 条件によって命令を選ぶ !! if ( データ ) { 命令 } !! データから命令を作る仕組み !! プログラムを作る <-> 命令を組み合わせる !! <-> (if 構文を経由して) データを組み合わせる !! 現実の世界の機能を実現するには、 現実の情報を計算機のデータに対応付け(Coding)が必要 Coding はどれでもよいが、 Coding が異なれば、同じ機能を実現する命令が異なる これまでは、 単体の変数で表現可能なデータに対応した情報を扱ってきた Coding は、「値」の」関係だけ ( cf. ASCII ) 今日は、平面上の「点」という情報を、 二つの変数の組み合わせで表現可能なデータに対応させた (cf. 点 P <-> (x,y) / (r,a) ) 最悪は「複雑な情報も、多数の変数の組み合わせで表現可能」 !! P <-> (px,py), Q <-> (qx,py) !! この時、二つの変数 px,py が関係があり、一つ点 P を表している !! ことは、プログラムの「頭の中」にしかない !! -> コンピュータは、その事を知らないのでサーポートできない !! -> 他のプログラマ(三日のちの自分)にはわからなかもしれない 複数の変数をまとめて扱う仕組み(表現/その表現へのサポート)が欲しくなる Data と Data を組み合わせて作る Data の表現 => Data 構造 複数の異なるものをまとめる仕組み 構造体 strict { 複数の変数 } この講義では、さらに typdef と組み合わせて利用する 構造体のメリット 1. まとめて扱う複数の変数の関係が、明確になる # document 化される 2. C 言語の機能として(compiler が..) それ(まとまっている)を 知っているので、それに応じたサービスをしてくれる 具体的には 一つの変数として宣言できる もちろん、ここの変数としても利用できる 代入や、変数への値渡し、関数値として利用できるようなる