前回の内容 : データ構造 (2) 配列 : 複数の同じ型の変数(配列の要素)をまとめたもの 構造体 : 異なる型の変数の組み合わせ => 異なる型のデータの組み合わせを表現するために用いる 同じ型の値が並んだもの(ベクトル)を表現するデータ型 配列を、「同じ型の変数の組み合わせ」と考える => 構造体の方が便利 <= 要素の参照の仕方が異なる 配列の宣言 : 配列を構成する「要素数」を指定して宣言 例 : int a[3] -> 3 つの変数 ( a[0], a[1], a[2] ) を宣言 配列の要素(配列の一部となる変数)は、[] (添字) で参照可能 例 : a[1] -> 配列 a の 2 つ目 ( 1 つ目 a[0] なので.. ) を表す 「添え『字』」=>要素の位置を表す整数値(『数』) { '0', '1', '2' } : 『字』の集合 { 0, 1 , 2 } : 『数』の集合 => 『数』の場合は『計算』ができる 単なる集合ではなく(演算のついた..)空間 「添字」の所には、「整数値を持つ式」が入れられる !! 「式」の中には、「変数」を含める事ができる 配列は、「データ型」の表現 構造体に比べて、能力が落ちる 要素の参照に『添え字』という「整数式」が使える 要素の参照が便利(構造体より使いやすい..) 要素の番号を表す変数と併用する事により 要素のへの処理が繰り返し(for 構文)で実現できる データのサイズ(配列の要素数)からプログラムが独立化できる 配列による「集合」の表現 サイズ N の配列で、サイズ N の(有限)部分集合が表現できる 配列と for 構文の関係 配列の要素を処理する場合は for 構文が馴染む [2020/11/13] (資料: 2020/11/06) 単純型(0 次元)の配列は、1 次元(0+1 次元)の空間 (単純型:0)の配列(+1)の配列(+1)は、2(0+1+1)次元になる 次元 : 添え字の個数 多次元の配列 配列の配列が作れる : 多次元配列 [例] int d[3][4]; /* 二次元 3 × 4 の 12 個の要素を持つ配列 */ 次元は幾つでも増やす事ができる int t[3][4][5]; /* 三次元配列 */ データ構造の利用 ベクトル : 1 次元の配列 行列 : 2 次元の配列 (DLで利用するテンソルは、n 次元の配列) データ構造を作る要素(構造体、配列)を 組み合わせて利用する事により、 様々な(より複雑な)機能が より簡単(可換構造を利用して、単純な操作の組み合わせ)に表現できる