fork download
  1. program StudentStatistics;
  2.  
  3. { Free Pascalで最も標準的な構成です }
  4. const
  5. N = 10;
  6.  
  7. var
  8. scores: array[1..10] of Integer;
  9. i, j, temp, sum, passCount, maxScore: Integer;
  10. avg, stdDev, median: Double;
  11. varianceSum: Double;
  12.  
  13. begin
  14. { データの初期化 }
  15. scores[1] := 85; scores[2] := 72; scores[3] := 90; scores[4] := 60; scores[5] := 45;
  16. scores[6] := 95; scores[7] := 78; scores[8] := 55; scores[9] := 88; scores[10] := 70;
  17.  
  18. sum := 0;
  19. passCount := 0;
  20. maxScore := 0;
  21.  
  22. { 集計 }
  23. for i := 1 to N do
  24. begin
  25. sum := sum + scores[i];
  26. if scores[i] >= 60 then passCount := passCount + 1;
  27. if scores[i] > maxScore then maxScore := scores[i];
  28. end;
  29. avg := sum / N;
  30.  
  31. { ソート (中央値計算のため) }
  32. for i := 1 to N - 1 do
  33. for j := i + 1 to N do
  34. if scores[i] > scores[j] then
  35. begin
  36. temp := scores[i];
  37. scores[i] := scores[j];
  38. scores[j] := temp;
  39. end;
  40.  
  41. median := (scores[5] + scores[6]) / 2;
  42.  
  43. { 標準偏差 }
  44. varianceSum := 0;
  45. for i := 1 to N do
  46. varianceSum := varianceSum + (scores[i] - avg) * (scores[i] - avg);
  47. stdDev := sqrt(varianceSum / N);
  48.  
  49. { 結果出力 }
  50. writeln('Average: ', avg:0:2);
  51. writeln('Median: ', median:0:1);
  52. writeln('Max: ', maxScore);
  53. writeln('StdDev: ', stdDev:0:2);
  54. writeln('Pass Count: ', passCount);
  55. end.
Success #stdin #stdout 0s 5324KB
stdin
Standard input is empty
stdout
Average: 73.80
Median: 75.0
Max: 95
StdDev: 15.64
Pass Count: 8