Loading...

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

NonaG avatar NonaG 111 Точки

Помощ за задача TradeComission

Скоро тази задача е обсъдена тук във форума, разгледах решенията, но ми се искаше да пробвам switch за първи път. И понеже не мога да разбера къде бъркам, моля за помощ. Решението ми: http://pastebin.com/Ev3a5DGe / за първи път ползвам PASTEBIN, дано всичко да е наред/.

Имам два проблема - 1. дефолтът не работи; 2. програмката не взема стойностите на comission, зададени в if-овете при различните случаи. Защо? И не мога да разбера кога да ползвам if и кога else if?

Тагове:
0
Programming Basics
e.manolov avatar e.manolov 80 Точки

Кодът ти е изтрит, от линка :)

0
NonaG avatar NonaG 111 Точки

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

TradeComissions - Pastebin.com

Отварям го и всичко си е там. Какво трябва да направя?

0
NonaG avatar NonaG 111 Точки

Добре, с риск някой да ми се скара:

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

namespace TradeComissions
{
    class Program
    {
        static void Main(string[] args)
        {
            string town = Console.ReadLine().ToLower();
            var sales = double.Parse(Console.ReadLine());
            var commission = 0.0;
            switch (town)
            {
                case "Sofia":

                    if (0 <= sales && sales <= 500)
                    { commission = 0.05; }
                    if (500 < sales && sales <= 1000)
                    { commission = 0.07; }
                    if (1000 < sales && sales <= 10000)
                    { commission = 0.08; }
                    if (sales > 10000)
                    { commission = 0.12; }
                    break;
                case "Varna":

                    if (0 <= sales && sales <= 500)
                    { commission = 0.045; }
                    if (500 < sales && sales <= 1000)
                    { commission = 0.075; }
                    if (1000 < sales && sales <= 10000)
                    { commission = 0.1; }
                    if (sales > 10000)
                    {commission = 0.13;}
                    break;
                case "Plovdiv":

                    if (0 <= sales && sales <= 500)
                    { commission = 0.055; }
                    if (500 < sales && sales <= 1000)
                    { commission = 0.08; }
                    if (1000 < sales && sales <= 10000)
                    { commission = 0.12; }
                    if (sales > 10000)
                    { commission = 0.145; }
                    break;
            default:
                    Console.WriteLine("error");
            }
            Console.WriteLine("{0:f2}", commission * sales);
                    }

        public static int sales { get; set; }
    }
}

 

0
Simeonov96 avatar Simeonov96 0 Точки

Това, което забелязвам веднага е, че defaul case-а ти няма break;. Другият проблем е използването на .ToLower след ReadLine-а и това, че всеки case е написан с първа главна буква вместо само с малки. Не съм пускал програмата във Visual Studio, това са грешките, които виждам само от текста. Извинявам се ако съм пропуснал нещо.

0
koksibg avatar koksibg 892 Точки

Default-а ти трябва да стане така:

 default:

{
     if (commission <=0)

     {

           Console.WriteLine("error");

            break;

     }

}

public static int sales { get; set; } - това не ти трябва.

и е добре да ползваш в case-овете - в случая else if..

if (0 <= sales && sales <= 500)
    { commission = 0.05; }

else if (500 < sales && sales <= 1000)

Което означава - проверка в проверката - вложен if.

0
19/11/2016 22:45:53
koksibg avatar koksibg 892 Точки

 И да колегата е прав трябва градовете във всички case - ове да бъдат с малки букви, защото ти изрично указваш, че програмата ти по-натам ще работи само с малки букви - това прави ToLower() - обръща стринга в малки букви - в Lower Case.

И като си ги написала първата с голяма, а другите с малки - няма да ти се изпилнят case-овете.

Редактирах си горния пост - трябва да бъде -така както съм го редактирал, а в бързината написах sales.

 

0
NonaG avatar NonaG 111 Точки

Благодаря Ви, момчета! Вече всичко е наред.

Това "public static int sales { get; set; }" програмката сама ми го добави, понеже в началото на кода вместо "sales" бях декларирала само променлива " s"  и после трябваше да променя навсякъде в if-овете името й. Само че беше много писане и маркирах едно "s", после следвах някакви инструкции и ми замени навсякъде името на променливата. И   този ред се добави сам най-отдолу, а аз реших, че няма да го пипам, докато не даде грешка в Джъдж :)

 

 

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