Temperature conversion: Difference between revisions

Content added Content deleted
(Added solution for Action!)
Line 185: Line 185:
-421.87000 degrees Fahrenheit
-421.87000 degrees Fahrenheit
37.80000 degrees Rankine
37.80000 degrees Rankine
</pre>

=={{header|Action!}}==
{{libheader|Action! Tool Kit}}
<lang Action!>INCLUDE "D2:REAL.ACT" ;from the Action! Tool Kit

PROC K2C(REAL POINTER k,c)
REAL tmp

ValR("273.15",tmp)
RealSub(k,tmp,c)
RETURN

PROC K2F(REAL POINTER k,f)
REAL tmp1,tmp2,tmp3

ValR("1.8",tmp1)
ValR("459.67",tmp2)
RealMult(k,tmp1,tmp3)
RealSub(tmp3,tmp2,f)
RETURN

PROC K2R(REAL POINTER k,f)
REAL tmp

ValR("1.8",tmp)
RealMult(k,tmp,f)
RETURN

PROC Test(CHAR ARRAY text REAL POINTER k)
REAL res

PrintE(text)
Print(" Kelvin: ") PrintRE(k)

K2C(k,res)
Print(" Celsius: ") PrintRE(res)

K2F(k,res)
Print(" Fahrenheit: ") PrintRE(res)

K2R(k,res)
Print(" Rankine: ") PrintRE(res)

PutE()
RETURN

PROC Main()
REAL k
Put(125) PutE() ;clear screen

ValR("0",k) Test("Absolute zero",k)
ValR("273.15",k) Test("Ice melts",k)
ValR("373.15",k) Test("Water boils",k)
RETURN
</lang>
{{out}}
[https://gitlab.com/amarok8bit/action-rosetta-code/-/raw/master/images/Temperature_conversion.png Screenshot from Atari 8-bit computer]
<pre>
Absolute zero
Kelvin: 0
Celsius: -273.15
Fahrenheit: -459.67
Rankine: 0

Ice melts
Kelvin: 273.15
Celsius: 0
Fahrenheit: 32
Rankine: 491.67

Water boils
Kelvin: 373.15
Celsius: 100
Fahrenheit: 212
Rankine: 671.67
</pre>
</pre>