Софтуерно Инженерство
Loading...
+ Нов въпрос
stlevkov avatar stlevkov 9 Точки

Домашно 14 Задача - Конзолен Междувалутен Конвертор - Programming 101 / Simple Calculations

Здравейте,

Искам да попитам , дали условието и проверката на задачата отговарят правилно и да ме насочите , къде мога да бъркам , че цял ден се мъча да реша задачата по правилният начин.

В заданието се иска да има Input:

  • Amaunt
  • Currency Input
  • Currency Output

Написах кода , но Judge ми дава 0/100. Въпреки , че колкото и да го тествам ми дава верният отговор по условието всеки път!

Пуснах debugger-a и видях , че алгоритъма тества само с 1 Input > Amaunt

Не уточнява каква валута в каква да се преобразува , следователно очакваният Output е грешен.

/* Входът e сума за конвертиране + входна валута + изходна валута. Изходът е едно число – преобразуваната сума по посочените по-горе курсове, закръглен до 2 цифри след десетичната точка. */

Може ли някой да ми помогне. Благодаря ви предварително!

TeodorDimitrov89 avatar TeodorDimitrov89 266 Точки

Ако можеш пусни някакъв код в http://pastebin.com/ .

2
stlevkov avatar stlevkov 9 Точки

http://pastebin.com/UF3Udaes

Дори и да махна текстовете , пак не работи. Очевидно бъркам метода за решаване.

1
03/04/2016 18:02:18
TeodorDimitrov89 avatar TeodorDimitrov89 266 Точки

Сега ще я погледна.

Виж в условието ти се иска валутата да е с Големи Букви а ти ги даваш в if-фовете като малки.

Добавих ти коментар в кода:

http://pastebin.com/Wt3ZQe5g

100/100

2
03/04/2016 18:16:47
Ilsten avatar Ilsten 0 Точки

Къде тотално бъркам нещата, че моето решение въобще не ми тръгва?

https://pastebin.com/KgfHauDC

0
The_assassin avatar The_assassin 158 Точки

@Ilsten, Ти сериозно ли....!?

Аз не уча „C#“, но то за всеки е ясно, че имаш несъответващи скоби. Не, че останалият код ти е наред, но първо започни от скобите!

0
stlevkov avatar stlevkov 9 Точки

Благодаря за съвета.

Добавих Tolower()

Магията се случи :D

 

2
bpavlov123bp avatar bpavlov123bp 6 Точки

Ето едно решение и от мен, макар и не много красиво ми дава 100 точки в системата.http://pastebin.com/z38Nm6Bd

1
borislav9212 avatar borislav9212 746 Точки

Здравейте колеги, ето и от мен едно решение http://pastebin.com/rPLi3RVQ

в началото инициализирах две променливи и им задодох стойност - 0.0. Във всички if - else въведох посочените курсове. и наи отдол ги пресметнах, така спестих да пиша навсякъде cw. дано съм бил полезен.

 

 

0
04/04/2016 16:12:43
Ralitsa88 avatar Ralitsa88 3 Точки

Здравейте колеги, 

опитах да реша задачата сама, но започнах да получавам грешки от типа на:

Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object.
   at Currency_Converter.Main()

затова реших да пиша, имам нужда от помощ. Опитах и с вашите решения, но отново не се получава.

Ето и моето решение: http://pastebin.com/pcn08Swe

Предварително благодаря :)

0
Thenis avatar Thenis 233 Точки

Пускаш кода в грешната задача. Трябва да го пуснеш в "Currency Converter". То го пускаш в "USD to BGN"

1
joanapenova avatar joanapenova 1 Точки

Здравей, това е моето решение. Стана малко тромаво и ще съм Ви благодарна, ако някой ми каже как да го поправя :) 

http://pastebin.com/aRzp5aC6

0
borislav9212 avatar borislav9212 746 Точки

Здравей, хубаво е да задаваш по смислени имена на променливите, също така като се работи с пари използвай "decimal", той има най-голяма точност до 28,29 десетични знака и се изпозва за пресмятането на пари. Може да не пишеш във всеки if Console.WriteLine а само най-отдолу. Ето виж как съм го направил

0
Kalo7o avatar Kalo7o 3 Точки

Аз пробвах още по лесен вариант, само че не мога да направя ключа на масива да е стринг и го направих с If-else.

 

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

namespace Currency_Converter
{
    class Program
    {
        static void Main(string[] args)
        {
            double[] numbers = { 1, 1.79549, 1.95583, 2.53405 };
            var currency = double.Parse(Console.ReadLine());
            Console.WriteLine("Choose from what currency do you want to convert 0-BGN, 1-USD, 2-EUR, 3-GBP.");
            var from = int.Parse(Console.ReadLine());
            Console.WriteLine("Choose your currency to convert 0-BGN, 1-USD, 2-EUR, 3-GBP.");
            var to = int.Parse(Console.ReadLine());
            Console.WriteLine(Math.Round(((numbers[from] / numbers[to]) * currency), 2));
        }
    }
}
 

0
joanapenova avatar joanapenova 1 Точки

Супер, мерси, така е доста по-стегнато решението :)

0
iliyamar avatar iliyamar 13 Точки

Здравейте,

Реших, че е по удачно да използвам SWITCH-CASE вместо IF, основно заради читаемостта. Ето и моето решение:

http://pastebin.com/PXD0Z4GU

Въпреки, че "излъгах" успешно системата за 100т. ще бъда благодарен за някои препоръки и коментари.

0
iliyamar avatar iliyamar 13 Точки

Много добро решение! Поздравления!

-1
Yoana_123 avatar Yoana_123 0 Точки

Отлично решение !

0
peshoo avatar peshoo 1 Точки

Ето го и моето решение -  http://pastebin.com/5wwGgL4m

Но проблема е, че нямам зададените стойности за USD към GBP и прочее.. Използвал съм актуалните за 2/1/2017 стойности и Judga разбира се ми дава грешка на точно тях. Някакви идеи?

0
krasi1105 avatar krasi1105 380 Точки

В условието на задачата със сигурност ги пише.

0
Nasko avatar Nasko 2 Точки

Здравейте
Ето едно решение и от мен: (Github) Кликни Тук

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

        double money = double.Parse(Console.ReadLine());
        string currencyIn = Console.ReadLine();
        string currencyOut = Console.ReadLine();

Това което ми дойде като идея е този ред:
        string currencyStr = currencyIn + currencyOut;

И от тук вече "switch" почва да работи с всички възможни комбинации:

switch (currencyStr)
        {
            case "USDBGN":
                Console.WriteLine(Math.Round(usdTobgn, 2) + " " + currencyOut);
                break;
    

И т.н. :)

0
Wark0z03 avatar Wark0z03 0 Точки

Здравейте!

Някой може ли да ми каже защо за да превърнем USD във ЕUR трябва да делим числото на стойността на еврото и после да го умножаваме със стойността на долара?

Благодаря предварително! :)

0
Popov79 avatar Popov79 1 Точки

https://pastebin.com/VfZgKPxS

Това е моето решение , след доста опити :)

0