program ScoreAnalysis;
const
MAX = 100;
var
score, sorted: array[1..MAX] of real;
hensachi: array[1..MAX] of real;
n, i, j, pass: integer;
sum, avg, sd, variance, temp: real;
maxScore, minScore, median: real;
begin
writeln('学生人数を入力してください(10人以上)');
readln(n);
if n < 10 then
begin
writeln('10人以上入力してください。');
halt;
end;
sum := 0;
pass := 0;
writeln('点数を入力してください');
for i := 1 to n do
begin
write(i, '人目: ');
readln(score[i]);
sorted[i] := score[i];
sum := sum + score[i];
if score[i] >= 60 then
pass := pass + 1;
end;
avg := 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;
variance := 0;
for i := 1 to n do
variance := variance + sqr(score[i] - avg);
variance := variance / n;
sd := sqrt(variance);
{ 昇順ソート(バブルソート) }
for i := 1 to n - 1 do
for j := i + 1 to n do
if sorted[i] > sorted[j] then
begin
temp := sorted[i];
sorted[i] := sorted[j];
sorted[j] := 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;
{ 偏差値 }
if sd <> 0 then
for i := 1 to n do
hensachi[i] := 50 + 10 * (score[i] - avg) / sd
else
for i := 1 to n do
hensachi[i] := 50;
writeln;
writeln('===== 結果 =====');
writeln('平均点 : ', avg:0:2);
writeln('中央値 : ', median:0:2);
writeln('最高点 : ', maxScore:0:2);
writeln('最低点 : ', minScore:0:2);
writeln('標準偏差 : ', sd:0:2);
writeln('合格者数 : ', pass);
writeln;
writeln('各学生の偏差値');
for i := 1 to n do
writeln(i, '人目 : ', hensachi[i]:0:2);
end.
cHJvZ3JhbSBTY29yZUFuYWx5c2lzOwoKY29uc3QKICBNQVggPSAxMDA7Cgp2YXIKICBzY29yZSwgc29ydGVkOiBhcnJheVsxLi5NQVhdIG9mIHJlYWw7CiAgaGVuc2FjaGk6IGFycmF5WzEuLk1BWF0gb2YgcmVhbDsKICBuLCBpLCBqLCBwYXNzOiBpbnRlZ2VyOwogIHN1bSwgYXZnLCBzZCwgdmFyaWFuY2UsIHRlbXA6IHJlYWw7CiAgbWF4U2NvcmUsIG1pblNjb3JlLCBtZWRpYW46IHJlYWw7CgpiZWdpbgogIHdyaXRlbG4oJ+WtpueUn+S6uuaVsOOCkuWFpeWKm+OBl+OBpuOBj+OBoOOBleOBhO+8iDEw5Lq65Lul5LiK77yJJyk7CiAgcmVhZGxuKG4pOwoKICBpZiBuIDwgMTAgdGhlbgogIGJlZ2luCiAgICB3cml0ZWxuKCcxMOS6uuS7peS4iuWFpeWKm+OBl+OBpuOBj+OBoOOBleOBhOOAgicpOwogICAgaGFsdDsKICBlbmQ7CgogIHN1bSA6PSAwOwogIHBhc3MgOj0gMDsKCiAgd3JpdGVsbign54K55pWw44KS5YWl5Yqb44GX44Gm44GP44Gg44GV44GEJyk7CgogIGZvciBpIDo9IDEgdG8gbiBkbwogIGJlZ2luCiAgICB3cml0ZShpLCAn5Lq655uuOiAnKTsKICAgIHJlYWRsbihzY29yZVtpXSk7CgogICAgc29ydGVkW2ldIDo9IHNjb3JlW2ldOwogICAgc3VtIDo9IHN1bSArIHNjb3JlW2ldOwoKICAgIGlmIHNjb3JlW2ldID49IDYwIHRoZW4KICAgICAgcGFzcyA6PSBwYXNzICsgMTsKICBlbmQ7CgogIGF2ZyA6PSBzdW0gLyBuOwoKICBtYXhTY29yZSA6PSBzY29yZVsxXTsKICBtaW5TY29yZSA6PSBzY29yZVsxXTsKCiAgZm9yIGkgOj0gMiB0byBuIGRvCiAgYmVnaW4KICAgIGlmIHNjb3JlW2ldID4gbWF4U2NvcmUgdGhlbgogICAgICBtYXhTY29yZSA6PSBzY29yZVtpXTsKCiAgICBpZiBzY29yZVtpXSA8IG1pblNjb3JlIHRoZW4KICAgICAgbWluU2NvcmUgOj0gc2NvcmVbaV07CiAgZW5kOwoKICB2YXJpYW5jZSA6PSAwOwoKICBmb3IgaSA6PSAxIHRvIG4gZG8KICAgIHZhcmlhbmNlIDo9IHZhcmlhbmNlICsgc3FyKHNjb3JlW2ldIC0gYXZnKTsKCiAgdmFyaWFuY2UgOj0gdmFyaWFuY2UgLyBuOwogIHNkIDo9IHNxcnQodmFyaWFuY2UpOwoKICB7IOaYh+mghuOCveODvOODiO+8iOODkOODluODq+OCveODvOODiO+8iSB9CiAgZm9yIGkgOj0gMSB0byBuIC0gMSBkbwogICAgZm9yIGogOj0gaSArIDEgdG8gbiBkbwogICAgICBpZiBzb3J0ZWRbaV0gPiBzb3J0ZWRbal0gdGhlbgogICAgICBiZWdpbgogICAgICAgIHRlbXAgOj0gc29ydGVkW2ldOwogICAgICAgIHNvcnRlZFtpXSA6PSBzb3J0ZWRbal07CiAgICAgICAgc29ydGVkW2pdIDo9IHRlbXA7CiAgICAgIGVuZDsKCiAgeyDkuK3lpK7lgKQgfQogIGlmIG4gbW9kIDIgPSAxIHRoZW4KICAgIG1lZGlhbiA6PSBzb3J0ZWRbKG4gKyAxKSBkaXYgMl0KICBlbHNlCiAgICBtZWRpYW4gOj0gKHNvcnRlZFtuIGRpdiAyXSArIHNvcnRlZFtuIGRpdiAyICsgMV0pIC8gMjsKCiAgeyDlgY/lt67lgKQgfQogIGlmIHNkIDw+IDAgdGhlbgogICAgZm9yIGkgOj0gMSB0byBuIGRvCiAgICAgIGhlbnNhY2hpW2ldIDo9IDUwICsgMTAgKiAoc2NvcmVbaV0gLSBhdmcpIC8gc2QKICBlbHNlCiAgICBmb3IgaSA6PSAxIHRvIG4gZG8KICAgICAgaGVuc2FjaGlbaV0gOj0gNTA7CgogIHdyaXRlbG47CiAgd3JpdGVsbignPT09PT0g57WQ5p6cID09PT09Jyk7CiAgd3JpdGVsbign5bmz5Z2H54K5ICAgICA6ICcsIGF2ZzowOjIpOwogIHdyaXRlbG4oJ+S4reWkruWApCAgICAgOiAnLCBtZWRpYW46MDoyKTsKICB3cml0ZWxuKCfmnIDpq5jngrkgICAgIDogJywgbWF4U2NvcmU6MDoyKTsKICB3cml0ZWxuKCfmnIDkvY7ngrkgICAgIDogJywgbWluU2NvcmU6MDoyKTsKICB3cml0ZWxuKCfmqJnmupblgY/lt64gICA6ICcsIHNkOjA6Mik7CiAgd3JpdGVsbign5ZCI5qC86ICF5pWwICAgOiAnLCBwYXNzKTsKCiAgd3JpdGVsbjsKICB3cml0ZWxuKCflkITlrabnlJ/jga7lgY/lt67lgKQnKTsKICBmb3IgaSA6PSAxIHRvIG4gZG8KICAgIHdyaXRlbG4oaSwgJ+S6uuebriA6ICcsIGhlbnNhY2hpW2ldOjA6Mik7CgplbmQu