12. Currency Converter Моето решение и Вашите Идей!?!
Условие на задачката е:
моето решение с If else:https://pastebin.com/VdcsmShD
Доста дълго и разтегливо ,интересува ме нещо по сбито дайте вашите идей?!?
Условие на задачката е:
моето решение с If else:https://pastebin.com/VdcsmShD
Доста дълго и разтегливо ,интересува ме нещо по сбито дайте вашите идей?!?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _12.Currency_Converter
{
class Program
{
static void Main(string[] args)
{
double USD = 1.79549;
double EUR = 1.95583;
double GBP = 2.53405;
double sum = double.Parse(Console.ReadLine());
string currecy1 = Console.ReadLine();
string currency2 = Console.ReadLine();
if (currecy1 == "BGN")
{
if (currency2 == "USD")
{
Console.WriteLine("{0:f2} USD", sum / USD);
}
else if (currency2 == "EUR")
{
Console.WriteLine("{0:f2} EUR", sum / EUR);
}
else if (currency2 == "GBP")
{
Console.WriteLine("{0:f2} GBP", sum / GBP);
}
}
if (currecy1 == "USD")
{
sum = sum * USD;
if (currency2 == "BGN")
{
Console.WriteLine("{0:f2} BGN", sum);
}
else if (currency2 == "EUR")
{
Console.WriteLine("{0:f2} EUR", sum / EUR);
}
else if (currency2 == "GBP")
{
Console.WriteLine("{0:f2} GBP", sum / GBP);
}
}
if (currecy1 == "EUR")
{
sum = sum * EUR;
if (currency2 == "BGN")
{
Console.WriteLine("{0:f2} BGN", sum);
}
else if (currency2 == "USD")
{
Console.WriteLine("{0:f2} USD", sum / USD);
}
else if (currency2 == "GBP")
{
Console.WriteLine("{0:f2} GBP", sum / GBP);
}
}
if (currecy1 == "GBP")
{
sum = sum * GBP;
if (currency2 == "BGN")
{
Console.WriteLine("{0:f2} BGN", sum);
}
else if (currency2 == "EUR")
{
Console.WriteLine("{0:f2} EUR", sum / EUR);
}
else if (currency2 == "USD")
{
Console.WriteLine("{0:f2} USD", sum / USD);
}
}
}
}
}
То и моето е доста дълго.
Малко по-кратко решение от периода, в който всяка променлива беше var.
https://pastebin.com/UXxW3brC Моето е със switch-case.
Кратък вариант - с два switch case - са прочиташ входната и изходна валута в отделна променлива пазиш стойността - при входната валута умножаваш, а при изходната разделящ получната стойност на желаната валута. Принтираш, форматираш, като извеждаш стринга на изходната валута.
Заради вроден мързел се разрових за по- рационално решение и открих доста елегантен начин за решаване на задачата на няколко реда. Доколкото знам няма да се изучава в нашия курс. Потърсете информация за Dictionary<TKey, TValue> Class.
https://pastebin.com/fRvm9cfk
С проверки, просто входната валута я преобразувам в бг, и след това я преобразувам в изходна
Ами то и моето не е много елегантно, но все пак да го споделя :) Аз реших да си въведа коефициентите като стринг и след това да ги обръщам с Parse в числови стойности. Иначе решението на @AlexTasev наистина ми харесва най-много.