Time for an 2014 update…
This commit is contained in:
parent
372c577f83
commit
09687c4926
2520 changed files with 34227 additions and 7318 deletions
|
|
@ -0,0 +1,17 @@
|
|||
MsgBox, % "Kelvin:`t`t 21.00 K`n"
|
||||
. "Celsius:`t`t" kelvinToCelsius(21) " C`n"
|
||||
. "Fahrenheit:`t" kelvinToFahrenheit(21) " F`n"
|
||||
. "Rankine:`t`t" kelvinToRankine(21) " R`n"
|
||||
|
||||
kelvinToCelsius(k)
|
||||
{
|
||||
return, round(k - 273.15, 2)
|
||||
}
|
||||
kelvinToFahrenheit(k)
|
||||
{
|
||||
return, round(k * 1.8 - 459.67, 2)
|
||||
}
|
||||
kelvinToRankine(k)
|
||||
{
|
||||
return, round(k * 1.8, 2)
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
class Temperature {
|
||||
class Temperature {
|
||||
function : Main(args : String[]) ~ Nil {
|
||||
k := System.IO.Console->ReadString()->ToFloat();
|
||||
c := KelvinToCelsius(k);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,12 @@
|
|||
(scl 2)
|
||||
|
||||
(de convertKelvin (Kelvin)
|
||||
(for X
|
||||
(quote
|
||||
(K . prog)
|
||||
(C (K) (- K 273.15))
|
||||
(F (K) (- (*/ K 1.8 1.0) 459.67))
|
||||
(R (K) (*/ K 1.8 1.0)) )
|
||||
(tab (-3 8)
|
||||
(car X)
|
||||
(format ((cdr X) Kelvin) *Scl) ) ) )
|
||||
|
|
@ -0,0 +1 @@
|
|||
(convertKelvin 21.0)
|
||||
47
Task/Temperature-conversion/Ruby/temperature-conversion-1.rb
Normal file
47
Task/Temperature-conversion/Ruby/temperature-conversion-1.rb
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
module TempConvert
|
||||
|
||||
FROM_TEMP_SCALE_TO_K =
|
||||
{'kelvin' => lambda{|t| t},
|
||||
'celsius' => lambda{|t| t + 273.15},
|
||||
'fahrenheit' => lambda{|t| (t + 459.67) * 5/9.0},
|
||||
'rankine' => lambda{|t| t * 5/9.0},
|
||||
'delisle' => lambda{|t| 373.15 - t * 2/3.0},
|
||||
'newton' => lambda{|t| t * 100/33.0 + 273.15},
|
||||
'reaumur' => lambda{|t| t * 5/4.0 + 273.15},
|
||||
'roemer' => lambda{|t| (t - 7.5) * 40/21.0 + 273.15}}
|
||||
|
||||
TO_TEMP_SCALE_FROM_K =
|
||||
{'kelvin' => lambda{|t| t},
|
||||
'celsius' => lambda{|t| t - 273.15},
|
||||
'fahrenheit' => lambda{|t| t * 9/5.0 - 459.67},
|
||||
'rankine' => lambda{|t| t * 9/5.0},
|
||||
'delisle' => lambda{|t| (373.15 - t) * 3/2.0},
|
||||
'newton' => lambda{|t| (t - 273.15) * 33/100.0},
|
||||
'reaumur' => lambda{|t| (t - 273.15) * 4/5.0},
|
||||
'roemer' => lambda{|t| (t - 273.15) * 21/40.0 + 7.5}}
|
||||
|
||||
SUPPORTED_SCALES = FROM_TEMP_SCALE_TO_K.keys.join('|')
|
||||
|
||||
def self.method_missing(meth, *args, &block)
|
||||
if valid_temperature_conversion?(meth) then
|
||||
convert_temperature(meth, *args)
|
||||
else
|
||||
super
|
||||
end
|
||||
end
|
||||
|
||||
def self.respond_to_missing?(meth, include_private = false)
|
||||
valid_temperature_conversion?(meth) || super
|
||||
end
|
||||
|
||||
def self.valid_temperature_conversion?(meth)
|
||||
!!(meth.to_s =~ /(#{SUPPORTED_SCALES})_to_(#{SUPPORTED_SCALES})/)
|
||||
end
|
||||
|
||||
def self.convert_temperature(meth, temp)
|
||||
from_scale, to_scale = meth.to_s.split("_to_")
|
||||
return temp.to_f if from_scale == to_scale # no kelvin roundtrip
|
||||
TO_TEMP_SCALE_FROM_K[to_scale].call(FROM_TEMP_SCALE_TO_K[from_scale].call(temp)).round(2)
|
||||
end
|
||||
|
||||
end
|
||||
11
Task/Temperature-conversion/Ruby/temperature-conversion-2.rb
Normal file
11
Task/Temperature-conversion/Ruby/temperature-conversion-2.rb
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
TempConvert.kelvin_to_celsius 100 #=> -173.15
|
||||
TempConvert.kelvin_to_fahrenheit 100 #=> -279.67
|
||||
TempConvert.kelvin_to_rankine 100 #=> 180.0
|
||||
TempConvert.kelvin_to_delisle 100 #=> 409.73
|
||||
TempConvert.kelvin_to_newton 100 #=> -57.14
|
||||
TempConvert.kelvin_to_reaumur 100 #=> -138.52
|
||||
TempConvert.kelvin_to_roemer 100 #=> -83.4
|
||||
|
||||
TempConvert.newton_to_celsius 100 #=> 303.03
|
||||
TempConvert.newton_to_fahrenheit 100 #=> 577.45
|
||||
# All 64 combinations possible
|
||||
Loading…
Add table
Add a link
Reference in a new issue