第14回:復習(07/11)

今回も引き続き全範囲の復習です,内容を完璧に理解しましょう.わからないところがあったら,前回までの授業用ホームページを参照してください.


演習課題

(1)度数分布(ヒストグラム)とは,統計において標本として得られたある変量の値のリストである.一般に量の大小の順で並べ、各数値が現われた個数を表示する表(度数分布表)で示される.テストの点数のような離散型変量の場合,度数分布表(ヒストグラム)に表すことで,データ全体の分布状況が視覚的に明らかにすることができる.エクセルを用いて度数分布(ヒストグラム)を表示させようと思うと,なかなかすぐにはできない.そこで,パソコンに度数分布を計算してもらうプログラムを作成してみましょう.

関数・ポインタ・ファイル・構造体の復習をしながら,ステップアップしていきましょう.
[STEP 1]
50人のテスト結果を(50data.txt)から読み込み,画面に表示せよ.
ただし,構造体の配列を用いること.


struct testdata{
	char name[20];		/* 名前 */
	int score;			/* 点数 */
	float deviation_value;	/* 偏差値 */
	int ranking;			/* 順位 */
};

[STEP 2]
偏差値を計算して,構造体のdeviation_valueに値を代入せよ.
偏差値の計算は,以下を参照すること.

[STEP 3]
各得点の順位を求め,構造体のrankingに代入せよ.ただし,同じ点数の者が2名いたら,次の点数の者の順位は,一つ飛ぶ.
たとえば,47点が53位で,47点の者が2名いたとすると,46点の者は,55位となる.

[STEP 4]
得点を10点幅で区切って,(0~9, 10~19, ...., 90~99,100の11ランク)各ランクの度数(ヒストグラム)を求め,histogram.csvというファイルに書き出しなさい.(エクセルで読み込んで,確認する)

[STEP 5]
STEP 4で書き出した度数分布は,グラフにしなければ視覚的にわかりにくい.そこで,各ランクの度数(人数)1つあたり*を一つ表示してみよう.人数を*で表示した結果を画面に表示しなさい.

結果は以下のようになる.

STEP1~STEP3

STEP4 エクセルに読み込んでグラフを表示した例

STEP5


00-	2	**
10-	3	***
20-	4	****
30-	5	*****
40-	6	******
50-	10	**********
60-	6	******
70-	5	*****
80-	4	****
90-	3	***
100-2	**


(2)ある物体の質量をm,ばねのばね定数をk,減衰器の減衰係数をbとおくと,減衰振動の運動方程式は,
   mx"=-kx-bx'
となり,
   x" = -(k/m)x - (b/m)x'
となります.ここで,k/m = w02,b/m = 2r とすると,
   x" = -w02x - 2r x'
と変形できる。この微分方程式の解は,3つ(4つ)の場合に分かれる。

摩擦の無い場合(r=0)
   x = 2 |A| cos(w0t)

減衰振動(r < w0
   x = e-rt 2 |A| cos(w1t)
   w12 = w02 - r2

臨界減衰振動(r = w0
   x = 2 |A| (1 + w0t)e-wot

過減衰(r > w0

摩擦の無い場合と,減衰振動(r=0.1w, 0.3w 0.5w 0.8w)の場合を同じグラフに重ね合わせて表示しなさい。