fork download
  1. program GradeStatistics;
  2.  
  3. uses Math;
  4.  
  5. const
  6. N = 10;
  7.  
  8. var
  9. score: array[1..N] of Real;
  10. sorted: array[1..N] of Real;
  11. deviation: array[1..N] of Real;
  12. i, j, pass: Integer;
  13. sum, avg, median, maxv, minv, std, temp: Real;
  14.  
  15. begin
  16. sum := 0;
  17. pass := 0;
  18.  
  19. for i := 1 to N do
  20. begin
  21. ReadLn(score[i]);
  22. sorted[i] := score[i];
  23. sum := sum + score[i];
  24.  
  25. if score[i] >= 60 then
  26. Inc(pass);
  27. end;
  28.  
  29. avg := sum / N;
  30.  
  31. maxv := score[1];
  32. minv := score[1];
  33.  
  34. for i := 2 to N do
  35. begin
  36. if score[i] > maxv then
  37. maxv := score[i];
  38. if score[i] < minv then
  39. minv := score[i];
  40. end;
  41.  
  42. for i := 1 to N - 1 do
  43. for j := i + 1 to N do
  44. if sorted[i] > sorted[j] then
  45. begin
  46. temp := sorted[i];
  47. sorted[i] := sorted[j];
  48. sorted[j] := temp;
  49. end;
  50.  
  51. median := (sorted[5] + sorted[6]) / 2;
  52.  
  53. std := 0;
  54. for i := 1 to N do
  55. std := std + Sqr(score[i] - avg);
  56.  
  57. std := Sqrt(std / N);
  58.  
  59. WriteLn('Average : ', avg:0:2);
  60. WriteLn('Median : ', median:0:2);
  61. WriteLn('Max : ', maxv:0:0);
  62. WriteLn('Min : ', minv:0:0);
  63. WriteLn('Std Dev : ', std:0:2);
  64. WriteLn('Pass : ', pass);
  65.  
  66. WriteLn;
  67. WriteLn('Deviation Values');
  68.  
  69. for i := 1 to N do
  70. begin
  71. if std <> 0 then
  72. deviation[i] := 50 + 10 * (score[i] - avg) / std
  73. else
  74. deviation[i] := 50;
  75.  
  76. WriteLn('Student ', i:2, ' : ', deviation[i]:0:2);
  77. end;
  78.  
  79. end.program GradeStatistics;
  80.  
  81. uses Math;
  82.  
  83. const
  84. N = 10;
  85.  
  86. var
  87. score: array[1..N] of Real;
  88. sorted: array[1..N] of Real;
  89. deviation: array[1..N] of Real;
  90. i, j, pass: Integer;
  91. sum, avg, median, maxv, minv, std, temp: Real;
  92.  
  93. begin
  94. sum := 0;
  95. pass := 0;
  96.  
  97. for i := 1 to N do
  98. begin
  99. ReadLn(score[i]);
  100. sorted[i] := score[i];
  101. sum := sum + score[i];
  102.  
  103. if score[i] >= 60 then
  104. Inc(pass);
  105. end;
  106.  
  107. avg := sum / N;
  108.  
  109. maxv := score[1];
  110. minv := score[1];
  111.  
  112. for i := 2 to N do
  113. begin
  114. if score[i] > maxv then
  115. maxv := score[i];
  116. if score[i] < minv then
  117. minv := score[i];
  118. end;
  119.  
  120. for i := 1 to N - 1 do
  121. for j := i + 1 to N do
  122. if sorted[i] > sorted[j] then
  123. begin
  124. temp := sorted[i];
  125. sorted[i] := sorted[j];
  126. sorted[j] := temp;
  127. end;
  128.  
  129. median := (sorted[5] + sorted[6]) / 2;
  130.  
  131. std := 0;
  132. for i := 1 to N do
  133. std := std + Sqr(score[i] - avg);
  134.  
  135. std := Sqrt(std / N);
  136.  
  137. WriteLn('Average : ', avg:0:2);
  138. WriteLn('Median : ', median:0:2);
  139. WriteLn('Max : ', maxv:0:0);
  140. WriteLn('Min : ', minv:0:0);
  141. WriteLn('Std Dev : ', std:0:2);
  142. WriteLn('Pass : ', pass);
  143.  
  144. WriteLn;
  145. WriteLn('Deviation Values');
  146.  
  147. for i := 1 to N do
  148. begin
  149. if std <> 0 then
  150. deviation[i] := 50 + 10 * (score[i] - avg) / std
  151. else
  152. deviation[i] := 50;
  153.  
  154. WriteLn('Student ', i:2, ' : ', deviation[i]:0:2);
  155. end;
  156.  
  157. end.
Success #stdin #stdout 0s 5324KB
stdin
70
80
65
90
55
60
75
85
95
50
stdout
Average : 72.50
Median  : 72.50
Max     : 95
Min     : 50
Std Dev : 14.36
Pass    : 8

Deviation Values
Student  1 : 48.26
Student  2 : 55.22
Student  3 : 44.78
Student  4 : 62.19
Student  5 : 37.81
Student  6 : 41.30
Student  7 : 51.74
Student  8 : 58.70
Student  9 : 65.67
Student 10 : 34.33