RosettaCodeData/Task/Averages-Median/Run-BASIC/averages-median.basic
2023-07-01 13:44:08 -04:00

30 lines
841 B
Text

sqliteconnect #mem, ":memory:"
mem$ = "CREATE TABLE med (x float)"
#mem execute(mem$)
a$ ="4.1,5.6,7.2,1.7,9.3,4.4,3.2" :gosub [median]
a$ ="4.1,7.2,1.7,9.3,4.4,3.2" :gosub [median]
a$ ="4.1,4,1.2,6.235,7868.33" :gosub [median]
a$ ="1,5,3,2,4" :gosub [median]
a$ ="1,5,3,6,4,2" :gosub [median]
a$ ="4.4,2.3,-1.7,7.5,6.6,0.0,1.9,8.2,9.3,4.5" :gosub [median]'
end
[median]
#mem execute("DELETE FROM med")
for i = 1 to 100
v$ = word$( a$, i, ",")
if v$ = "" then exit for
mem$ = "INSERT INTO med values(";v$;")"
#mem execute(mem$)
next i
mem$ = "SELECT AVG(x) as median FROM (SELECT x FROM med
ORDER BY x LIMIT 2 - (SELECT COUNT(*) FROM med) % 2
OFFSET (SELECT (COUNT(*) - 1) / 2
FROM med))"
#mem execute(mem$)
#row = #mem #nextrow()
median = #row median()
print " Median :";median;chr$(9);" Values:";a$
RETURN