How to resolve the algorithm Price fraction step by step in the Tcl programming language
Published on 12 May 2024 09:40 PM
How to resolve the algorithm Price fraction step by step in the Tcl programming language
Table of Contents
Problem Statement
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:
Let's start with the solution:
Step by Step solution about How to resolve the algorithm Price fraction step by step in the Tcl programming language
Source code in the tcl programming language
# Used once to turn the table into a "nice" form
proc parseTable table {
set map {}
set LINE_RE {^ *>= *([0-9.]+) *< *([0-9.]+) *:= *([0-9.]+) *$}
foreach line [split $table \n] {
if {[string trim $line] eq ""} continue
if {[regexp $LINE_RE $line -> min max target]} {
lappend map $min $max $target
} else {
error "invalid table format: $line"
}
}
return $map
}
# How to apply the "nice" table to a particular value
proc priceFraction {map value} {
foreach {minimum maximum target} $map {
if {$value >= $minimum && $value < $maximum} {return $target}
}
# Failed to map; return the input
return $value
}
# Make the mapping
set inputTable {
>= 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
}
set map [parseTable $inputTable]
# Apply the mapping to some inputs (from the Oz example)
foreach example {.7388727 .8593103 .826687 .3444635 .0491907} {
puts "$example -> [priceFraction $map $example]"
}
You may also check:How to resolve the algorithm Test integerness step by step in the Sidef programming language
You may also check:How to resolve the algorithm Array concatenation step by step in the E programming language
You may also check:How to resolve the algorithm Sequence of primorial primes step by step in the Raku programming language
You may also check:How to resolve the algorithm Display a linear combination step by step in the Wren programming language
You may also check:How to resolve the algorithm HTTP step by step in the Ruby programming language