Averages/Median: Difference between revisions

m
Line 899:
 
=={{header|Elena}}==
ELENA 3.4.x :
<lang elena>import system'routines.;
import system'math.;
import extensions.;
extension op
{
medianget Median()
[{
var aSortedsorted := self ascendant.Ascendant;
 
var aLenlen := aSorted lengthsorted.Length;
if (aLenlen == 0)
{ [ ^ nil ];
[^ nil
}
var aMiddleIndex := aLen / 2.
if (aLen mod:2 == 0)else
{
[ ^ (aSorted[aMiddleIndex - 1] + aSorted[aMiddleIndex]) / 2 ];
var middleIndex := len / [ ^ aSorted[aMiddleIndex] ]2;
]if (len.mod:2 == 0)
] {
[ ^ (aSortedsorted[aMiddleIndexmiddleIndex - 1] + aSortedsorted[aMiddleIndexmiddleIndex]) / 2 ];
}
else
{
^ sorted[middleIndex]
}
}
}
}
 
public program()
{
[
var a1 := (new real[]{4.1r, 5.6r, 7.2r, 1.7r, 9.3r, 4.4r, 3.2r).};
var a2 := (new real[]{4.1r, 7.2r, 1.7r, 9.3r, 4.4r, 3.2r).};
console .printLine("median of (",a1,") is ",a1 median.Median).;
console .printLine("median of (",a2,") is ",a2 median.Median).;
console readChar.readChar()
]}</lang>
{{out}}
<pre>
Anonymous user