Loading...
yGaByGa avatar yGaByGa 21 Точки

Основи на програмирането (Домашно 25.06.2016) Проблеми

Здравейте ,

Имам нужда от малко помощ и акъл :)

Реших си задачата за конвертора на мерни единици но имам малък проблем и не разбирам защо се получава така . Когато дифинирам var in = 39.3700787; in  ми го подчертава като грешка и не ми бачка програмата . Преименувах го на inch и всичко заспа и върви , но judge системата реши че трябва да ми е гадно и тя подава мерна едимица in . За това тя ми режи 18 точки . Някои може ли да сподели защо ми го дава като грешка или какво трябва да допиша за да дефенирам че това е променлива ?

 

using System;

namespace _08.Convert
{
    class Program
    {
        static void Main(string[] args)
        {
            var value = double.Parse(Console.ReadLine());
            var input = Console.ReadLine();
            // Enter m , mm , cm , mi , inch , km , ft , yd 
            var output = Console.ReadLine();
            // Enter m , mm , cm , mi , inch , km , ft , yd

            var meter = 1;
            var mm = 1000;
            var cm = 100;
            var mi = 0.000621371192;
            var inch = 39.3700787;
            var km = 0.001;
            var ft = 3.2808399;
            var yd = 1.0936133;

            switch (input)
            {
                case "m":
                    break;
                case "mm":
                    value = value / mm;
                    break;
                case "cm":
                    value = value / cm;
                    break;
                case "mi":
                    value = value / mi;
                    break;
                case "inch":
                    value = value / inch;
                    break;
                case "km":
                    value = value / km;
                    break;
                case "ft":
                    value = value / ft;
                    break;
                case "yd":
                    value = value / yd;
                    break;
                default:
                    break;
            }
            switch (output)
            {
                case "m":
                    break;
                case "mm":
                    value = value * mm;
                    break;
                case "cm":
                    value = value * cm;
                    break;
                case "mi":
                    value = value * mi;
                    break;
                case "inch":
                    value = value * inch;
                    break;
                case "km":
                    value = value * km;
                    break;
                case "ft":
                    value = value * ft;
                    break;
                case "yd":
                    value = value * yd;
                    break;
                default:
                    break;
                
            }
            Console.WriteLine(value + " " + output);
        }
    }
}
 

0
Programming Basics
aastefanov avatar aastefanov 5 Точки

При променлива с име in, кодът ти се чупи, защото е запазена дума.

Нямаш никакъв проблем да оставиш променливата inch, но все пак да използваш case "in".

0
yGaByGa avatar yGaByGa 21 Точки

Здравей ,

Тоест когато използвам in , трябва да го слагам в двойни кавички "in" ? Така ли се прави ?

Може ли да споделиш как е правилно да се запише ?

0
aastefanov avatar aastefanov 5 Точки

Оставяш променливата като var inch, а в switch конструкцията пишеш нещо от рода на:

case "in":
    value = value / inch;

 

0
yGaByGa avatar yGaByGa 21 Точки

Благодаря много , получи се 100/100 :) 

0
Tanina80 avatar Tanina80 11 Точки

Важното е да напишеш case "in" за да знае, че при въведени символи - in - от клавиатурата трябва да извърши примерно value = value / inch. Т.е. грешиш в горните редове на тези които си болд-нал. А декларирането на всички тези "променливи", които не се променят, а са си направо константи, на мен лично ми се струва малко излишно в случая, и е все тая там дали даваш име на константата inch, inc, inh ..

0
Plamen27 avatar Plamen27 599 Точки

Ако искаш може и да използваш служебното име за in за променливата ето така:

        var @in = 39.3700787;

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