Христина обнови решението на 11.10.2016 00:39 (преди около 8 години)
+def convert_between_temperature_units(degrees, input_unit, output_unit)
+ return degrees if input_unit == output_unit
+
+ case input_unit
+ when 'K'
+ answer = degrees - 273.15 if output_unit == 'C'
+ answer = (degrees * 1.8) - 459.67 if output_unit == 'F'
+ when 'C'
+ answer = degrees + 273.15 if output_unit == 'K'
+ answer = (degrees * 1.8) + 32 if output_unit == 'F'
+ when 'F'
+ answer = (degrees - 32) * 1.8 if output_unit == 'C'
+ answer = (degrees + 459.67) * 0.55555555555 if output_unit == 'K'
+ end
+ answer
+end
+
+MELTNG_POINTS = {
+ 'water' => 0, 'ethanol' => -114, 'gold' => 1064,
+ 'silver' => 961.8, 'copper' => 1085
+}
+
+BOILING_POINS = {
+ 'water' => 100, 'ethanol' => 78.37, 'gold' => 2700,
+ 'silver' => 2162, 'copper' => 2567
+}
+
+def melting_point_of_substance(substance, unit)
+ convert_between_temperature_units(MELTNG_POINTS[substance], 'C', unit)
+end
+
+def boiling_point_of_substance(substance, unit)
+ convert_between_temperature_units(BOILING_POINS[substance], 'C', unit)
+end
Супер :)
Единственото нещо, което леко не ми допада е подредбата - можеш спокойно да ги сложиш всяко на отделен ред. Така ще е по-лесно за сканиране кое е дефинирано.