Решение на Първа задача - температура и химични елементи от Николина Гюрова

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

Към профила на Николина Гюрова

Резултати

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

Код

def convert
{
'C' => {
'K' => -> (t) { t + 273.15 },
'F' => -> (t) { (t * 9 / 5.0) + 32 },
},
'K' => {
'C' => -> (t) { t - 273.15 },
'F' => -> (t) { (t - 273.15) * 9 / 5.0 + 32 },
},
'F' => {
'K' => -> (t) { (t - 32) * 5 / 9.0 + 273.15 },
'C' => -> (t) { (t - 32) * 5 / 9.0 },
},
}
end
def substance_temperatures
{
'water' => [0, 100],
'ethanol' => [-114, 78.37],
'gold' => [1064, 2700],
'silver' => [961.8, 2162],
'copper' => [1085, 2567],
}
end
def convert_between_temperature_units(temp, from, to)
if from == to
temp
else
convert[from][to].call temp
end
end
def melting_point_of_substance(substance, unit)
convert_between_temperature_units(substance_temperatures[substance][0], 'C', unit)
end
def boiling_point_of_substance(substance, unit)
convert_between_temperature_units(substance_temperatures[substance][1], 'C', unit)
end

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

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

Finished in 0.00959 seconds
17 examples, 0 failures

История (1 версия и 0 коментара)

Николина обнови решението на 17.10.2016 15:54 (преди около 8 години)

+def convert
+ {
+ 'C' => {
+ 'K' => -> (t) { t + 273.15 },
+ 'F' => -> (t) { (t * 9 / 5.0) + 32 },
+ },
+ 'K' => {
+ 'C' => -> (t) { t - 273.15 },
+ 'F' => -> (t) { (t - 273.15) * 9 / 5.0 + 32 },
+ },
+ 'F' => {
+ 'K' => -> (t) { (t - 32) * 5 / 9.0 + 273.15 },
+ 'C' => -> (t) { (t - 32) * 5 / 9.0 },
+ },
+ }
+end
+
+def substance_temperatures
+ {
+ 'water' => [0, 100],
+ 'ethanol' => [-114, 78.37],
+ 'gold' => [1064, 2700],
+ 'silver' => [961.8, 2162],
+ 'copper' => [1085, 2567],
+ }
+end
+
+def convert_between_temperature_units(temp, from, to)
+ if from == to
+ temp
+ else
+ convert[from][to].call temp
+ end
+end
+
+def melting_point_of_substance(substance, unit)
+ convert_between_temperature_units(substance_temperatures[substance][0], 'C', unit)
+end
+
+def boiling_point_of_substance(substance, unit)
+ convert_between_temperature_units(substance_temperatures[substance][1], 'C', unit)
+end