Price fraction: Difference between revisions

Content added Content deleted
(Added uBasic/4tH version)
m (→‎{{header|Phix}}: syntax coloured)
Line 3,216: Line 3,216:


=={{header|Phix}}==
=={{header|Phix}}==
<lang Phix>constant TBL=split("""
<!--<lang Phix>(phixonline)-->
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
>= 0.00 < 0.06 := 0.10
<span style="color: #008080;">constant</span> <span style="color: #000000;">TBL</span><span style="color: #0000FF;">=</span><span style="color: #7060A8;">split</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"""
>= 0.06 < 0.11 := 0.18
>= 0.11 < 0.16 := 0.26
&gt;= 0.00 &lt; 0.06 := 0.10
>= 0.16 < 0.21 := 0.32
&gt;= 0.06 &lt; 0.11 := 0.18
>= 0.21 < 0.26 := 0.38
&gt;= 0.11 &lt; 0.16 := 0.26
>= 0.26 < 0.31 := 0.44
&gt;= 0.16 &lt; 0.21 := 0.32
>= 0.31 < 0.36 := 0.50
&gt;= 0.21 &lt; 0.26 := 0.38
>= 0.36 < 0.41 := 0.54
&gt;= 0.26 &lt; 0.31 := 0.44
>= 0.41 < 0.46 := 0.58
&gt;= 0.31 &lt; 0.36 := 0.50
>= 0.46 < 0.51 := 0.62
&gt;= 0.36 &lt; 0.41 := 0.54
>= 0.51 < 0.56 := 0.66
&gt;= 0.41 &lt; 0.46 := 0.58
>= 0.56 < 0.61 := 0.70
&gt;= 0.46 &lt; 0.51 := 0.62
>= 0.61 < 0.66 := 0.74
&gt;= 0.51 &lt; 0.56 := 0.66
>= 0.66 < 0.71 := 0.78
&gt;= 0.56 &lt; 0.61 := 0.70
>= 0.71 < 0.76 := 0.82
&gt;= 0.61 &lt; 0.66 := 0.74
>= 0.76 < 0.81 := 0.86
&gt;= 0.66 &lt; 0.71 := 0.78
>= 0.81 < 0.86 := 0.90
&gt;= 0.71 &lt; 0.76 := 0.82
>= 0.86 < 0.91 := 0.94
&gt;= 0.76 &lt; 0.81 := 0.86
>= 0.91 < 0.96 := 0.98
&gt;= 0.81 &lt; 0.86 := 0.90
>= 0.96 < 1.01 := 1.00""",'\n')
&gt;= 0.86 &lt; 0.91 := 0.94
&gt;= 0.91 &lt; 0.96 := 0.98

&gt;= 0.96 &lt; 1.01 := 1.00"""</span><span style="color: #0000FF;">,</span><span style="color: #008000;">'\n'</span><span style="color: #0000FF;">)</span>
sequence limits = {0},
prices = {-1}
<span style="color: #004080;">sequence</span> <span style="color: #000000;">limits</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">0</span><span style="color: #0000FF;">},</span>
atom lt,price
<span style="color: #000000;">prices</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{-</span><span style="color: #000000;">1</span><span style="color: #0000FF;">}</span>
for i=1 to length(TBL) do
<span style="color: #004080;">atom</span> <span style="color: #000000;">pl</span><span style="color: #0000FF;">,</span><span style="color: #000000;">lt</span><span style="color: #0000FF;">,</span><span style="color: #000000;">plt</span><span style="color: #0000FF;">=</span><span style="color: #000000;">0</span><span style="color: #0000FF;">,</span><span style="color: #000000;">price</span>
{{?,lt,price}} = scanf(TBL[i],">= %.2f < %.2f := %.2f")
<span style="color: #008080;">for</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">=</span><span style="color: #000000;">1</span> <span style="color: #008080;">to</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">TBL</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">do</span>
limits = append(limits,lt)
<span style="color: #0000FF;">{</span><span style="color: #000000;">pl</span><span style="color: #0000FF;">,</span><span style="color: #000000;">lt</span><span style="color: #0000FF;">,</span><span style="color: #000000;">price</span><span style="color: #0000FF;">}</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">scanf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">TBL</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">],</span><span style="color: #008000;">"&gt;= %.2f &lt; %.2f := %.2f"</span><span style="color: #0000FF;">)[</span><span style="color: #000000;">1</span><span style="color: #0000FF;">]</span>
prices = append(prices,price)
<span style="color: #7060A8;">assert</span><span style="color: #0000FF;">(</span><span style="color: #000000;">pl</span><span style="color: #0000FF;">==</span><span style="color: #000000;">plt</span><span style="color: #0000FF;">)</span>
end for
<span style="color: #000000;">plt</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">lt</span>

<span style="color: #000000;">limits</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">append</span><span style="color: #0000FF;">(</span><span style="color: #000000;">limits</span><span style="color: #0000FF;">,</span><span style="color: #000000;">lt</span><span style="color: #0000FF;">)</span>
function price_fix(atom p)
<span style="color: #000000;">prices</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">append</span><span style="color: #0000FF;">(</span><span style="color: #000000;">prices</span><span style="color: #0000FF;">,</span><span style="color: #000000;">price</span><span style="color: #0000FF;">)</span>
for i=1 to length(limits) do
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
if p<limits[i] then
return prices[i]
<span style="color: #008080;">function</span> <span style="color: #000000;">price_fix</span><span style="color: #0000FF;">(</span><span style="color: #004080;">atom</span> <span style="color: #000000;">p</span><span style="color: #0000FF;">)</span>
end if
<span style="color: #008080;">for</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">=</span><span style="color: #000000;">1</span> <span style="color: #008080;">to</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">limits</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">do</span>
end for
<span style="color: #008080;">if</span> <span style="color: #000000;">p</span><span style="color: #0000FF;"><</span><span style="color: #000000;">limits</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">]</span> <span style="color: #008080;">then</span>
return -1
<span style="color: #008080;">return</span> <span style="color: #000000;">prices</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">]</span>
end function
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
for i=-1 to 101 do
<span style="color: #008080;">return</span> <span style="color: #0000FF;">-</span><span style="color: #000000;">1</span>
printf(1, "%5.2f %5.2f\n", {i/100,price_fix(i/100)})
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
end for</lang>
<span style="color: #008080;">for</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">=-</span><span style="color: #000000;">1</span> <span style="color: #008080;">to</span> <span style="color: #000000;">101</span> <span style="color: #008080;">do</span>
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"%5.2f %5.2f\n"</span><span style="color: #0000FF;">,</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">i</span><span style="color: #0000FF;">/</span><span style="color: #000000;">100</span><span style="color: #0000FF;">,</span><span style="color: #000000;">price_fix</span><span style="color: #0000FF;">(</span><span style="color: #000000;">i</span><span style="color: #0000FF;">/</span><span style="color: #000000;">100</span><span style="color: #0000FF;">)})</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
<!--</lang>-->


=={{header|Phixmonti}}==
=={{header|Phixmonti}}==