[Haskell-cafe] separate input calculation output
Thomas Engel
thomas.engel1 at gmx.net
Tue Mar 25 04:13:29 EDT 2008
Hello,
I'm new to haskell and want to write a small program for some winder calcucations. I want to input 10-15 values and based on this input
doing some calculations. After this calculations I want to print out the
results.
My problem is: How can I get the input values into the calculations and back
the result to the output.
In an other language I would use global variables for this. So what should I
use in haskell?
An other point is that I want to separate the input from the calculations and
the output.
How can I achieve this with haskell? Modules? Data types?
See some pseudo code below.
inputvalues :: IO()
inputvalues = do hSetBuffering stdout NoBuffering
putStr "Berechnung Bremsgenerator \n\n"
ve <- readNum "Bitte Maschinengeschwindigkeit (m/min) angeben: "
de <- readNum "Bitte Durchmesser der vollen Rolle eingeben (mm): "
dewalze <- readNum "Bitte Durchmesser der Walze eingeben (mm): "
dewand <- readNum "Bitte Wandstaerke der Walze eingeben (mm): "
and so on ..............
readNum :: String -> IO Float
readNum text = do putStrLn text
readLn
-- calculations
nvr :: Float-> Float-> Float
nvr ve de = ve / de /pi *1000
pzugmin :: Float-> Float-> Float->Float
pzugmin ve femin be = 1.666 * ve * femin * be * 0.00000001
pzugmax :: Float-> Float-> Float->Float
pzugmax ve femax be = 1.666 * ve * femax * be * 0.00000001
and so on ..............
outputvalues = do putStr "\n\nErgebnisse Bremsgenerator \n\n"
putStr "Drehzahl leere Trommel: "
putStr(show(round(nvr)))
putStr " U/min \n"
putStr "Drehzahl volle Trommel: "
putStr(show(round(drehbgmax)))
putStr " U/min \n"
and so on ......................
Thanks Thomas
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://www.haskell.org/pipermail/haskell-cafe/attachments/20080325/f356e92a/attachment.bin
More information about the Haskell-Cafe
mailing list