《情報基礎論演習》 第5回
【配列・ポインタ その1】
データは、初期値、またはキーボード入力(scanf())のどちらでもよい。
▼ Basic 1
正整数の列 X を配列で表現し、その要素の最大値と最小値を求めなさい。
例: X: 3,1,4,1,5,9,2,6,5
1つのループで実現すること。
------------------------------------------------------------------
▼ Basic 2
1桁の正整数の列 X を配列で表現し、それぞれの値の頻度を求めなさい。
例: X: 3,1,4,1,5,9,2,6,5 -> 1が2回,2が1回,...
値の範囲が0〜9なので、要素数10の配列を用意して頻度情報を格納すればよい。
------------------------------------------------------------------
▼ Basic 3
2次元配列で2x2の正方行列を表現し、それを引数として逆行列を求める関数を作りな
さい。それを用いて、A = {{1,2},{3,4}}の逆行列を求めなさい。
計算結果の入る配列も引数として渡すこと。
行列式が0のときは逆行列が存在しないので、関数を呼び出した側にそれがわかるよ
うに、関数の戻り値を行列式とすること。
A ={{a,b},{c,d}}とすると、Aの逆行列 = 1/det(A)*{{d, -b},{-c,a}}
------------------------------------------------------------------
▼ Basic 4
配列でベクトルを表現し、その内積をとる関数を作りなさい。
ベクトルの次数を引数で渡すか、ベクトルの最後の要素に番人を置くことにより、
任意の次元のベクトルを扱うことができるようにすること。
関数の戻り値が内積の値となるようにすること。
------------------------------------------------------------------
▽ Advanced
Basic 4のプログラムを改変して、2つベクトルのなす角のコサインを計算する
プログラムにしなさい。
但し、ベクトルの大きさは、Basic 4の内積の関数を利用して求めなさい。