Loading...
daniel.nikov926 avatar daniel.nikov926 18 Точки

Задача 14 от втората лекция.

Здравейте, пиша относно качването на упражненията в Judge.

Написах задача 14 от втората лекция, пуснах я и видях, че работи успешно, но след като я качих в Judge, той ми даде 0/100.

Моля помагайте:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

class SwitchTest
{
    static void Main()
    {
        Console.WriteLine("Choose Valute: BGN, USD, EUR, GBP.");
        Console.Write("Please enter your valute: ");
        string str = Console.ReadLine();
        Console.Write("Please enter value: ");
        var bgn = double.Parse(Console.ReadLine());
        switch (str)
        {
            case "usd":
            case "USD":
                var usd = bgn * 1.79549;
                Console.WriteLine("{0} BGN are {1} USD", bgn, Math.Round(usd));
                break;
            case "eur":
            case "EUR":
                var eur = bgn * 1.95583;
                Console.WriteLine("{0} BGN are {1} EUR", bgn, Math.Round(eur));
                break;
            case "gbp":
            case "GBP":
                var gbp = bgn * 2.53405;
                Console.WriteLine("{0} BGN are {1} GBP", bgn, Math.Round(gbp));
                break;
            default:
                Console.WriteLine("Invalid selection. Please select BGN, USD, EUR or GBP.");
                break;
        }
        Console.WriteLine("Thank you that you choose us.");
    }
}

Тагове:
0
Programming Basics
KostadinKotevski avatar KostadinKotevski 24 Точки
Best Answer

Здравей,

виждам че има най-добър отговор тази тема. Но все пак реших да покажа и моето решение на всичките колеги.

То е написано доста репетативно, което е 'тъпо'  признавам но за сега така мога да го напиша. 

using System;
namespace Currency_Converter
{
    class CurrencyConverter
    {
        static void Main(string[] args)
        {
            var amount = double.Parse(Console.ReadLine());
            var currencyFrom = Console.ReadLine();
            var currencyTo = Console.ReadLine();
            if (currencyFrom == "BGN" && currencyTo == "USD") Console.WriteLine(Math.Round((amount / 1.79549), 2));
            if (currencyFrom == "BGN" && currencyTo == "EUR") Console.WriteLine(Math.Round((amount / 1.95583), 2));
            if (currencyFrom == "BGN" && currencyTo == "GBP") Console.WriteLine(Math.Round((amount / 2.53405), 2));
            if (currencyFrom == "USD" && currencyTo == "BGN") Console.WriteLine(Math.Round((amount * 1.79549), 2));
            if (currencyFrom == "USD" && currencyTo == "EUR") Console.WriteLine(Math.Round(((amount * 1.79549) / 1.95583), 2));
            if (currencyFrom == "USD" && currencyTo == "GBP") Console.WriteLine(Math.Round(((amount * 1.79549) / 2.53405), 2));
            if (currencyFrom == "EUR" && currencyTo == "USD") Console.WriteLine(Math.Round(((amount * 1.95583) / 1.79549), 2));
            if (currencyFrom == "EUR" && currencyTo == "BGN") Console.WriteLine(Math.Round((amount * 1.95583), 2));
            if (currencyFrom == "EUR" && currencyTo == "GBP") Console.WriteLine(Math.Round(((amount * 1.95583) / 2.53405), 2));
            if (currencyFrom == "GBP" && currencyTo == "USD") Console.WriteLine(Math.Round(((amount * 2.53405) / 1.79549), 2));
            if (currencyFrom == "GBP" && currencyTo == "EUR") Console.WriteLine(Math.Round(((amount * 2.53405) / 1.95583), 2));
            if (currencyFrom == "GBP" && currencyTo == "BGN") Console.WriteLine(Math.Round((amount * 2.53405), 2));
        }
    }
}

Надявам се да съм помогнал на някого! 

Поздрави,Костадин

0
Pilgrimage avatar Pilgrimage 515 Точки

Последователността на въвежданите данни не е както е зададено в условието :
1. Сума;

2. Изходна валута;

3. Крайна валута.

Грешките, които дава Джъджа са от несъответствие на входните типове.

0
daniel.nikov926 avatar daniel.nikov926 18 Точки

в този случей с if{}else ли ще трябва да го направя ?

0
Pilgrimage avatar Pilgrimage 515 Точки

Ако преместиш

"        var bgn = double.Parse(Console.ReadLine());"

така, че да стане първи ред, т.е. преди

"Console.WriteLine("Choose Valute: BGN, USD, EUR, GBP.");"

програмата тръгва, но дава много погрешни данни.

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

след като си пуснеш решението в Джъдж, натисни бутона "Details" срещу каченото решение и ще видиш (в общият случай) какво очаква съдията и какво му подава програмата ти.

Успех! :-)

0
Pilgrimage avatar Pilgrimage 515 Точки

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

А не само в BGN.

Нормално е да минеш през BGN като междинна валута, но това е половината решение. След това трябва да го преизчислиш в желаната от клиента валута. А за да знаеш каква е тя, ще трябва да я въведеш с още един Console.ReadLine().

1
04/09/2016 14:31:29
Housey avatar Housey Trainer 129 Точки

Условието е да се превръща една своеволно избрана валута в друга, т.е. USD -> BGN, USD -> EUR и т.н.

 

Относно решението: опитай първо да прехвърлиш каквото ти е дадено в условието в левове (например както в първия пример - USD) и после да го превърнеш от левове в желаната валута, понеже имаш курса на лев към другите валути, но нямаш на другите.

0
04/09/2016 14:31:00
Vasilev07 avatar Vasilev07 0 Точки

Здравейте и аз направих задчата с малко повече условни опрерации и ми дава грешка ин input 150.35 USD EUR и получвам 80/100, някой може ли да помогне малко. А ето го и решението : http://pastebin.com/FNZ4Gr6g

0
04/09/2016 20:19:42
Housey avatar Housey Trainer 129 Точки

Здравей. На 66-ти ред просто смени местата на курсовете и изкарваш 100/100:

 

{...}
result = valueOfCurrency * 1.79549D / 1.95583D;
{...}

 

0
04/09/2016 20:39:22
Martotko avatar Martotko 88 Точки

Аз съм я решавал по този начин: http://pastebin.com/WNaX3brL

0
DimitarKarev avatar DimitarKarev 87 Точки

           Mоето решение на задачата:

            var value = double.Parse(Console.ReadLine());
            var input = Console.ReadLine().ToUpper();
            var output = Console.ReadLine().ToUpper();
                 if (input == "USD") value *= 1.79549;
            else if (input == "EUR" ) value *= 1.95583;
            else if (input == "GBP" ) value *= 2.53405;
            
                 if (output == "USD") value /= 1.79549;
            else if (output == "EUR") value /= 1.95583;
            else if (output == "GBP") value /= 2.53405;
            
            Console.WriteLine(Math.Round(value, 2) + " " + output);

1
stanchev1 avatar stanchev1 122 Точки

Отвори детайлите и погледни,най-вероятно джъджа не приема редовете Console.Write в този случай и ще трябва да ги махнеш.

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