Стефан обнови решението на 14.10.2016 17:57 (преди около 8 години)
+def convert_between_temperature_units(degrees, input_unit, output_unit)
+ degrees = convert_to_celsius(degrees, input_unit) if input_unit != 'C'
+ output_unit == 'C' ? degrees : convert_from_celsius(degrees, output_unit)
Ъм, а Фаренхайт къде е?
+end
+
+def convert_to_celsius(degrees, input_unit)
+ input_unit == 'K' ? degrees - 273.15 : (degrees + 40) / 1.8 - 40
+end
+
+def convert_from_celsius(degrees, output_unit)
+ output_unit == 'K' ? degrees + 273.15 : (degrees + 40) * 1.8 - 40
+end
+
+def melting_point_of_substance(substance, unit)
+ dic = {
dic
...
Я го напиши както трябва, че някой може да го разчете като нещо различно от dictionary
. Също, това име ми казва, че изобщо не си се замислил как да кръстиш променливата. Да кръстиш нещо на типа му не е добра идея. Кръщавай го на смисъла, на идеята на съдържанието, не на типа.
Още, аз бих изкарал това като константа извън функцията и бих написал стойностите на отделни редове. Така става по-ясно разделянето на данни от логика и ще са по-лесни за сканиране данните.
+ 'water' => 0, 'ethanol' => -114, 'gold' => 1_064,
+ 'silver' => 961.8, 'copper' => 1_085
+ }
+
+ convert_between_temperature_units(dic[substance], 'C', unit)
+end
+
+def boiling_point_of_substance(substance, unit)
+ dic = {
+ 'water' => 100, 'ethanol' => 78.37, 'gold' => 2_700,
+ 'silver' => 2_162, 'copper' => 2_567
+ }
+
+ convert_between_temperature_units(dic[substance], 'C', unit)
+end
Ъм, а Фаренхайт къде е?