第13回:応用課題2 (1/13)

今回は,今まで習ったことの総復習をしましょう.


第12回演習の解答例


演習課題

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

関数・ポインタ・ファイル・構造体の復習をしながら,ステップアップしていきましょう.
[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	**

授業終了時までに,どこまで完成したか明記して,プログラムをoh-meijiシステムを使って提出すること.
(提出期限を厳守し,提出用の回に提出しないと採点を行わない)