Решение на Първа задача от Георги Киряков

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

Към профила на Георги Киряков

Резултати

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

Код

CURRENCY_RATE = {usd: 1.7408, eur: 1.9557, gbp: 2.6415, bgn: 1}
def convert_to_bgn(value, currency)
rate = CURRENCY_RATE[currency]
(value * rate).round(2)
end
def compare_prices(price_1, currency_1, price_2, currency_2)
convert_to_bgn(price_1, currency_1) - convert_to_bgn(price_2, currency_2)
end

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

........

Finished in 0.00639 seconds
8 examples, 0 failures

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

Георги обнови решението на 08.10.2015 16:55 (преди около 9 години)

+# G.K 81110 07/10/2015
+
+CURRENCY_RATE = {:usd => 1.7408, :eur => 1.9557, :gbp => 2.6415}
+
+def convert_to_bgn(value, currency = :bgn)
+ rate = CURRENCY_RATE.has_key?(currency) ? CURRENCY_RATE[currency] : 1
+ (value * rate).round(2)
+end
+
+def compare_prices(price_1, currency_1, price_2, currency_2)
+ convert_to_bgn(price_1, currency_1) - convert_to_bgn(price_2, currency_2)
+end

Здравей :)

Решението ти е добро. Харесва ми, че си изнесъл CURRENCY_RATE в константа.

Ето малко коментари:

  • Махни коментара на първия ред. Знаем кой си, нали предаваш задачата от профила си в сайта. :)
  • Защо ти е тази проверка в convert_to_bgn? Не може ли просто да сложиш bgn в CURRENCY_RATE? Така логиката ще е по-ясна и ще е една и съща без значение от валутата.
  • Не ти е нужна подразбиращата се стойност за втория аргумент - ние няма да тестваме без да го подадем.
  • Има по-кратък начин да създадеш хеш със символи за ключове: {usd: 1.7408, ...}.

Георги обнови решението на 11.10.2015 03:54 (преди около 9 години)

-# G.K 81110 07/10/2015
+CURRENCY_RATE = {usd: 1.7408, eur: 1.9557, gbp: 2.6415, bgn: 1}
-CURRENCY_RATE = {:usd => 1.7408, :eur => 1.9557, :gbp => 2.6415}
-
-def convert_to_bgn(value, currency = :bgn)
- rate = CURRENCY_RATE.has_key?(currency) ? CURRENCY_RATE[currency] : 1
+def convert_to_bgn(value, currency)
+ rate = CURRENCY_RATE[currency]
(value * rate).round(2)
end
def compare_prices(price_1, currency_1, price_2, currency_2)
convert_to_bgn(price_1, currency_1) - convert_to_bgn(price_2, currency_2)
end