Решение на Първа задача от Боряна Манолова

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

Към профила на Боряна Манолова

Резултати

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

Код

def convert_to_bgn(price, currency)
if currency == :usd
(price * 1.7408).round(2)
elsif currency == :eur
(price * 1.9557).round(2)
elsif currency == :gbp
(price * 2.6415).round(2)
else
price
end
end
def compare_prices(price, currency, second_price, second_price_currency)
first_result = convert_to_bgn(price, currency)
second_result = convert_to_bgn(second_price, second_price_currency)
if first_result < second_result
- 1
elsif first_result == second_result
0
else
1
end
end

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

........

Finished in 0.00633 seconds
8 examples, 0 failures

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

Боряна обнови решението на 10.10.2015 14:29 (преди около 9 години)

+def convert_to_bgn(price, currency)
+ if currency == :usd
+ (price * 1.7408).round(2)
+ elsif currency == :eur
+ (price * 1.9557).round(2)
+ elsif currency == :gbp
+ (price * 2.6415).round(2)
+ else
+ price
+ end
+end
+
+def compare_prices(price, currency, second_price, second_price_currency)
+ first_result = convert_to_bgn(price, currency)
+ second_result = convert_to_bgn(second_price, second_price_currency)
+ if first_result < second_result
+ - 1
+ elsif first_result == second_result
+ 0
+ else
+ 1
+ end
+end

Здравей :)

Няколко бързи коментара:

  • Помисли дали няма да е по-добре ако използваш case ... when ...? Не сме ви го показвали, така че е напълно пожелателно.
  • В момента имаш доста дублиране на (price * ...).round(2). Подсещам, че всичко е израз и връща резултат - дори if и case. Този резултат може да бъде присвоен на променлива.
  • if-а за сравнението в compare_prices не ти трябва и ще е много по-прегледно без него. Прочети за оператора <=>.
  • Има някаква асиметрия в currency и second_price_currency. Също между price и second_price. Предлагам first_price, first_currency, second_price и second_currency. Как ти се струва?

Напомням, че все още имаш възможност да подобриш кода и да ни изпратиш ново решение :) И ако не си съгласна с някой от коментарите сподели, за да го дискутираме. :)