Fivenum: Difference between revisions

2,267 bytes added ,  1 month ago
m
→‎{{header|Ada}}: Fixed sub section headers
(Fivenum in FreeBASIC)
m (→‎{{header|Ada}}: Fixed sub section headers)
 
(3 intermediate revisions by 3 users not shown)
Line 43:
 
=={{header|Ada}}==
==={{header|Direct C Translation}}===
{{trans|C}}
<syntaxhighlight lang="ada">with Ada.Text_IO; use Ada.Text_IO;
Line 125:
[-1.950595940, -0.627594690, 0.119158120, 1.599037385, 1.731315070]
</pre>
==={{header|Using Ada Enumeration}}===
<syntaxhighlight lang="ada">with Ada.Text_IO; use Ada.Text_IO;
with Ada.Containers.Generic_Array_Sort;
Line 904:
[-1,9506,-0,6767,0,2332,0,7461,1,7313]
</pre>
 
=={{header|EasyLang}}==
{{trans|Ring}}
<syntaxhighlight>
func median t[] low high .
l = high - low + 1
m = low + l div 2
if l mod 2 = 1
return t[m]
.
return (t[m - 1] + t[m]) / 2
.
proc sort . d[] .
for i = 1 to len d[] - 1
for j = i + 1 to len d[]
if d[j] < d[i]
swap d[j] d[i]
.
.
.
.
func[] fivenum t[] .
sort t[]
l = len t[]
m = l div 2 + l mod 2
r1 = t[1]
r2 = median t[] 1 m
r3 = median t[] 1 l
r4 = median t[] (m + 1) l
r5 = t[l]
return [ r1 r2 r3 r4 r5 ]
.
print fivenum [ 0.14082834 0.09748790 1.73131507 0.87636009 -1.95059594 0.73438555 -0.03035726 1.46675970 -0.74621349 -0.72588772 0.63905160 0.61501527 -0.98983780 -1.00447874 -0.62759469 0.66206163 1.04312009 -0.10305385 0.75775634 0.32566578 ]
print fivenum [ 36 40 7 39 41 15 ]
</syntaxhighlight>
{{out}}
<pre>
[ -1.95 -0.68 0.23 0.75 1.73 ]
[ 7 15 37.50 40 41 ]
</pre>
 
=={{header|EMal}}==
{{trans|Java}}
<syntaxhighlight lang="emal">
type Fivenum
int ILLEGAL_ARGUMENT = 0
fun median = real by List x, int start, int endInclusive
int size = endInclusive - start + 1
if size <= 0 do Event.error(ILLEGAL_ARGUMENT, "Array slice cannot be empty").raise() end
int m = start + size / 2
return when(size % 2 == 1, x[m], (x[m - 1] + x[m]) / 2.0)
end
fun fivenum = List by List x
List result = real[].with(5)
x.order()
result[0] = x[0]
result[2] = median(x, 0, x.length - 1)
result[4] = x[x.length - 1]
int m = x.length / 2
int lowerEnd = when(x.length % 2 == 1, m, m - 1)
result[1] = median(x, 0, lowerEnd)
result[3] = median(x, m, x.length - 1)
return result
end
List lists = List[
real[15.0, 6.0, 42.0, 41.0, 7.0, 36.0, 49.0, 40.0, 39.0, 47.0, 43.0],
real[36.0, 40.0, 7.0, 39.0, 41.0, 15.0],
real[ 0.14082834, 0.09748790, 1.73131507, 0.87636009, -1.95059594, 0.73438555,
-0.03035726, 1.46675970, -0.74621349, -0.72588772, 0.63905160,
0.61501527, -0.98983780, -1.00447874, -0.62759469, 0.66206163,
1.04312009, -0.10305385, 0.75775634, 0.32566578] ]
for each List list in lists
writeLine(text!fivenum(list))
end
</syntaxhighlight>
{{out}}
<pre>
[6.0,25.5,40.0,42.5,49.0]
[7.0,15.0,37.5,40.0,41.0]
[-1.95059594,-0.676741205,0.23324706,0.746070945,1.73131507]
</pre>
 
=={{header|F Sharp|F#}}==
{{trans|C#}}
Line 2,500 ⟶ 2,582:
{{trans|Go}}
{{libheader|Wren-sort}}
<syntaxhighlight lang="ecmascriptwren">import "./sort" for Sort
 
var fivenum = Fn.new { |a|
3,032

edits