Решение на Първа задача - температура и химични елементи от Калоян Евтимов

Обратно към всички решения

Към профила на Калоян Евтимов

Резултати

  • 6 точки от тестове
  • 0 бонус точки
  • 6 точки общо
  • 17 успешни тест(а)
  • 0 неуспешни тест(а)

Код

FORMULAS = {
'CF' => ->(degrees) { (1.8 * degrees) + 32 },
'FC' => -> (degrees) { (degrees - 32) / 1.8 },
'CK' => -> (degrees) { degrees + 273.15 },
'KC' => -> (degrees) { degrees - 273.15 },
'KF' => -> (degrees) { FORMULAS['CF'].call(degrees - 273.15) },
'FK' => -> (degrees) { (degrees - 32) / 1.8 + 273.15 },
'CC' => -> (degrees) { degrees },
'KK' => -> (degrees) { degrees },
'FF' => -> (degrees) { degrees }
TEMPERATURES = {
'water' => [0, 100],
'ethanol' => [-114, 78.37],
'gold' => [1064, 2700],
'silver' => [961.8, 2162],
'copper' => [1085, 2567]
def convert_between_temperature_units(input_degrees, input_unit, output_unit)
FORMULAS[input_unit + output_unit].call(input_degrees).round(2)
end
def melting_point_of_substance(substance, output_unit)
FORMULAS['C' + output_unit].call(TEMPERATURES[substance][0])
end
def boiling_point_of_substance(substance, output_unit)
FORMULAS['C' + output_unit].call(TEMPERATURES[substance][1])
end

Лог от изпълнението

.................

Finished in 0.00782 seconds
17 examples, 0 failures

История (2 версии и 3 коментара)

Калоян обнови решението на 16.10.2016 14:51 (преди над 7 години)

+FORMULAS = {
+ 'CF' => ->(degrees) { return (1.8 * degrees) + 32 },
+ 'FC' => -> (degrees) { return (degrees - 32) / 1.8 },
+ 'CK' => -> (degrees) { return degrees + 273.15 },
+ 'KC' => -> (degrees) { return degrees - 273.15 },
+ 'KF' => -> (degrees) { return FORMULAS['CF'].call(degrees - 273.15) },
+ 'FK' => -> (degrees) { return (degrees - 32) / 1.8 + 273.15 },
+ 'CC' => -> (degrees) { return degrees },
+ 'KK' => -> (degrees) { return degrees },
+ 'FF' => -> (degrees) { return degrees }
+TEMPERATURES = {
+ 'water' => [0, 100],
+ 'ethanol' => [-114, 78.37],
+ 'gold' => [1064, 2700],
+ 'silver' => [961.8, 2162],
+ 'copper' => [1085, 2567]
+def convert_between_temperature_units(input_degrees, input_unit, output_unit)
+ FORMULAS[input_unit + output_unit].call(input_degrees).round(2)
+end
+
+def melting_point_of_substance(substance, output_unit)
+ FORMULAS['C' + output_unit].call(TEMPERATURES[substance][0])
+end
+
+def boiling_point_of_substance(substance, output_unit)
+ FORMULAS['C' + output_unit].call(TEMPERATURES[substance][1])
+end

Калоян обнови решението на 17.10.2016 11:43 (преди над 7 години)

FORMULAS = {
- 'CF' => ->(degrees) { return (1.8 * degrees) + 32 },
- 'FC' => -> (degrees) { return (degrees - 32) / 1.8 },
- 'CK' => -> (degrees) { return degrees + 273.15 },
- 'KC' => -> (degrees) { return degrees - 273.15 },
- 'KF' => -> (degrees) { return FORMULAS['CF'].call(degrees - 273.15) },
- 'FK' => -> (degrees) { return (degrees - 32) / 1.8 + 273.15 },
- 'CC' => -> (degrees) { return degrees },
- 'KK' => -> (degrees) { return degrees },
- 'FF' => -> (degrees) { return degrees }
+ 'CF' => ->(degrees) { (1.8 * degrees) + 32 },
+ 'FC' => -> (degrees) { (degrees - 32) / 1.8 },
+ 'CK' => -> (degrees) { degrees + 273.15 },
+ 'KC' => -> (degrees) { degrees - 273.15 },
+ 'KF' => -> (degrees) { FORMULAS['CF'].call(degrees - 273.15) },
+ 'FK' => -> (degrees) { (degrees - 32) / 1.8 + 273.15 },
+ 'CC' => -> (degrees) { degrees },
+ 'KK' => -> (degrees) { degrees },
+ 'FF' => -> (degrees) { degrees }
}.freeze
+
TEMPERATURES = {
'water' => [0, 100],
'ethanol' => [-114, 78.37],
'gold' => [1064, 2700],
'silver' => [961.8, 2162],
'copper' => [1085, 2567]
}.freeze
+
def convert_between_temperature_units(input_degrees, input_unit, output_unit)
FORMULAS[input_unit + output_unit].call(input_degrees).round(2)
end
def melting_point_of_substance(substance, output_unit)
FORMULAS['C' + output_unit].call(TEMPERATURES[substance][0])
end
def boiling_point_of_substance(substance, output_unit)
FORMULAS['C' + output_unit].call(TEMPERATURES[substance][1])
end