Loading...
Martin999 avatar Martin999 5 Точки

Трябва ми помощ със задача Trade Commissions

Ако някой има идеи как се решава , ще съм ви много благодарен ако споделите :D 

 

Фирма дава следните комисионни на търговците си според града, в който работят и обема на продажбите s:

Град

0 ≤ s ≤ 500

500 < s ≤ 1 000

1 000 < s ≤ 10 000

s > 10 000

Sofia

5%

7%

8%

12%

Varna

4.5%

7.5%

10%

13%

Plovdiv

5.5%

8%

12%

14.5%

Напишете конзолна програма, която чете име на град (стринг) и обем на продажби (десетично число) и изчислява и извежда размера на търговската комисионна според горната таблица. Резултатът да се изведе закръглен с 2 цифри след десетичната точка. При невалиден град или обем на продажбите (отрицателно число) да се отпечата “error”.

1
Programming Basics
stanchev1 avatar stanchev1 122 Точки
Best Answer

Ето едно решение и от мен http://pastebin.com/87gKA9bF

Ако нещо не разбираш питай,но като цяло задачата не е сложна.

0
Martin999 avatar Martin999 5 Точки

Благодаря ти много ! 
Иначе открих че съм допуснал много глупава грешка.

Където ти си написал  Console.WriteLine("{0:f2}", sales * comission); , аз бях написал  Console.WriteLine("{0:f2}", sales ,comission); и не съм бил забелязъл :DD thx пак :Д 

0
stanchev1 avatar stanchev1 122 Точки

За нищо.Да случват се такива грешки и трудно се откриват .

0
jivako000 avatar jivako000 296 Точки

Здравей, това е моето решение! http://pastebin.com/BpFP5bJ1

Въвеждаш града и продажбите от конзолата и задаваш продажбите да са равни на -1! Правиш няколко вложени проверки и изчисляваш комисионната по слединя начин - продажбата * процента от съответната таблица / 100! И накрая закръгляш резултата с Math.Round(result, 2) до 2 знака след десетичната запетая! smiley

Ако не разбираш нещо, не се притеснявай да попиташ! 

0
18/09/2016 14:26:46
Leprikona avatar Leprikona 108 Точки

if ( town == "Sofia" && sales >= 0 || sales <=500)

печалба = продажби - (продажби * комисионна (в случая 5%))

Изписване на конзолата:

Console.WriteLine({0:f2}, печалба)

else (town != "Sofia" || town != "Varna" || town != "Plovdiv")

Console.WriteLine("error")

Това е за София. По тази логика се правят и другите градове, и вече съкращаваш кода, колкото можеш.

0
18/09/2016 16:32:20
AndreyBozhkov avatar AndreyBozhkov 1 Точки

Здравейте,

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

Цялото решение е тук: https://gist.github.com/andreybozhkov/12a14ef7b5b135e2e4f08101591f1b07

Само масивите са тук:

double[] ranges = new double[] { 0, 500, 1000, 10000 };
string[] cities = new string[3] { "sofia", "varna", "plovdiv" };
double[,] percentages = new double[3, 4]
{
    { 0.05, 0.07, 0.08, 0.12 },
    { 0.045, 0.075, 0.10, 0.13 },
    { 0.055, 0.08, 0.12, 0.145 },
};

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

Поне според мен, масивите са доста подходящи за подобни задачи.

0
g.hristiyana avatar g.hristiyana 1 Точки

Здравейте,

Може ли някой да погледне и моето решение на задачата: http://pastebin.com/TWQGJ1ad

Judge ми дава 94% - 1 грешка

input:
Plovdiv
-20

expected output:
"error"

your output:
0

Когато тествам задачата през visual studio и въведа същия input, конзолата ми изписва "error". Т.е всичко е точно. Задала съм първоначална комисионна с 0, в условието на задачата пише -1. Пробвах с двете, но отново ми дава същата грешка. Някой би ли обяснил защо трябва да започнем с -1, защото не ми стана ясно (при другите задачи сме започвали с 0). Благодаря предварително!

0
g.hristiyana avatar g.hristiyana 1 Точки

Благодаря!

0
dremadred avatar dremadred 1 Точки

Не знам защо ако града ти е с малка буква всичко минава и дава съобщение за грешка, може би в тази загадка е отговора.

0
social1986 avatar social1986 2 Точки

Ето го и моето решение

 

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

namespace Trade_Comissions
{
    class Program
    {
        static void Main(string[] args)
        {
            string city = Console.ReadLine();
            double sales = double.Parse(Console.ReadLine());
            double comission = 0;

            if (city == "Sofia")
            {
                if (0 <= sales && sales <= 500)
                {
                    comission = 0.05 * sales;
                }
                else if (500 < sales && sales <= 1000)
                {
                    comission = 0.07 * sales;
                }
                else if (1000 < sales && sales <= 10000)
                {
                    comission = 0.08 * sales;
                }
                else if (sales > 10000)
                {
                    comission = 0.12 * sales;
                }
                else
                {
                    Console.WriteLine("error");
                }

            }

            else if (city == "Varna")
            {
                if (0 <= sales && sales <= 500)
                {
                    comission = 0.045 * sales;
                }
                else if (500 < sales && sales <= 1000)
                {
                    comission = 0.075 * sales;
                }
                else if (1000 < sales && sales <= 10000)
                {
                    comission = 0.1 * sales;
                }
                else if (sales > 10000)
                {
                    comission = 0.13 * sales;
                }
                else
                {
                    Console.WriteLine("error");
                }
            }

            else if (city == "Plovdiv")
            {
                if (0 <= sales && sales <= 500)
                {
                    comission = 0.055 * sales;
                }
                else if (500 < sales && sales <= 1000)
                {
                    comission = 0.08 * sales;
                }
                else if (1000 < sales && sales <= 10000)
                {
                    comission = 0.12 * sales;
                }
                else if (sales > 10000)
                {
                    comission = 0.145 * sales;
                }
                else
                {
                    Console.WriteLine("error");
                }
            }
            else 
            { 
                Console.WriteLine("error");
            }
            Console.WriteLine(comission);
        }
    }
}

0
social1986 avatar social1986 2 Точки

Забравих да попитам :) Какво точно трябва да напиша накрая, за да ми го закръгли до втория знак. При опит с Math.Round нещо не се получава ... 

0
e.manolov avatar e.manolov 80 Точки

Math.Round няма да ти закръгли това, което се иска. Например ако имаш 2.5, няма да ти го направи на 2.50. Използвай плейсхолдър като: {0:F2}. 

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