There are quite a number of temperature scales. For this task we will concentrate on four of the perhaps best-known ones:
Kelvin, Celsius, Fahrenheit, and Rankine.

The Celsius and Kelvin scales have the same magnitude, but different null points.

 0 degrees Celsius corresponds to 273.15 kelvin.
 0 kelvin is absolute zero.
The Fahrenheit and Rankine scales also have the same magnitude, but different null points.

 0 degrees Fahrenheit corresponds to 459.67 degrees Rankine.
 0 degrees Rankine is absolute zero.
The Celsius/Kelvin and Fahrenheit/Rankine scales have a ratio of 5 : 9.



Task
Write code that accepts a value of kelvin, converts it to values of the three other scales, and prints the result.



Example

K  21.00

C  -252.15

F  -421.87

R  37.80



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
 