39 lines
946 B
Plaintext
39 lines
946 B
Plaintext
kelvin = proc (k: real) returns (real)
|
|
return(k)
|
|
end kelvin
|
|
|
|
celsius = proc (k: real) returns (real)
|
|
return(k - 273.15)
|
|
end celsius
|
|
|
|
rankine = proc (k: real) returns (real)
|
|
return(k * 9./5.)
|
|
end rankine
|
|
|
|
fahrenheit = proc (k: real) returns (real)
|
|
return(rankine(k) - 459.67)
|
|
end fahrenheit
|
|
|
|
conv = struct[letter: char, func: proctype (real) returns (real)]
|
|
|
|
convs = sequence[conv]$[
|
|
conv${letter: 'K', func: kelvin},
|
|
conv${letter: 'C', func: celsius},
|
|
conv${letter: 'F', func: fahrenheit},
|
|
conv${letter: 'R', func: rankine}
|
|
]
|
|
|
|
start_up = proc ()
|
|
pi: stream := stream$primary_input()
|
|
po: stream := stream$primary_output()
|
|
|
|
stream$puts(po, "Enter temperature in Kelvin: ")
|
|
k: real := real$parse(stream$getl(pi))
|
|
|
|
for c: conv in sequence[conv]$elements(convs) do
|
|
stream$putc(po, c.letter)
|
|
stream$puts(po, " ")
|
|
stream$putl(po, f_form(c.func(k), 6, 2))
|
|
end
|
|
end start_up
|