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

Simple Calculations - USD to BGN - проблем

Колеги дава ми (Грешка при компилация)

Ето и кода на задачата: 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace BGN_to_EUR_Converter
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Calculate();
        }

        private void numericUpDown1_ValueChanged(object sender, EventArgs e)
        {
            Calculate();
        }

        private void Calculate()
        {
            var ammountBGN = numericUpDown1.Value;
            var ammountEUR = Math.Round((ammountBGN * 1.95583m), 2);
            var result = string.Format("{0} BGN = {1} EUR", ammountBGN, ammountEUR);
            labelResult.Text = result;  
        }    

        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void label3_Click(object sender, EventArgs e)
        {
            
        }
    }
}
 

Тагове:
jivako000 avatar jivako000 295 Точки
Best Answer

Здравей! Ще ти обясня как да си направиш задачата! 

Това е кода:

using System;

    class Program
    {
        static void Main(string[] args)
        {
            double USD = double.Parse(Console.ReadLine());
            double BGN = 1.79549 * USD;
            Math.Round(BGN, 2);
            Console.WriteLine(BGN);
        }
    }

Инициализираш 2 променливи, като първата (USD) е входа, който се въвежда от потребителя, а във втората се умножава числото, което е въвел потребителя със съответния валутен курс (1.79549). Чрез Math.Round закръгляш до 2 знака след десетичната запетая и накрая печаташ резултата! 

Успех!smiley

0
AleksandarGanchev avatar AleksandarGanchev 25 Точки

Мерси за отговора!

Само че мен ме домързя да пиша цял ред и затова слях печатането на резултата заедно със закръглянето до 2 знака laugh , т.е:

 

using System;

    class Program
    {
        static void Main(string[] args)
        {
            double USD = double.Parse(Console.ReadLine());
            double BGN = 1.79549 * USD;
            Console.WriteLine(Math.Round(BGN, 2));
        }
    }

0
jivako000 avatar jivako000 295 Точки

Разбира се! На всеки както му е удобно! 

0
vancho avatar vancho 430 Точки

Нямаш 

static void Main(string[] args)

{

}

 

а и нещо този код въобще не е валиден, извикваш някакви методи, ама и не ги викаш даже правилно....

 

ето това работи:

using System;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            var ammountBGN = 20.0m;
            var ammountEUR = Math.Round((ammountBGN * 1.95583m), 2);
            var result = string.Format("{0} BGN = {1} EUR", ammountBGN, ammountEUR);
            Console.WriteLine(result);
        }
    }
}

-1
05/09/2016 17:43:13
Nasko_M avatar Nasko_M 0 Точки

Този код също не работи.

0
vancho avatar vancho 430 Точки

Работи, ето отговора: 20.0 BGN = 39.12 EUR копнат от резултата!

-1
Nasko_M avatar Nasko_M 0 Точки

В Judge показва грешка:

The number of numbers in the user output is greater than the expected output.

Очакван изход:35.91 

Твоят изход:

20.0
39.12

0
DimitarKarev avatar DimitarKarev 86 Точки

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

1
05/09/2016 18:39:12
Nasko_M avatar Nasko_M 0 Точки

Благодаря ви, колеги! jivako000 твоето решение проработи.

0
Nasko_M avatar Nasko_M 0 Точки

Разбира се!

0
jivako000 avatar jivako000 295 Точки

Благодаря ти! Ако срещаш други трудности, или имаш някакви въпроси, можеш да ме попиташ и на лично съобщение във Facebook (оставил съм линк към профила си)! 

Успех!smiley

0
puffed avatar puffed 289 Точки

Здравей,

Тук си правил задачата, която е приложение на Windows Forms. Тези не се качват в Judge системата, поне не за този курс. Те са само за упражнение. Решенията, които колегите са ти показали, са решения за конзолно приложение и да, работят, но за конзола.

0
07/09/2016 00:07:43
Nasko_M avatar Nasko_M 0 Точки

Благодаря за отговорите! Разбрах, че това е приложение за Windows Forms и не се качва в Judge стистемата. :)

0
Leprikona avatar Leprikona 107 Точки

Защо си усложняваш толкова живота с такъв код? Просто трябва да вкараш от конзолата едно число:

var number = decimal.Parse(Console.ReadLine()); (decimal винаги се използва за пресмятания с валути, защото дава много по-точен резултат от double, който ти закръгля резултата само до второто число след запетайката);

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

За да получиш резултат, който да е до 2 цифри след запетаята може да го преобразуваш като го изпишеш

с един Placeholder: {0:f2}, където f2 означава, че числото ще бъде закръглено до втория знак -

това е същото като формата "{0:0.00}", просто буквата "f" ти улеснява живота, защото ако трябва да е закръглено до 100 - я символ е по-лесно да напишеш {0:f100}, отколкото да броиш 100 нули след десетичната запетайка.

0
Stradjazz avatar Stradjazz 27 Точки

Това е Application Form, те са обяснени стъпка по стъпка в задачите, защото са само за забавление и са графични, не се тестват в Judge. Трябва точно както е описано да се сложат кодовете за съответните функции.

0
15/09/2016 19:20:10