Даниела обнови решението на 09.10.2015 11:49 (преди около 9 години)
+def convert_to_bgn(value, currency)
+ e = case currency
+ when :usd
+ 1.7408
+ when :eur
+ 1.9557
+ when :gbp
+ 2.6415
+ when :bgn
+ 1
+ end
+ (value * e).round(2)
+end
+
+def compare_prices(value_1, currency_1, value_2, currency_2)
+ x = convert_to_bgn(value_1, currency_1)
+ y = convert_to_bgn(value_2, currency_2)
+ x <=> y
+end
- Можеш да използваш едноредовата версия на
case
-when x then y
Опитай се да измислиш малко по-добри имена
- Еднобуквени имена като
x
,y
,e
etc рядко са добра идея (освен в математически/физични формули) -
value
почти винаги не значи нищо. Всяка променлива правена някога е някакъв вид value - Предпочитай да използваш думи, цифрите са малко криптични (
first_currency
vscurrency_1
)
За да добиеш представа как да подобриш имената си, просто си задай въпроса "Какво значи тази стойност в контекста на решавания проблем?". Например тук:
-
value
всъщност е цена -
e
- обменен курс -
x
- първата цена в лева