課題 (07:スプレッドシート)
作業について
今回の課題は以下のパッケージに作成してください。
パッケージの名前 |
---|
j1.lesson07 |
作成するクラスの名前は問題ごとに指示があります。下記を参照してください
課題の提出方法については下記を参照してください。
また、別のコンピューター上に移動する際には、下記を参考にプログラムを持ち帰ってください。
新しい内容
今回、スプレッドシートに関する新しい内容はありません。
問題
作成するクラスの名前 |
---|
StDevS1 |
偏差値を計算するプログラム。
db07-1.txt, db07-2.txt, db07-3.txtなどを読み出してそれぞれの偏差値を計算するプログラムを作成してください。偏差値は次のような式で計算できます。
なお、db07-1.txtは次のように非常に多くの人の得点を含むデータです。「繰り返し」をうまく利用してプログラムを作成してください。標準偏差の求め方については出題の中で説明していきます。
ID | 得点 | |||
01k9901 | 81.0 | |||
01k9902 | 83.0 | |||
01k9903 | 95.0 | |||
01k9904 | 92.0 | |||
01k9905 | 75.0 | |||
01k9906 | 43.0 | |||
01k9907 | 86.0 | |||
01k9908 | 30.0 | |||
01k9909 | 71.0 | |||
01k9910 | 78.0 | |||
01k9911 | 92.0 | |||
01k9912 | 22.0 | |||
01k9913 | 77.0 | |||
01k9914 | 66.0 | |||
01k9915 | 49.0 | |||
01k9916 | 89.0 | |||
01k9917 | 79.0 | |||
01k9918 | 54.0 | |||
01k9919 | 20.0 | |||
01k9920 | 79.0 | |||
01k9921 | 43.0 | |||
01k9922 | 79.0 | |||
01k9923 | 37.0 | |||
01k9924 | 81.0 | |||
01k9925 | 43.0 | |||
01k9926 | 83.0 | |||
01k9927 | 94.0 | |||
01k9928 | 95.0 | |||
01k9929 | 70.0 | |||
01k9930 | 67.0 | |||
01k9931 | 32.0 | |||
01k9932 | 40.0 | |||
01k9933 | 84.0 | |||
01k9934 | 100.0 | |||
01k9935 | 37.0 | |||
01k9936 | 63.0 | |||
01k9937 | 100.0 | |||
01k9938 | 79.0 | |||
01k9939 | 91.0 | |||
01k9940 | 59.0 | |||
01k9941 | 91.0 | |||
01k9942 | 82.0 | |||
01k9943 | 53.0 | |||
01k9944 | 95.0 | |||
01k9945 | 90.0 | |||
01k9946 | 87.0 | |||
01k9947 | 55.0 | |||
01k9948 | 52.0 | |||
01k9949 | 75.0 | |||
01k9950 | 97.0 |
a. 平均点の計算
まずはdb07-1.txtに含まれる全員分の得点から平均点を計算するプログラムを作成してください。計算した平均点はメッセージダイアログに表示してください。
ヒント
「Spreadsheet.getDoubleArray(1, 1)」を利用すると、2列目のデータを2行目からすべて取り出して実数の配列にすることができます。これの「合計 / 人数」が平均点となります。また、人数は配列の長さと同じです。
b. 標本分散の計算
次に、標準偏差を計算するために「標本分散」というものを計算してください。標本分散は次のように計算できます。
計算した結果は、平均値の代わりにメッセージダイアログに表示してください。(平均値は表示しないでください。)
c. 標準偏差の計算
次に、標本分散を計算して標本分散の代わりに表示してください。これは標準分散の正の平方根で計算できます。
Javaで平方根を計算するには、次のように書きます。
たとえば、Math.sqrt(100.0)の結果は実数の10.0となります。
ヒント
蛇足だと思いますが、Math.sqrt(<標本分散>)で標準偏差が返ってきます。
d. 偏差値の計算
最後に、それぞれの偏差値を計算してください。偏差値の計算式を再掲します。
ただし、特例として標準偏差が0.0(全員の得点が同じ)である場合には偏差値は無条件で50とします。これはdb07-3.txtで確認できます。
それぞれの偏差値は、該当する得点の隣の列(3列目)に出力してください。db07-1.txtでは次のようになるはずです。
ID | 得点 | 偏差値 | ||
01k9901 | 81.0 | 54.84540031726941 | ||
01k9902 | 83.0 | 55.75108261956276 | ||
01k9903 | 95.0 | 61.18517643332284 | ||
01k9904 | 92.0 | 59.82665297988282 | ||
01k9905 | 75.0 | 52.128353410389366 | ||
01k9906 | 43.0 | 37.63743657369581 | ||
01k9907 | 86.0 | 57.10960607300278 | ||
01k9908 | 30.0 | 31.75050160878905 | ||
01k9909 | 71.0 | 50.31698880580267 | ||
01k9910 | 78.0 | 53.48687686382939 | ||
01k9911 | 92.0 | 59.82665297988282 | ||
01k9912 | 22.0 | 28.12777239961566 | ||
01k9913 | 77.0 | 53.034035712682716 | ||
01k9914 | 66.0 | 48.0527830500693 | ||
01k9915 | 49.0 | 40.35448348057585 | ||
01k9916 | 89.0 | 58.4681295264428 | ||
01k9917 | 79.0 | 53.939718014976066 | ||
01k9918 | 54.0 | 42.61868923630922 | ||
01k9919 | 20.0 | 27.22209009732231 | ||
01k9920 | 79.0 | 53.939718014976066 | ||
01k9921 | 43.0 | 37.63743657369581 | ||
01k9922 | 79.0 | 53.939718014976066 | ||
01k9923 | 37.0 | 34.920389666815765 | ||
01k9924 | 81.0 | 54.84540031726941 | ||
01k9925 | 43.0 | 37.63743657369581 | ||
01k9926 | 83.0 | 55.75108261956276 | ||
01k9927 | 94.0 | 60.732335282176166 | ||
01k9928 | 95.0 | 61.18517643332284 | ||
01k9929 | 70.0 | 49.864147654656 | ||
01k9930 | 67.0 | 48.50562420121598 | ||
01k9931 | 32.0 | 32.656183911082394 | ||
01k9932 | 40.0 | 36.27891312025579 | ||
01k9933 | 84.0 | 56.20392377070943 | ||
01k9934 | 100.0 | 63.44938218905621 | ||
01k9935 | 37.0 | 34.920389666815765 | ||
01k9936 | 63.0 | 46.69425959662928 | ||
01k9937 | 100.0 | 63.44938218905621 | ||
01k9938 | 79.0 | 53.939718014976066 | ||
01k9939 | 91.0 | 59.373811828736144 | ||
01k9940 | 59.0 | 44.88289499204259 | ||
01k9941 | 91.0 | 59.373811828736144 | ||
01k9942 | 82.0 | 55.29824146841608 | ||
01k9943 | 53.0 | 42.165848085162544 | ||
01k9944 | 95.0 | 61.18517643332284 | ||
01k9945 | 90.0 | 58.92097067758947 | ||
01k9946 | 87.0 | 57.56244722414945 | ||
01k9947 | 55.0 | 43.071530387455894 | ||
01k9948 | 52.0 | 41.71300693401587 | ||
01k9949 | 75.0 | 52.128353410389366 | ||
01k9950 | 97.0 | 62.09085873561619 |