Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.forth > #50810
| From | "WJ" <w_a_x_man@yahoo.com> |
|---|---|
| Newsgroups | comp.lang.forth |
| Subject | Rosetta Code: Price fraction |
| Date | 2016-09-10 12:41 +0000 |
| Organization | A noiseless patient Spider |
| Message-ID | <nr0v20$560$1@dont-email.me> (permalink) |
> A friend of mine runs a pharmacy. He has a specialized
> function in his Dispensary application which receives a
> decimal value of currency and replaces it to a standard value.
> This value is regulated by a government department.
>
> Given a floating point value between 0.00 and 1.00,
> rescale according to the following table:
>
> >= 0.00 < 0.06 := 0.10
> >= 0.06 < 0.11 := 0.18
> >= 0.11 < 0.16 := 0.26
> >= 0.16 < 0.21 := 0.32
> >= 0.21 < 0.26 := 0.38
> >= 0.26 < 0.31 := 0.44
> >= 0.31 < 0.36 := 0.50
> >= 0.36 < 0.41 := 0.54
> >= 0.41 < 0.46 := 0.58
> >= 0.46 < 0.51 := 0.62
> >= 0.51 < 0.56 := 0.66
> >= 0.56 < 0.61 := 0.70
> >= 0.61 < 0.66 := 0.74
> >= 0.66 < 0.71 := 0.78
> >= 0.71 < 0.76 := 0.82
> >= 0.76 < 0.81 := 0.86
> >= 0.81 < 0.86 := 0.90
> >= 0.86 < 0.91 := 0.94
> >= 0.91 < 0.96 := 0.98
> >= 0.96 < 1.01 := 1.00
Ruby:
Including the literal floats in the program is too easy.
Let's derive them from the text of the problem.
$table =
"
>= 0.00 < 0.06 := 0.10
>= 0.06 < 0.11 := 0.18
>= 0.11 < 0.16 := 0.26
>= 0.16 < 0.21 := 0.32
>= 0.21 < 0.26 := 0.38
>= 0.26 < 0.31 := 0.44
>= 0.31 < 0.36 := 0.50
>= 0.36 < 0.41 := 0.54
>= 0.41 < 0.46 := 0.58
>= 0.46 < 0.51 := 0.62
>= 0.51 < 0.56 := 0.66
>= 0.56 < 0.61 := 0.70
>= 0.61 < 0.66 := 0.74
>= 0.66 < 0.71 := 0.78
>= 0.71 < 0.76 := 0.82
>= 0.76 < 0.81 := 0.86
>= 0.81 < 0.86 := 0.90
>= 0.86 < 0.91 := 0.94
>= 0.91 < 0.96 := 0.98
>= 0.96 < 1.01 := 1.00".
strip.lines.map{|s| a,b,c = s.scan(/[\d.]+/).map(&:to_f); [a ... b, c]}
def rescale price
$table.find{|r,_| r.include? price}.last
end
[0.0, 0.08, 0.25, 0.75, 0.99].each{|f|
printf "%.2f -> %.2f\n", f, rescale(f)}
0.00 -> 0.10
0.08 -> 0.18
0.25 -> 0.38
0.75 -> 0.82
0.99 -> 1.00
In Forth?
--
In Denmark and Norway, between 65% and 70% of all rapes are committed by
Muslims.... One local judge in Norway actually exonerated one rapist by
accepting his defense that the victim's dress was taken by him to mean that she
was egging him on.
http://fjordman.blogspot.com/2005/08/rape-nothing-to-do-with-islam.html
Back to comp.lang.forth | Previous | Next | Find similar | Unroll thread
Rosetta Code: Price fraction "WJ" <w_a_x_man@yahoo.com> - 2016-09-10 12:41 +0000
csiph-web