(*
課題:成績集計
入力例
10
80
65
90
55
70
100
40
75
85
60
出力例
平均点: 72.00
中央値: 72.50
最高点: 100
最低点: 40
標準偏差: 18.03
合格者数: 8
AI利用・修正点
・ChatGPTで作成したプログラムを基に、提出用に修正・整理した。
*)
program ideone;
uses Math;
const
MAX = 100;
var
score, sorted: array[1..MAX] of Integer;
n, i, j, temp: Integer;
sum, avg, variance, sd, median, hensachi: Real;
maxScore, minScore, passCount: Integer;
begin
readln(n);
if n < 10 then
begin
writeln('10人以上入力してください。');
halt;
end;
sum := 0;
passCount := 0;
for i := 1 to n do
begin
readln(score[i]);
sorted[i] := score[i];
sum := sum + score[i];
if score[i] >= 60 then
Inc(passCount);
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;
writeln('平均点: ', avg:0:2);
writeln('中央値: ', median:0:2);
writeln('最高点: ', maxScore);
writeln('最低点: ', minScore);
writeln('標準偏差: ', sd:0:2);
writeln('合格者数: ', passCount);
writeln('偏差値');
for i := 1 to n do
begin
if sd = 0 then
hensachi := 50
else
hensachi := 50 + 10 * ((score[i] - avg) / sd);
writeln(i, '人目: ', hensachi:0:2);
end;
end.
KCoK6Kqy6aGM77ya5oiQ57i+6ZuG6KiICgrlhaXlipvkvosKMTAKODAKNjUKOTAKNTUKNzAKMTAwCjQwCjc1Cjg1CjYwCgrlh7rlipvkvosK5bmz5Z2H54K5OiA3Mi4wMArkuK3lpK7lgKQ6IDcyLjUwCuacgOmrmOeCuTogMTAwCuacgOS9jueCuTogNDAK5qiZ5rqW5YGP5beuOiAxOC4wMwrlkIjmoLzogIXmlbA6IDgKCkFJ5Yip55So44O75L+u5q2j54K5CuODu0NoYXRHUFTjgafkvZzmiJDjgZfjgZ/jg5fjg63jgrDjg6njg6DjgpLln7rjgavjgIHmj5Dlh7rnlKjjgavkv67mraPjg7vmlbTnkIbjgZfjgZ/jgIIKKikKCnByb2dyYW0gaWRlb25lOwoKdXNlcyBNYXRoOwoKY29uc3QKICBNQVggPSAxMDA7Cgp2YXIKICBzY29yZSwgc29ydGVkOiBhcnJheVsxLi5NQVhdIG9mIEludGVnZXI7CiAgbiwgaSwgaiwgdGVtcDogSW50ZWdlcjsKICBzdW0sIGF2ZywgdmFyaWFuY2UsIHNkLCBtZWRpYW4sIGhlbnNhY2hpOiBSZWFsOwogIG1heFNjb3JlLCBtaW5TY29yZSwgcGFzc0NvdW50OiBJbnRlZ2VyOwoKYmVnaW4KICByZWFkbG4obik7CgogIGlmIG4gPCAxMCB0aGVuCiAgYmVnaW4KICAgIHdyaXRlbG4oJzEw5Lq65Lul5LiK5YWl5Yqb44GX44Gm44GP44Gg44GV44GE44CCJyk7CiAgICBoYWx0OwogIGVuZDsKCiAgc3VtIDo9IDA7CiAgcGFzc0NvdW50IDo9IDA7CgogIGZvciBpIDo9IDEgdG8gbiBkbwogIGJlZ2luCiAgICByZWFkbG4oc2NvcmVbaV0pOwogICAgc29ydGVkW2ldIDo9IHNjb3JlW2ldOwogICAgc3VtIDo9IHN1bSArIHNjb3JlW2ldOwoKICAgIGlmIHNjb3JlW2ldID49IDYwIHRoZW4KICAgICAgSW5jKHBhc3NDb3VudCk7CiAgZW5kOwoKICBhdmcgOj0gc3VtIC8gbjsKCiAgbWF4U2NvcmUgOj0gc2NvcmVbMV07CiAgbWluU2NvcmUgOj0gc2NvcmVbMV07CgogIGZvciBpIDo9IDIgdG8gbiBkbwogIGJlZ2luCiAgICBpZiBzY29yZVtpXSA+IG1heFNjb3JlIHRoZW4KICAgICAgbWF4U2NvcmUgOj0gc2NvcmVbaV07CiAgICBpZiBzY29yZVtpXSA8IG1pblNjb3JlIHRoZW4KICAgICAgbWluU2NvcmUgOj0gc2NvcmVbaV07CiAgZW5kOwoKICB2YXJpYW5jZSA6PSAwOwogIGZvciBpIDo9IDEgdG8gbiBkbwogICAgdmFyaWFuY2UgOj0gdmFyaWFuY2UgKyBzcXIoc2NvcmVbaV0gLSBhdmcpOwoKICB2YXJpYW5jZSA6PSB2YXJpYW5jZSAvIG47CiAgc2QgOj0gc3FydCh2YXJpYW5jZSk7CgogIGZvciBpIDo9IDEgdG8gbiAtIDEgZG8KICAgIGZvciBqIDo9IGkgKyAxIHRvIG4gZG8KICAgICAgaWYgc29ydGVkW2ldID4gc29ydGVkW2pdIHRoZW4KICAgICAgYmVnaW4KICAgICAgICB0ZW1wIDo9IHNvcnRlZFtpXTsKICAgICAgICBzb3J0ZWRbaV0gOj0gc29ydGVkW2pdOwogICAgICAgIHNvcnRlZFtqXSA6PSB0ZW1wOwogICAgICBlbmQ7CgogIGlmIG4gbW9kIDIgPSAxIHRoZW4KICAgIG1lZGlhbiA6PSBzb3J0ZWRbKG4gKyAxKSBkaXYgMl0KICBlbHNlCiAgICBtZWRpYW4gOj0gKHNvcnRlZFtuIGRpdiAyXSArIHNvcnRlZFtuIGRpdiAyICsgMV0pIC8gMjsKCiAgd3JpdGVsbign5bmz5Z2H54K5OiAnLCBhdmc6MDoyKTsKICB3cml0ZWxuKCfkuK3lpK7lgKQ6ICcsIG1lZGlhbjowOjIpOwogIHdyaXRlbG4oJ+acgOmrmOeCuTogJywgbWF4U2NvcmUpOwogIHdyaXRlbG4oJ+acgOS9jueCuTogJywgbWluU2NvcmUpOwogIHdyaXRlbG4oJ+aomea6luWBj+W3rjogJywgc2Q6MDoyKTsKICB3cml0ZWxuKCflkIjmoLzogIXmlbA6ICcsIHBhc3NDb3VudCk7CgogIHdyaXRlbG4oJ+WBj+W3ruWApCcpOwogIGZvciBpIDo9IDEgdG8gbiBkbwogIGJlZ2luCiAgICBpZiBzZCA9IDAgdGhlbgogICAgICBoZW5zYWNoaSA6PSA1MAogICAgZWxzZQogICAgICBoZW5zYWNoaSA6PSA1MCArIDEwICogKChzY29yZVtpXSAtIGF2ZykgLyBzZCk7CgogICAgd3JpdGVsbihpLCAn5Lq655uuOiAnLCBoZW5zYWNoaTowOjIpOwogIGVuZDsKCmVuZC4=