MDL-10524 minor simplification of median aggregation + fixed aggregation names in lang

This commit is contained in:
skodak 2007-07-20 13:54:58 +00:00
parent 61fbd0fb52
commit c186c7b2cb
2 changed files with 6 additions and 13 deletions

View File

@ -10,11 +10,11 @@ $string['additem'] = 'Add Grade Item';
$string['aggregateextracreditmeanall'] = 'Mean of all grades (extra credits)';
$string['aggregateextracreditmeangraded'] = 'Mean of non-empty grades (extra credits)';
$string['aggregatemeanall'] = 'Mean of all grades';
$string['aggregatemedian'] = 'Median of all grades';
$string['aggregatemedian'] = 'Median of non-empty grades';
$string['aggregatemeangraded'] = 'Mean of non-empty grades';
$string['aggregatemin'] = 'Smallest grade';
$string['aggregatemax'] = 'Highest grade';
$string['aggregatemode'] = 'Mode of all grades';
$string['aggregatemode'] = 'Mode of non-empty grades';
$string['aggregateweightedmeanall'] = 'Weighted mean of all grades';
$string['aggregateweightedmeangraded'] = 'Weighted mean of non-empty grades';
$string['aggregation'] = 'Aggregation';

View File

@ -452,18 +452,11 @@ class grade_category extends grade_object {
switch ($this->aggregation) {
case GRADE_AGGREGATE_MEDIAN: // Middle point value in the set: ignores frequencies
$num = count($grade_values);
// re-index grade_values array
$sorted_values = $grade_values;
sort($sorted_values);
$halfpoint = intval($num / 2);
if ($num == 0) {
$rawgrade = null;
} elseif ($num == 1) {
$rawgrade = reset($sorted_values);
} else if($num % 2 == 0) {
$rawgrade = ($sorted_values[ceil($halfpoint)] + $sorted_values[floor($halfpoint)]) / 2;
$grades = array_values($grade_values);
if ($num % 2 == 0) {
$rawgrade = ($grades[intval($num/2)-1] + $grades[intval($num/2)]) / 2;
} else {
$rawgrade = $sorted_values[$halfpoint];
$rawgrade = $grades[intval(($num/2)-0.5)];
}
break;