Решение на Първа задача от Мартин Симеонов

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

Към профила на Мартин Симеонов

Резултати

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

Код

def convert_to_bgn(price, currency)
price *= 1.7408 if currency == :usd
price *= 1.9557 if currency == :eur
price *= 2.6415 if currency == :gbp
price.round(2)
end
def compare_prices(price_one, currency_one, price_two, currency_two)
result = convert_to_bgn(price_one, currency_one)
result -= convert_to_bgn(price_two, currency_two)
end

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

........

Finished in 0.00636 seconds
8 examples, 0 failures

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

Мартин обнови решението на 12.10.2015 14:18 (преди около 9 години)

+def convert_to_bgn(price, currency)
+ price *= 1.7408 if currency == :usd
+ price *= 1.9557 if currency == :eur
+ price *= 2.6415 if currency == :gbp
+ price.round(2)
+end
+
+def compare_prices(price_one, currency_one, price_two, currency_two)
+ result = convert_to_bgn(price_one, currency_one)
+ result -= convert_to_bgn(price_two, currency_two)
+end

Решението ти не е лошо, но е неконвенционално. Това структуриране с postfix-ните if-ове ме кара да очаквам, че price ще (може да) се променя многократно. Типичната структура с if-elsif-... или case щеше да е по-добре. Колкото по-малко изненади, толкова по-добре.

result в метода за сравнение е лошо име на променлива. А и присвояването на ред 10 не е нужно, можеше да е само изваждане.