Price fraction: Difference between revisions

added Icon/Unicon example
(K version added)
(added Icon/Unicon example)
Line 753:
0.837450 0.90
0.228953 0.38</pre>
 
=={{header|Icon}} and {{header|Unicon}}==
 
<lang Icon>
record Bounds(low,high,new)
 
# rescale given value according to a list of bounds
procedure rescale (i, bounds)
every bound := !bounds do
if bound.low <= i < bound.high
then return bound.new
return fail # could not find i in bounds
end
 
procedure main ()
bounds := [
Bounds(0.00, 0.06, 0.10),
Bounds(0.06, 0.11, 0.18),
Bounds(0.11, 0.16, 0.26),
Bounds(0.16, 0.21, 0.32),
Bounds(0.21, 0.26, 0.38),
Bounds(0.26, 0.31, 0.44),
Bounds(0.31, 0.36, 0.50),
Bounds(0.36, 0.41, 0.54),
Bounds(0.41, 0.46, 0.58),
Bounds(0.46, 0.51, 0.62),
Bounds(0.51, 0.56, 0.66),
Bounds(0.56, 0.61, 0.70),
Bounds(0.61, 0.66, 0.74),
Bounds(0.66, 0.71, 0.78),
Bounds(0.71, 0.76, 0.82),
Bounds(0.76, 0.81, 0.86),
Bounds(0.81, 0.86, 0.90),
Bounds(0.86, 0.91, 0.94),
Bounds(0.91, 0.96, 0.98),
Bounds(0.96, 1.01, 1.00)
]
 
# test the procedure
every i := 0.00 to 1.00 by 0.1 do {
write (i || " rescaled is " || rescale(i, bounds))
}
end
</lang>
 
Output:
<pre>
0.0 rescaled is 0.1
0.1 rescaled is 0.18
0.2 rescaled is 0.32
0.3 rescaled is 0.44
0.4 rescaled is 0.54
0.5 rescaled is 0.62
0.6 rescaled is 0.7
0.7 rescaled is 0.78
0.8 rescaled is 0.86
0.9 rescaled is 0.94
1.0 rescaled is 1.0
</pre>
 
=={{header|Inform 7}}==
342

edits