Loading...
g_todorov avatar g_todorov 106 Точки

2. Квартално магазинче - лекция "По-сложни логически проверки" (Проблем)

Здравейте,

при мен възникна следният проблем свързан с горепосочената задача:

кода който написах работеше вярно, преди да добавя .ToLower() към променливите в началото. След като добавих .ToLower() директно се задейства else и програмката не смята правилно! Проблема в кода ли е или в VS 2015, който използвам - моля помогнете! Предварително Ви благодаря за отделеното време.

Ето и сорс-кода:

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

namespace SmallShop1
{
    class Program
    {
        static void Main(string[] args)
        {
            var product = Console.ReadLine() . ToLower();
            var town = Console.ReadLine() . ToLower();
            var quantity = Double.Parse(Console.ReadLine());

            if (product == "coffee")
            {
                if (town == "Sofia")
                {
                    Console.WriteLine(quantity*0.50);
                }
                else if (town == "Plovdiv")
                {
                    Console.WriteLine(quantity*0.40);
                }
                else
                {
                    Console.WriteLine(quantity*0.45);
                }
            }
            if (product == "water")
            {
                if (town == "Sofia")
                {
                    Console.WriteLine(quantity * 0.80);
                }
                else if (town == "Plovdiv")
                {
                    Console.WriteLine(quantity * 0.70);
                }
                else
                {
                    Console.WriteLine(quantity * 0.70);
                }
            }
            if (product == "beer")
            {
                if (town == "Sofia")
                {
                    Console.WriteLine(quantity * 1.20);
                }
                else if (town == "Plovdiv")
                {
                    Console.WriteLine(quantity * 1.15);
                }
                else
                {
                    Console.WriteLine(quantity * 1.10);
                }
            }
            if (product == "sweets")
            {
                if (town == "Sofia")
                {
                    Console.WriteLine(quantity * 1.45);
                }
                else if (town == "Plovdiv")
                {
                    Console.WriteLine(quantity * 1.30);
                }
                else
                {
                    Console.WriteLine(quantity * 1.35);
                }
            }
            if (product == "peanuts")
            {
                if (town == "Sofia")
                {
                    Console.WriteLine(quantity * 1.60);
                }
                else if (town == "Plovdiv")
                {
                    Console.WriteLine(quantity * 1.50);
                }
                else
                {
                    Console.WriteLine(quantity * 1.55);
                }
            }
        }
    }
}

 

Тагове:
0
Programming Basics
AtanasNikolov avatar AtanasNikolov 22 Точки

Добавяш .ToLower() - а if конструкциите са ти с Главни букви.

Промени стринговете да са само с малки букви.

Пример( town == "Sofia"), да стане  (town == "sofia") т.н.

0
g_todorov avatar g_todorov 106 Точки

Логичен съвет, за който благодаря, но сега след като промених всички градове да са с малки букви ми изписва 

build error! Важно е да се разбере произхода на тия грешки, за да ги избягваме в бъдеще. Ако не те затруднява тествай 

при теб коригирания ми сорс-код и драсни 1 ред коментар. Мерси предварително.

Ето го и него:

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

namespace SmallShop1
{
    class Program
    {
        static void Main(string[] args)
        {
            var product = Console.ReadLine().ToLower();
            var town = Console.ReadLine().ToLower();
            var quantity = Double.Parse(Console.ReadLine());

            if (product == "coffee")
            {
                if (town == "sofia")
                {
                    Console.WriteLine(quantity*0.50);
                }
                else if (town == "plovdiv")
                {
                    Console.WriteLine(quantity*0.40);
                }
                else
                {
                    Console.WriteLine(quantity*0.45);
                }
            }
            if (product == "water")
            {
                if (town == "sofia")
                {
                    Console.WriteLine(quantity * 0.80);
                }
                else if (town == "plovdiv")
                {
                    Console.WriteLine(quantity * 0.70);
                }
                else
                {
                    Console.WriteLine(quantity * 0.70);
                }
            }
            if (product == "beer")
            {
                if (town == "sofia")
                {
                    Console.WriteLine(quantity * 1.20);
                }
                else if (town == "plovdiv")
                {
                    Console.WriteLine(quantity * 1.15);
                }
                else
                {
                    Console.WriteLine(quantity * 1.10);
                }
            }
            if (product == "sweets")
            {
                if (town == "sofia")
                {
                    Console.WriteLine(quantity * 1.45);
                }
                else if (town == "plovdiv")
                {
                    Console.WriteLine(quantity * 1.30);
                }
                else
                {
                    Console.WriteLine(quantity * 1.35);
                }
            }
            if (product == "peanuts")
            {
                if (town == "sofia")
                {
                    Console.WriteLine(quantity * 1.60);
                }
                else if (town == "plovdiv")
                {
                    Console.WriteLine(quantity * 1.50);
                }
                else
                {
                    Console.WriteLine(quantity * 1.55);
                }
            }
        }
    }
}

