Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

Yani81 avatar Yani81 0 Точки

Currency Converter

Като го тествам в Judge ми дава грешка а VS дава резултат както е в описанието. 12.35 EUR = 9.53 GBR


        static void Main(string[] args)
        {
            double money = double.Parse(Console.ReadLine());
            string firstCurrency = Console.ReadLine();
            string secondCurrency = Console.ReadLine();
            double USD = 1.79549;
            double EUR = 1.95583;
            double GBR = 2.53405;

            double total = 0;

            if (firstCurrency == "BGN")
            {
                total = money;

                if (secondCurrency == "USD")
                {
                    total = money / USD;
                }
                else if (secondCurrency == "GBP")
                {
                    total = money / GBR;
                }
                else if (secondCurrency == "EUR")
                {
                    total = money / EUR;
                }
            }
            else if (firstCurrency == "USD")
            {
                total = money;

                if (secondCurrency == "BGN")
                {
                    total = money * USD;
                }
                else if (secondCurrency == "EUR")
                {
                    total = money*USD/ EUR;
                }
                else if (secondCurrency == "GBR")
                {
                    total = money*USD/ GBR;
                }
            }
            else if (firstCurrency == "EUR")
            {
                total = money;

                if (secondCurrency == "BGN")
                {
                    total = money * EUR;
                }
                else if (secondCurrency == "USD")
                {
                    total = money*EUR/ USD;
                }
                else if (secondCurrency == "GBR")
                {
                    total = money*EUR/ GBR;
                }
            }
            else if (firstCurrency == "GBR")
            {
                total = money;

                if (secondCurrency == "BGN")
                {
                    total = money * GBR;
                }
                else if (secondCurrency == "USD")
                {
                    total = money*GBR/ USD;
                }
                else if (secondCurrency == "EUR")
                {
                    total = money*GBR/ EUR;
                }
            }

            Console.WriteLine($"{total:F2} {secondCurrency}");
        }
    }
}
 

Тагове:
0
Programming Basics with C#
D.Dimov_96 avatar D.Dimov_96 74 Точки

Здравей Yani81,

Твоето решение е добро, но предполагам, че многото if-else са объркващи.

Прелагам ти решение с switch-case.

Първо - правим константите от които се нуждаем.

const double usd = 1.79549;
const double eur = 1.95583;
const double gbp = 2.53405;

Второ - четем входните данни.

double money = double.Parse(Console.ReadLine());
string firstCurrency = Console.ReadLine();
string secondCurrency = Console.ReadLine();

Трето - превръщаме всички влути в една. В този случай, български лев. Ако валутата е български лев, няма да я конвертираме на тази стъпка.

switch (firstCurrency)
{
    case "USD": money = money * usd; break;
    case "EUR": money = money * eur; break;
    case "GBP": money = money * gbp; break;
}

Четвърто - превръщаме българските левове в посочената втора валута.

switch (secondCurrency)
{
    case "USD": money = money / usd; break;
    case "EUR": money = money / eur; break;
    case "GBP": money = money / gbp; break;
}

Пето - принтираме резултата.

Console.WriteLine($"{money:F2} {secondCurrency}");

Нека да обърнем внимание на нещо важно. В тази задача има само 4 валути (BGN, USD, EUR, GBR), но можеха да са повече.

Подобни задачи за конвертиране на валити се решават, като се превърне в една базова валута. След това, от базовата валута се изчислява търсената.

Решаването с if-else е добро, но ако имахме повече валути, щеше да е по-добре да използваме switch-case.

Пълното решение дава 100/100 в judge.softuni.bg, можеш да го видиш на този линк https://github.com/DimovDimo/Software-University-SoftUni/blob/master/Forum/Currency%20Converter%202018-10-16/Forum%20Currency%20Converter/Forum%20Currency%20Converter/Currency%20Converter.cs

Надявам се, че решението и обяснението ще са ти полезни.

С уважение,

Димо Димов

студент в softuni.bg

0
Yani81 avatar Yani81 0 Точки

Благодаря на всички за помоща.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.