program StudentStatistics;
uses Math;
const
MAX = 100;
var
score, sorted: array[1..MAX] of Integer;
hensachi: array[1..MAX] of Real;
n, i, j, temp, pass: Integer;
sum, ave, median, sd, variance: Real;
maxScore, minScore: Integer;
begin
{ 人数入力(10人以上) }
readln(n);
if n < 10 then
begin
writeln('人数は10人以上入力してください。');
halt;
end;
sum := 0;
pass := 0;
{ 点数入力 }
for i := 1 to n do
begin
readln(score[i]);
sorted[i] := score[i];
sum := sum + score[i];
if score[i] >= 60 then
pass := pass + 1;
end;
ave := sum / n;
{ 最高点・最低点 }
maxScore := score[1];
minScore := score[1];
for i := 2 to n do
begin
if score[i] > maxScore then
maxScore := score[i];
if score[i] < minScore then
minScore := score[i];
end;
{ 並べ替え(バブルソート) }
for i := 1 to n - 1 do
for j := 1 to n - i do
if sorted[j] > sorted[j + 1] then
begin
temp := sorted[j];
sorted[j] := sorted[j + 1];
sorted[j + 1] := temp;
end;
{ 中央値 }
if n mod 2 = 1 then
median := sorted[(n + 1) div 2]
else
median := (sorted[n div 2] + sorted[n div 2 + 1]) / 2.0;
{ 標準偏差 }
variance := 0;
for i := 1 to n do
variance := variance + sqr(score[i] - ave);
variance := variance / n;
sd := sqrt(variance);
{ 偏差値 }
for i := 1 to n do
begin
if sd = 0 then
hensachi[i] := 50
else
hensachi[i] := 50 + 10 * (score[i] - ave) / sd;
end;
{ 出力 }
writeln('平均 = ', ave:0:2);
writeln('中央値 = ', median:0:2);
writeln('最高点 = ', maxScore);
writeln('最低点 = ', minScore);
writeln('標準偏差 = ', sd:0:2);
writeln('合格者数 = ', pass);
writeln;
writeln('偏差値');
for i := 1 to n do
writeln(i:2, '人目 点数=', score[i]:3,
' 偏差値=', hensachi[i]:0:2);
end.
cHJvZ3JhbSBTdHVkZW50U3RhdGlzdGljczsKCnVzZXMgTWF0aDsKCmNvbnN0CiAgTUFYID0gMTAwOwoKdmFyCiAgc2NvcmUsIHNvcnRlZDogYXJyYXlbMS4uTUFYXSBvZiBJbnRlZ2VyOwogIGhlbnNhY2hpOiBhcnJheVsxLi5NQVhdIG9mIFJlYWw7CiAgbiwgaSwgaiwgdGVtcCwgcGFzczogSW50ZWdlcjsKICBzdW0sIGF2ZSwgbWVkaWFuLCBzZCwgdmFyaWFuY2U6IFJlYWw7CiAgbWF4U2NvcmUsIG1pblNjb3JlOiBJbnRlZ2VyOwoKYmVnaW4KICB7IOS6uuaVsOWFpeWKm++8iDEw5Lq65Lul5LiK77yJIH0KICByZWFkbG4obik7CgogIGlmIG4gPCAxMCB0aGVuCiAgYmVnaW4KICAgIHdyaXRlbG4oJ+S6uuaVsOOBrzEw5Lq65Lul5LiK5YWl5Yqb44GX44Gm44GP44Gg44GV44GE44CCJyk7CiAgICBoYWx0OwogIGVuZDsKCiAgc3VtIDo9IDA7CiAgcGFzcyA6PSAwOwoKICB7IOeCueaVsOWFpeWKmyB9CiAgZm9yIGkgOj0gMSB0byBuIGRvCiAgYmVnaW4KICAgIHJlYWRsbihzY29yZVtpXSk7CiAgICBzb3J0ZWRbaV0gOj0gc2NvcmVbaV07CgogICAgc3VtIDo9IHN1bSArIHNjb3JlW2ldOwoKICAgIGlmIHNjb3JlW2ldID49IDYwIHRoZW4KICAgICAgcGFzcyA6PSBwYXNzICsgMTsKICBlbmQ7CgogIGF2ZSA6PSBzdW0gLyBuOwoKICB7IOacgOmrmOeCueODu+acgOS9jueCuSB9CiAgbWF4U2NvcmUgOj0gc2NvcmVbMV07CiAgbWluU2NvcmUgOj0gc2NvcmVbMV07CgogIGZvciBpIDo9IDIgdG8gbiBkbwogIGJlZ2luCiAgICBpZiBzY29yZVtpXSA+IG1heFNjb3JlIHRoZW4KICAgICAgbWF4U2NvcmUgOj0gc2NvcmVbaV07CiAgICBpZiBzY29yZVtpXSA8IG1pblNjb3JlIHRoZW4KICAgICAgbWluU2NvcmUgOj0gc2NvcmVbaV07CiAgZW5kOwoKICB7IOS4puOBueabv+OBiO+8iOODkOODluODq+OCveODvOODiO+8iSB9CiAgZm9yIGkgOj0gMSB0byBuIC0gMSBkbwogICAgZm9yIGogOj0gMSB0byBuIC0gaSBkbwogICAgICBpZiBzb3J0ZWRbal0gPiBzb3J0ZWRbaiArIDFdIHRoZW4KICAgICAgYmVnaW4KICAgICAgICB0ZW1wIDo9IHNvcnRlZFtqXTsKICAgICAgICBzb3J0ZWRbal0gOj0gc29ydGVkW2ogKyAxXTsKICAgICAgICBzb3J0ZWRbaiArIDFdIDo9IHRlbXA7CiAgICAgIGVuZDsKCiAgeyDkuK3lpK7lgKQgfQogIGlmIG4gbW9kIDIgPSAxIHRoZW4KICAgIG1lZGlhbiA6PSBzb3J0ZWRbKG4gKyAxKSBkaXYgMl0KICBlbHNlCiAgICBtZWRpYW4gOj0gKHNvcnRlZFtuIGRpdiAyXSArIHNvcnRlZFtuIGRpdiAyICsgMV0pIC8gMi4wOwoKICB7IOaomea6luWBj+W3riB9CiAgdmFyaWFuY2UgOj0gMDsKICBmb3IgaSA6PSAxIHRvIG4gZG8KICAgIHZhcmlhbmNlIDo9IHZhcmlhbmNlICsgc3FyKHNjb3JlW2ldIC0gYXZlKTsKCiAgdmFyaWFuY2UgOj0gdmFyaWFuY2UgLyBuOwogIHNkIDo9IHNxcnQodmFyaWFuY2UpOwoKICB7IOWBj+W3ruWApCB9CiAgZm9yIGkgOj0gMSB0byBuIGRvCiAgYmVnaW4KICAgIGlmIHNkID0gMCB0aGVuCiAgICAgIGhlbnNhY2hpW2ldIDo9IDUwCiAgICBlbHNlCiAgICAgIGhlbnNhY2hpW2ldIDo9IDUwICsgMTAgKiAoc2NvcmVbaV0gLSBhdmUpIC8gc2Q7CiAgZW5kOwoKICB7IOWHuuWKmyB9CiAgd3JpdGVsbign5bmz5Z2HID0gJywgYXZlOjA6Mik7CiAgd3JpdGVsbign5Lit5aSu5YCkID0gJywgbWVkaWFuOjA6Mik7CiAgd3JpdGVsbign5pyA6auY54K5ID0gJywgbWF4U2NvcmUpOwogIHdyaXRlbG4oJ+acgOS9jueCuSA9ICcsIG1pblNjb3JlKTsKICB3cml0ZWxuKCfmqJnmupblgY/lt64gPSAnLCBzZDowOjIpOwogIHdyaXRlbG4oJ+WQiOagvOiAheaVsCA9ICcsIHBhc3MpOwoKICB3cml0ZWxuOwogIHdyaXRlbG4oJ+WBj+W3ruWApCcpOwogIGZvciBpIDo9IDEgdG8gbiBkbwogICAgd3JpdGVsbihpOjIsICfkurrnm64gIOeCueaVsD0nLCBzY29yZVtpXTozLAogICAgICAgICAgICAnICDlgY/lt67lgKQ9JywgaGVuc2FjaGlbaV06MDoyKTsKZW5kLg==