Currency_Converter
Решение на задачата и някакво логично обяснение блягодаря!
Решение на задачата и някакво логично обяснение блягодаря!
Напиши поне от къде е тази задача, ние не можем да гадаем коя задача и за какво е !
Ето моето решение на задачата - https://pastebin.com/rwptX7gZ - използва се if-else, за което можеш да си прочетеш тук - https://java-book.softuni.bg/chapter-03-simple-conditions.html
Дано да ти помогне :)
https://pastebin.com/ch5CG8Gf
Това е, ако става въпрос за C#.
Ето и моето решение :)
https://pastebin.com/2kdezxPa
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace hm5
{
class Program
{
static void Main(string[] args)
{
var num = double.Parse(Console.ReadLine());
var first = Console.ReadLine().ToLower();
var second = Console.ReadLine().ToLower();
if (first == "bgn")
{
if (second == "usd")
{
Console.WriteLine( Math.Round(num * 1.79549, 2));
}
else if (second == "eur")
{
Console.WriteLine( Math.Round(num / 1.95583, 2));
}
else if (second == "gbp")
{
Console.WriteLine( Math.Round(num * 2.53405, 2));
}
}
if (first == "usd")
{
if(second == "bgn")
{
Console.WriteLine(Math.Round(num * 1.79549, 2));
}
else if(second == "eur")
{
Console.WriteLine(Math.Round((num * 1.79549) / 1.95583, 2));
}
else if(second == "gbp")
{
Console.WriteLine(Math.Round((num * 1.79549) / 2.53405, 2));
}
}
if(first == "eur")
{
if(second == "bgn")
{
Console.WriteLine(Math.Round(num * 1.95583, 2));
}
else if(second == "usd")
{
Console.WriteLine(Math.Round((num * 1.95583) / 1.79549, 2));
}
else if(second == "gbp")
{
Console.WriteLine(Math.Round((num * 1.95583) / 2.53405, 2));
}
}
if(first == "gbp")
{
if(second == "bgn")
{
Console.WriteLine(Math.Round(num * 2.53405, 2));
}
else if(second == "usd")
{
Console.WriteLine(Math.Round((num * 2.53405) / 1.79549, 2));
}
else if(second == "eur")
{
Console.WriteLine(Math.Round((num * 2.53405) * 1.95583, 2));
}
}
}
}
}
Това е моето решение 100/100 ми дава в Judge-а, малко по различно е от на останаите.
Като обяснение: В началото въвеждаш входна и изходна променлива (inputCurrency/ outputCurrency),
след това използваш If взимаш входна променлива, която първо нека да е равна на USD и като изход слагаш всяка една друга валута (BGN, EUR, GBP). В всеки IF пишеш формулата чрез коята се изчислява от едната валута към другата (Пример от кода: var dollarsToEUR = (value * 1.79549) / 1.95583; ) и на долния ред закръгляш до втория знак след десетичната запетая (пример: Console.WriteLine(Math.Round(dollarsToEUR, 2)); ). Така правиш от всяка една валута към вкяка останалите (от BNG към EUR, GBP и USD, от EUR към BGN, GBP и USD, и от GBP към BGN, EUR и USD)
Дано поне малко съм помогнала
using System;
class CurrencyConverter
{
static void Main()
{
var value = double.Parse(Console.ReadLine());
var inputCurrency = Console.ReadLine();
var outputCurrency = Console.ReadLine();
if (inputCurrency == "USD" && outputCurrency == "BGN") \\
{
var dollarsToBGN = (value * 1.79549) / 1.0;
Console.WriteLine(Math.Round(dollarsToBGN, 2));
}
if (inputCurrency == "USD" && outputCurrency == "EUR")
{
var dollarsToEUR = (value * 1.79549) / 1.95583;
Console.WriteLine(Math.Round(dollarsToEUR, 2));
}
if (inputCurrency == "USD" && outputCurrency == "GBP")
{
var dollarsToGBP = (value * 1.79549) / 2.53405;
Console.WriteLine(Math.Round(dollarsToGBP, 2));
}
if (inputCurrency == "BGN" && outputCurrency == "USD")
{
var levaToUSD = (value * 1.0) / 1.79549;
Console.WriteLine(Math.Round(levaToUSD, 2));
}
if (inputCurrency == "BGN" && outputCurrency == "EUR")
{
var levaToEUR = (value * 1.0) / 1.95583;
Console.WriteLine(Math.Round(levaToEUR, 2));
}
if (inputCurrency == "BGN" && outputCurrency == "GBP")
{
var levaToGBP = (value * 1.0) / 2.53405;
Console.WriteLine(Math.Round(levaToGBP, 2));
}
if (inputCurrency == "EUR" && outputCurrency == "BGN")
{
var euroToBGN = (value * 1.95583) / 1.0;
Console.WriteLine(Math.Round(euroToBGN, 2));
}
if (inputCurrency == "EUR" && outputCurrency == "USD")
{
var euroToDollars = (value * 1.95583) / 1.79549;
Console.WriteLine(Math.Round(euroToDollars, 2));
}
if (inputCurrency == "EUR" && outputCurrency == "GBP")
{
var euroToGBP = (value * 1.95583) / 2.53405;
Console.WriteLine(Math.Round(euroToGBP, 2));
}
if (inputCurrency == "GBP" && outputCurrency == "BGN")
{
var GBPtoBGN = (value * 2.53405) / 1.0;
Console.WriteLine(Math.Round(GBPtoBGN, 2));
}
if (inputCurrency == "GBP" && outputCurrency == "USD")
{
var GBPtoUSD = (value * 2.53405) / 1.79549;
Console.WriteLine(Math.Round(GBPtoUSD, 2));
}
if (inputCurrency == "GBP" && outputCurrency == "EUR")
{
var GBPtoEUR = (value * 2.53405) / 1.95583;
Console.WriteLine(Math.Round(GBPtoEUR, 2));
}
}
}
var num = double.Parse(Console.ReadLine());
var inc = Console.ReadLine();
var outc = Console.ReadLine();
var sum = 0.0;
if (inc == "BGN" && outc == "EUR")
{
sum = num / 1.95583;
Console.WriteLine(Math.Round(sum, 2) + " EUR");
}
else if (inc == "BGN" && outc == "USD")
{
sum = num / 1.79549;
Console.WriteLine(Math.Round(sum, 2) + " USD");
}
else if (inc == "BGN" && outc == "GBP")
{
sum = num / 2.53403;
Console.WriteLine(Math.Round(sum, 2) + "GBP");
}
if (inc == "USD" && outc == "BGN")
{
sum = num * 1.79549;
Console.WriteLine(Math.Round(sum, 2) + " BGN");
}
else if (inc == "USD" && outc == "EUR")
{
sum = (num * 1.79549) / 1.95583;
Console.WriteLine(Math.Round(sum, 2) + " EUR");
}
else if (inc == "USD" && outc == "GBP")
{
sum = (num * 1.79549) / 2.53403;
Console.WriteLine(Math.Round(sum, 2) + " GBP");
}
if (inc == "EUR" && outc == "BGN")
{
sum = num * 1.95583;
Console.WriteLine(Math.Round(sum, 2) + " BGN");
}
else if (inc == "EUR" && outc == "USD")
{
sum = (num * 1.95583) / 1.79549;
Console.WriteLine(Math.Round(sum, 2) + " USD");
}
else if (inc == "EUR" && outc == "GBP")
{
sum = (num * 1.95583) / 2.53403;
Console.WriteLine(Math.Round(sum, 2) + " GBP");
}
if (inc == "GBP" && outc == "BGN")
{
sum = num * 2.53403;
Console.WriteLine(Math.Round(sum, 2) + " BGN");
}
else if (inc == "GBP" && outc == "USD")
{
sum = (num * 2.53403) / 1.79549;
Console.WriteLine(Math.Round(sum, 2) + " USD");
}
else if (inc == "GBP" && outc == "EUR")
{
sum = (num * 2.53403) / 1.95583;
Console.WriteLine(Math.Round(sum, 2) + " EUR");
}
Това е моето решение без да ползвам цикли
Ето и едно по кратко решение на задачата, което не ви съветвам да го правите, а просто да го видите...
var dataCurrency = new Dictionary<string, decimal>()
{
{ "BGN", 1 },
{ "USD", 1.79549m},
{ "EUR", 1.95583m},
{ "GBP", 2.53405m}
};
Console.WriteLine($"{decimal.Parse(Console.ReadLine()) * (dataCurrency[Console.ReadLine()] / dataCurrency[Console.ReadLine()]):f2}");
в judje минава 100/100
Много добро решение! Аз го направих с switch case, не бях се сетила за dictionary.
Задачата е от курса Programming Basics with C#, тема- прости пресмятания.