0
drunin89 avatar drunin89 14 Точки

Ето моето решение, надявам се да помогне:

http://pastebin.com/KTp8gzv9

0
g_todorov avatar g_todorov 106 Точки

Мерси за отделеното време и внимание!

Със сигурност ще помоге!

0
bMedarski avatar bMedarski 148 Точки

Когато сложиш toLower() всичко което четеш от конзолата го правиш с малки букви.

В if-овете опитваш да сравняваш градовете които са в първа буква - главна.

Направи всички градове само с малки букви

0
g_todorov avatar g_todorov 106 Точки

Много логично си го обяснил, но след като промених всички градове да са с малка в if конструкциите ми дава някакъв build error! 

Може би релииза в VS2015 да ми създава проблеми: Публикувам ти сорс-кода с малките букви корекция и ще те помоля да го тестваш при теб и ако не те затруднява драсни 1 ред коментар.  Ако при теб работи значи нещо в моето VS има проблем. Благодаря предварително!

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

namespace SmallShop1
{
    class Program
    {
        static void Main(string[] args)
        {
            var product = Console.ReadLine().ToLower();
            var town = Console.ReadLine().ToLower();
            var quantity = Double.Parse(Console.ReadLine());

            if (product == "coffee")
            {
                if (town == "sofia")
                {
                    Console.WriteLine(quantity*0.50);
                }
                else if (town == "plovdiv")
                {
                    Console.WriteLine(quantity*0.40);
                }
                else
                {
                    Console.WriteLine(quantity*0.45);
                }
            }
            if (product == "water")
            {
                if (town == "sofia")
                {
                    Console.WriteLine(quantity * 0.80);
                }
                else if (town == "plovdiv")
                {
                    Console.WriteLine(quantity * 0.70);
                }
                else
                {
                    Console.WriteLine(quantity * 0.70);
                }
            }
            if (product == "beer")
            {
                if (town == "sofia")
                {
                    Console.WriteLine(quantity * 1.20);
                }
                else if (town == "plovdiv")
                {
                    Console.WriteLine(quantity * 1.15);
                }
                else
                {
                    Console.WriteLine(quantity * 1.10);
                }
            }
            if (product == "sweets")
            {
                if (town == "sofia")
                {
                    Console.WriteLine(quantity * 1.45);
                }
                else if (town == "plovdiv")
                {
                    Console.WriteLine(quantity * 1.30);
                }
                else
                {
                    Console.WriteLine(quantity * 1.35);
                }
            }
            if (product == "peanuts")
            {
                if (town == "sofia")
                {
                    Console.WriteLine(quantity * 1.60);
                }
                else if (town == "plovdiv")
                {
                    Console.WriteLine(quantity * 1.50);
                }
                else
                {
                    Console.WriteLine(quantity * 1.55);
                }
            }
        }
    }
}
 

0
bMedarski avatar bMedarski 148 Точки

Тествах кода и си работи

 

0
g_todorov avatar g_todorov 106 Точки

Ай - ай - ай!

Проблемът е в моя релииз на VS2015.

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

Много ти благодаря!

Пожелавам на всички ни тук здраве и много мотивация!

0
cvetomirG avatar cvetomirG 132 Точки

http://pastebin.com/kwJMwmPq Ето го и моето решение, понеже драскам на PHP предимно, а там е голямо чудо с ифовете понякога стигаш до 10-12 вложени :D и съм свикнал да си ги редя на един ред, малко по-прегледно е, стига да не се нарушава четимостта.

http://i.imgur.com/BtjZedW.jpg Ето нагледен пример :D за PHP

 

0
08/11/2016 12:09:07
g_todorov avatar g_todorov 106 Точки

Наистина прегледен код си изпипал!

Преди време бях хванал PHP, но се оказа че е стара версия и бях заучил неща които не трябваше. Бях намерил цял проект 

уеб приложения за бази данни с PHP и MySQL, но книжката бе преводна, проекта бе от 2003 и имаше дори грешки в примерите.

Понеже ми бе първи език трудно се ориентирах в синтаксиса, още по-трудно в грешките и стигнах до половината на книгата, но

сега си давам сметка, че програмните езици мн си приличат и мисля, че ще ми е по-лесно ако хвана PHP отново.

Сега се сещам, ако си в някоя фейсбук група по бейсик в програмирането драсни ми и аз да се присъединя към community - то

10x за помощта, успех и мотивация ти пожелавам. 

0
cvetomirG avatar cvetomirG 132 Точки

Аз в скайп писах.

 

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