program StudentStatistics;
{ Free Pascalで最も標準的な構成です }
const
N = 10;
var
scores: array[1..10] of Integer;
i, j, temp, sum, passCount, maxScore: Integer;
avg, stdDev, median: Double;
varianceSum: Double;
begin
{ データの初期化 }
scores[1] := 85; scores[2] := 72; scores[3] := 90; scores[4] := 60; scores[5] := 45;
scores[6] := 95; scores[7] := 78; scores[8] := 55; scores[9] := 88; scores[10] := 70;
sum := 0;
passCount := 0;
maxScore := 0;
{ 集計 }
for i := 1 to N do
begin
sum := sum + scores[i];
if scores[i] >= 60 then passCount := passCount + 1;
if scores[i] > maxScore then maxScore := scores[i];
end;
avg := sum / N;
{ ソート (中央値計算のため) }
for i := 1 to N - 1 do
for j := i + 1 to N do
if scores[i] > scores[j] then
begin
temp := scores[i];
scores[i] := scores[j];
scores[j] := temp;
end;
median := (scores[5] + scores[6]) / 2;
{ 標準偏差 }
varianceSum := 0;
for i := 1 to N do
varianceSum := varianceSum + (scores[i] - avg) * (scores[i] - avg);
stdDev := sqrt(varianceSum / N);
{ 結果出力 }
writeln('Average: ', avg:0:2);
writeln('Median: ', median:0:1);
writeln('Max: ', maxScore);
writeln('StdDev: ', stdDev:0:2);
writeln('Pass Count: ', passCount);
end.
cHJvZ3JhbSBTdHVkZW50U3RhdGlzdGljczsKCnsgRnJlZSBQYXNjYWzjgafmnIDjgoLmqJnmupbnmoTjgarmp4vmiJDjgafjgZkgfQpjb25zdAogIE4gPSAxMDsKCnZhcgogIHNjb3JlczogYXJyYXlbMS4uMTBdIG9mIEludGVnZXI7CiAgaSwgaiwgdGVtcCwgc3VtLCBwYXNzQ291bnQsIG1heFNjb3JlOiBJbnRlZ2VyOwogIGF2Zywgc3RkRGV2LCBtZWRpYW46IERvdWJsZTsKICB2YXJpYW5jZVN1bTogRG91YmxlOwoKYmVnaW4KICB7IOODh+ODvOOCv+OBruWIneacn+WMliB9CiAgc2NvcmVzWzFdIDo9IDg1OyBzY29yZXNbMl0gOj0gNzI7IHNjb3Jlc1szXSA6PSA5MDsgc2NvcmVzWzRdIDo9IDYwOyBzY29yZXNbNV0gOj0gNDU7CiAgc2NvcmVzWzZdIDo9IDk1OyBzY29yZXNbN10gOj0gNzg7IHNjb3Jlc1s4XSA6PSA1NTsgc2NvcmVzWzldIDo9IDg4OyBzY29yZXNbMTBdIDo9IDcwOwoKICBzdW0gOj0gMDsKICBwYXNzQ291bnQgOj0gMDsKICBtYXhTY29yZSA6PSAwOwoKICB7IOmbhuioiCB9CiAgZm9yIGkgOj0gMSB0byBOIGRvCiAgYmVnaW4KICAgIHN1bSA6PSBzdW0gKyBzY29yZXNbaV07CiAgICBpZiBzY29yZXNbaV0gPj0gNjAgdGhlbiBwYXNzQ291bnQgOj0gcGFzc0NvdW50ICsgMTsKICAgIGlmIHNjb3Jlc1tpXSA+IG1heFNjb3JlIHRoZW4gbWF4U2NvcmUgOj0gc2NvcmVzW2ldOwogIGVuZDsKICBhdmcgOj0gc3VtIC8gTjsKCiAgeyDjgr3jg7zjg4ggKOS4reWkruWApOioiOeul+OBruOBn+OCgSkgfQogIGZvciBpIDo9IDEgdG8gTiAtIDEgZG8KICAgIGZvciBqIDo9IGkgKyAxIHRvIE4gZG8KICAgICAgaWYgc2NvcmVzW2ldID4gc2NvcmVzW2pdIHRoZW4KICAgICAgYmVnaW4KICAgICAgICB0ZW1wIDo9IHNjb3Jlc1tpXTsKICAgICAgICBzY29yZXNbaV0gOj0gc2NvcmVzW2pdOwogICAgICAgIHNjb3Jlc1tqXSA6PSB0ZW1wOwogICAgICBlbmQ7CiAgCiAgbWVkaWFuIDo9IChzY29yZXNbNV0gKyBzY29yZXNbNl0pIC8gMjsKCiAgeyDmqJnmupblgY/lt64gfQogIHZhcmlhbmNlU3VtIDo9IDA7CiAgZm9yIGkgOj0gMSB0byBOIGRvCiAgICB2YXJpYW5jZVN1bSA6PSB2YXJpYW5jZVN1bSArIChzY29yZXNbaV0gLSBhdmcpICogKHNjb3Jlc1tpXSAtIGF2Zyk7CiAgc3RkRGV2IDo9IHNxcnQodmFyaWFuY2VTdW0gLyBOKTsKCiAgeyDntZDmnpzlh7rlipsgfQogIHdyaXRlbG4oJ0F2ZXJhZ2U6ICcsIGF2ZzowOjIpOwogIHdyaXRlbG4oJ01lZGlhbjogJywgbWVkaWFuOjA6MSk7CiAgd3JpdGVsbignTWF4OiAnLCBtYXhTY29yZSk7CiAgd3JpdGVsbignU3RkRGV2OiAnLCBzdGREZXY6MDoyKTsKICB3cml0ZWxuKCdQYXNzIENvdW50OiAnLCBwYXNzQ291bnQpOwplbmQu