program ideone;
begin
(* yoprogram GradeAnalysis;
{$MODE OBJFPC}
uses
math, sysutils;
var
// 元の点数データ
originalScores: array[0..9] of Double = (60, 70, 80, 90, 50, 40, 100, 85, 75, 65);
// ソート計算用配列
sortedScores: array[0..9] of Double;
i, j, passCount: Integer;
sum, mean, median, maxScore, minScore, stdDev, temp: Double;
begin
// 1. 各種計算の準備
sum := 0;
passCount := 0;
for i := 0 to 9 do
begin
sortedScores[i] := originalScores[i];
sum := sum + originalScores[i];
if originalScores[i] >= 60 then Inc(passCount);
end;
mean := sum / 10;
// 標準偏差の計算 (手動計算)
sum := 0;
for i := 0 to 9 do
sum := sum + sqr(originalScores[i] - mean);
stdDev := sqrt(sum / 10);
// 2. 中央値などを出すためのソート
for i := 0 to 8 do
for j := i + 1 to 9 do
if sortedScores[i] > sortedScores[j] then
begin
temp := sortedScores[i];
sortedScores[i] := sortedScores[j];
sortedScores[j] := temp;
end;
minScore := sortedScores[0];
maxScore := sortedScores[9];
median := (sortedScores[4] + sortedScores[5]) / 2;
// 3. 結果の出力(すべて英語にしました)
WriteLn('Average: ', mean:0:2);
WriteLn('Median: ', median:0:2);
WriteLn('Max Score: ', maxScore:0:2);
WriteLn('Min Score: ', minScore:0:2);
WriteLn('Std Deviation: ', stdDev:0:2);
WriteLn('Passed Count: ', passCount);
WriteLn('--- Deviation Scores per Student ---');
for i := 0 to 9 do
begin
WriteLn('Student ', i+1, ': ', (50 + 10 * (originalScores[i] - mean) / stdDev):0:2);
end;
// 画面を一時停止する
ReadLn;
end.ur code goes here *)
end.
cHJvZ3JhbSBpZGVvbmU7CmJlZ2luCgkoKiB5b3Byb2dyYW0gR3JhZGVBbmFseXNpczsKeyRNT0RFIE9CSkZQQ30KCnVzZXMgCiAgbWF0aCwgc3lzdXRpbHM7Cgp2YXIKICAvLyDlhYPjga7ngrnmlbDjg4fjg7zjgr8KICBvcmlnaW5hbFNjb3JlczogYXJyYXlbMC4uOV0gb2YgRG91YmxlID0gKDYwLCA3MCwgODAsIDkwLCA1MCwgNDAsIDEwMCwgODUsIDc1LCA2NSk7CiAgLy8g44K944O844OI6KiI566X55So6YWN5YiXCiAgc29ydGVkU2NvcmVzOiBhcnJheVswLi45XSBvZiBEb3VibGU7CiAgaSwgaiwgcGFzc0NvdW50OiBJbnRlZ2VyOwogIHN1bSwgbWVhbiwgbWVkaWFuLCBtYXhTY29yZSwgbWluU2NvcmUsIHN0ZERldiwgdGVtcDogRG91YmxlOwoKYmVnaW4KICAvLyAxLiDlkITnqK7oqIjnrpfjga7mupblgpkKICBzdW0gOj0gMDsKICBwYXNzQ291bnQgOj0gMDsKICBmb3IgaSA6PSAwIHRvIDkgZG8KICBiZWdpbgogICAgc29ydGVkU2NvcmVzW2ldIDo9IG9yaWdpbmFsU2NvcmVzW2ldOyAKICAgIHN1bSA6PSBzdW0gKyBvcmlnaW5hbFNjb3Jlc1tpXTsKICAgIGlmIG9yaWdpbmFsU2NvcmVzW2ldID49IDYwIHRoZW4gSW5jKHBhc3NDb3VudCk7CiAgZW5kOwoKICBtZWFuIDo9IHN1bSAvIDEwOwoKICAvLyDmqJnmupblgY/lt67jga7oqIjnrpcgKOaJi+WLleioiOeulykKICBzdW0gOj0gMDsKICBmb3IgaSA6PSAwIHRvIDkgZG8KICAgIHN1bSA6PSBzdW0gKyBzcXIob3JpZ2luYWxTY29yZXNbaV0gLSBtZWFuKTsKICBzdGREZXYgOj0gc3FydChzdW0gLyAxMCk7CgogIC8vIDIuIOS4reWkruWApOOBquOBqeOCkuWHuuOBmeOBn+OCgeOBruOCveODvOODiAogIGZvciBpIDo9IDAgdG8gOCBkbwogICAgZm9yIGogOj0gaSArIDEgdG8gOSBkbwogICAgICBpZiBzb3J0ZWRTY29yZXNbaV0gPiBzb3J0ZWRTY29yZXNbal0gdGhlbgogICAgICBiZWdpbgogICAgICAgIHRlbXAgOj0gc29ydGVkU2NvcmVzW2ldOwogICAgICAgIHNvcnRlZFNjb3Jlc1tpXSA6PSBzb3J0ZWRTY29yZXNbal07CiAgICAgICAgc29ydGVkU2NvcmVzW2pdIDo9IHRlbXA7CiAgICAgIGVuZDsKCiAgbWluU2NvcmUgOj0gc29ydGVkU2NvcmVzWzBdOwogIG1heFNjb3JlIDo9IHNvcnRlZFNjb3Jlc1s5XTsKICBtZWRpYW4gOj0gKHNvcnRlZFNjb3Jlc1s0XSArIHNvcnRlZFNjb3Jlc1s1XSkgLyAyOwoKICAvLyAzLiDntZDmnpzjga7lh7rlipvvvIjjgZnjgbnjgaboi7Hoqp7jgavjgZfjgb7jgZfjgZ/vvIkKICBXcml0ZUxuKCdBdmVyYWdlOiAnLCBtZWFuOjA6Mik7CiAgV3JpdGVMbignTWVkaWFuOiAnLCBtZWRpYW46MDoyKTsKICBXcml0ZUxuKCdNYXggU2NvcmU6ICcsIG1heFNjb3JlOjA6Mik7CiAgV3JpdGVMbignTWluIFNjb3JlOiAnLCBtaW5TY29yZTowOjIpOwogIFdyaXRlTG4oJ1N0ZCBEZXZpYXRpb246ICcsIHN0ZERldjowOjIpOwogIFdyaXRlTG4oJ1Bhc3NlZCBDb3VudDogJywgcGFzc0NvdW50KTsKICBXcml0ZUxuKCctLS0gRGV2aWF0aW9uIFNjb3JlcyBwZXIgU3R1ZGVudCAtLS0nKTsKICAKICBmb3IgaSA6PSAwIHRvIDkgZG8KICBiZWdpbgogICAgV3JpdGVMbignU3R1ZGVudCAnLCBpKzEsICc6ICcsICg1MCArIDEwICogKG9yaWdpbmFsU2NvcmVzW2ldIC0gbWVhbikgLyBzdGREZXYpOjA6Mik7CiAgZW5kOwogIAogIC8vIOeUu+mdouOCkuS4gOaZguWBnOatouOBmeOCiwogIFJlYWRMbjsKZW5kLnVyIGNvZGUgZ29lcyBoZXJlICopCmVuZC4=
NjAsIDcwLCA4MCwgOTAsIDUwLCA0MCwgMTAwLCA4NSwgNzUsIDY1
60, 70, 80, 90, 50, 40, 100, 85, 75, 65