45 lines
1.1 KiB
AppleScript
45 lines
1.1 KiB
AppleScript
set alist to {1, 2, 3, 4, 5, 6, 7, 8}
|
|
set med to medi(alist)
|
|
|
|
on medi(alist)
|
|
|
|
set temp to {}
|
|
set lcount to count every item of alist
|
|
if lcount is equal to 2 then
|
|
return (item (random number from 1 to 2) of alist)
|
|
else if lcount is less than 2 then
|
|
return item 1 of alist
|
|
else --if lcount is greater than 2
|
|
set min to findmin(alist)
|
|
set max to findmax(alist)
|
|
repeat with x from 1 to lcount
|
|
if x is not equal to min and x is not equal to max then set end of temp to item x of alist
|
|
end repeat
|
|
set med to medi(temp)
|
|
end if
|
|
return med
|
|
|
|
end medi
|
|
|
|
on findmin(alist)
|
|
|
|
set min to 1
|
|
set alength to count every item of alist
|
|
repeat with x from 1 to alength
|
|
if item x of alist is less than item min of alist then set min to x
|
|
end repeat
|
|
return min
|
|
|
|
end findmin
|
|
|
|
on findmax(alist)
|
|
|
|
set max to 1
|
|
set alength to count every item of alist
|
|
repeat with x from 1 to alength
|
|
if item x of alist is greater than item max of alist then set max to x
|
|
end repeat
|
|
return max
|
|
|
|
end findmax
|