program seiseki;
var
n, i, j: integer;
score: array[1..100] of integer;
sum: integer;
max, min: integer;
pass: integer;
temp: integer;
median: real;
sum2, sd, hensachi: real;
begin
readln(n);
sum := 0;
pass := 0;
for i := 1 to n do
begin
readln(score[i]);
sum := sum + score[i];
if i = 1 then
begin
max := score[i];
min := score[i];
end;
if score[i] > max then
max := score[i];
if score[i] < min then
min := score[i];
if score[i] >= 60 then
pass := pass + 1;
end;
writeln('合計=', sum);
writeln('平均=', sum / n:0:2);
writeln('最高点=', max);
writeln('最低点=', min);
for i := 1 to n - 1 do
begin
for j := i + 1 to n do
begin
if score[i] > score[j] then
begin
temp := score[i];
score[i] := score[j];
score[j] := temp;
end;
end;
end;
if n mod 2 = 1 then
median := score[(n + 1) div 2]
else
median := (score[n div 2] + score[n div 2 + 1]) / 2;
sum2 := 0;
for i := 1 to n do
begin
sum2 := sum2 + sqr(score[i] - (sum / n));
end;
sd := sqrt(sum2 / n);
writeln('中央値=', median:0:2);
writeln('標準偏差=', sd:0:2);
writeln('偏差値');
for i := 1 to n do
begin
hensachi := 50 + 10 * (score[i] - (sum / n)) / sd;
writeln(score[i], '点 -> ', hensachi:0:2);
end;
writeln('合格者数=', pass);
end.
{
入力例
10
80
75
60
90
55
70
85
40
95
65
出力例
合計=715
平均=71.50
最高点=95
最低点=40
中央値=72.50
標準偏差=16.13
偏差値
40点 -> 30.47
55点 -> 39.77
60点 -> 42.87
65点 -> 45.97
70点 -> 49.07
75点 -> 52.17
80点 -> 55.27
85点 -> 58.37
90点 -> 61.47
95点 -> 64.57
合格者数=8
AI利用について
ChatGPTを利用してプログラム作成を補助した。
・中央値を求めるための並べ替え処理を追加し、表示位置を修正した。
・標準偏差と偏差値の計算・表示を追加した。
}
cHJvZ3JhbSBzZWlzZWtpOwp2YXIKICBuLCBpLCBqOiBpbnRlZ2VyOwogIHNjb3JlOiBhcnJheVsxLi4xMDBdIG9mIGludGVnZXI7CiAgc3VtOiBpbnRlZ2VyOwogIG1heCwgbWluOiBpbnRlZ2VyOwogIHBhc3M6IGludGVnZXI7CiB0ZW1wOiBpbnRlZ2VyOwogIG1lZGlhbjogcmVhbDsKICBzdW0yLCBzZCwgaGVuc2FjaGk6IHJlYWw7CmJlZ2luCiAgcmVhZGxuKG4pOwoKICBzdW0gOj0gMDsKICBwYXNzIDo9IDA7CgogIGZvciBpIDo9IDEgdG8gbiBkbwogIGJlZ2luCiAgICByZWFkbG4oc2NvcmVbaV0pOwoKICAgIHN1bSA6PSBzdW0gKyBzY29yZVtpXTsKCiAgICBpZiBpID0gMSB0aGVuCiAgICBiZWdpbgogICAgICBtYXggOj0gc2NvcmVbaV07CiAgICAgIG1pbiA6PSBzY29yZVtpXTsKICAgIGVuZDsKCiAgICBpZiBzY29yZVtpXSA+IG1heCB0aGVuCiAgICAgIG1heCA6PSBzY29yZVtpXTsKCiAgICBpZiBzY29yZVtpXSA8IG1pbiB0aGVuCiAgICAgIG1pbiA6PSBzY29yZVtpXTsKCiAgICBpZiBzY29yZVtpXSA+PSA2MCB0aGVuCiAgICAgIHBhc3MgOj0gcGFzcyArIDE7CiAgZW5kOwogIHdyaXRlbG4oJ+WQiOioiD0nLCBzdW0pOwogIHdyaXRlbG4oJ+W5s+Wdhz0nLCBzdW0gLyBuOjA6Mik7CiAgd3JpdGVsbign5pyA6auY54K5PScsIG1heCk7CiAgd3JpdGVsbign5pyA5L2O54K5PScsIG1pbik7CiAgZm9yIGkgOj0gMSB0byBuIC0gMSBkbwpiZWdpbgogIGZvciBqIDo9IGkgKyAxIHRvIG4gZG8KICBiZWdpbgogICAgaWYgc2NvcmVbaV0gPiBzY29yZVtqXSB0aGVuCiAgICBiZWdpbgogICAgICB0ZW1wIDo9IHNjb3JlW2ldOwogICAgICBzY29yZVtpXSA6PSBzY29yZVtqXTsKICAgICAgc2NvcmVbal0gOj0gdGVtcDsKICAgIGVuZDsKICBlbmQ7CmVuZDsKaWYgbiBtb2QgMiA9IDEgdGhlbgogIG1lZGlhbiA6PSBzY29yZVsobiArIDEpIGRpdiAyXQplbHNlCiAgbWVkaWFuIDo9IChzY29yZVtuIGRpdiAyXSArIHNjb3JlW24gZGl2IDIgKyAxXSkgLyAyOwogIHN1bTIgOj0gMDsKZm9yIGkgOj0gMSB0byBuIGRvCmJlZ2luCiAgc3VtMiA6PSBzdW0yICsgc3FyKHNjb3JlW2ldIC0gKHN1bSAvIG4pKTsKZW5kOwoKc2QgOj0gc3FydChzdW0yIC8gbik7CiAgICB3cml0ZWxuKCfkuK3lpK7lgKQ9JywgbWVkaWFuOjA6Mik7CiAgICB3cml0ZWxuKCfmqJnmupblgY/lt649Jywgc2Q6MDoyKTsKICAgIHdyaXRlbG4oJ+WBj+W3ruWApCcpOwoKZm9yIGkgOj0gMSB0byBuIGRvCmJlZ2luCiAgaGVuc2FjaGkgOj0gNTAgKyAxMCAqIChzY29yZVtpXSAtIChzdW0gLyBuKSkgLyBzZDsKICB3cml0ZWxuKHNjb3JlW2ldLCAn54K5IC0+ICcsIGhlbnNhY2hpOjA6Mik7CmVuZDsKICB3cml0ZWxuKCflkIjmoLzogIXmlbA9JywgcGFzcyk7CmVuZC4KewrlhaXlipvkvosKMTAKODAKNzUKNjAKOTAKNTUKNzAKODUKNDAKOTUKNjUKCuWHuuWKm+S+iwrlkIjoqIg9NzE1CuW5s+Wdhz03MS41MArmnIDpq5jngrk9OTUK5pyA5L2O54K5PTQwCuS4reWkruWApD03Mi41MArmqJnmupblgY/lt649MTYuMTMK5YGP5beu5YCkCjQw54K5IC0+IDMwLjQ3CjU154K5IC0+IDM5Ljc3CjYw54K5IC0+IDQyLjg3CjY154K5IC0+IDQ1Ljk3Cjcw54K5IC0+IDQ5LjA3Cjc154K5IC0+IDUyLjE3Cjgw54K5IC0+IDU1LjI3Cjg154K5IC0+IDU4LjM3Cjkw54K5IC0+IDYxLjQ3Cjk154K5IC0+IDY0LjU3CuWQiOagvOiAheaVsD04CgpBSeWIqeeUqOOBq+OBpOOBhOOBpgpDaGF0R1BU44KS5Yip55So44GX44Gm44OX44Ot44Kw44Op44Og5L2c5oiQ44KS6KOc5Yqp44GX44Gf44CCCuODu+S4reWkruWApOOCkuaxguOCgeOCi+OBn+OCgeOBruS4puOBueabv+OBiOWHpueQhuOCkui/veWKoOOBl+OAgeihqOekuuS9jee9ruOCkuS/ruato+OBl+OBn+OAggrjg7vmqJnmupblgY/lt67jgajlgY/lt67lgKTjga7oqIjnrpfjg7vooajnpLrjgpLov73liqDjgZfjgZ/jgIIKfQ==