Основи на програмирането (Домашно 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);
        }
    }
}
 
Здравей ,
Тоест когато използвам in , трябва да го слагам в двойни кавички "in" ? Така ли се прави ?
Може ли да споделиш как е правилно да се запише ?
Оставяш променливата като var inch, а в switch конструкцията пишеш нещо от рода на:
Благодаря много , получи се 100/100 :)
Важното е да напишеш case "in" за да знае, че при въведени символи - in - от клавиатурата трябва да извърши примерно value = value / inch. Т.е. грешиш в горните редове на тези които си болд-нал. А декларирането на всички тези "променливи", които не се променят, а са си направо константи, на мен лично ми се струва малко излишно в случая, и е все тая там дали даваш име на константата inch, inc, inh ..
Ако искаш може и да използваш служебното име за in за променливата ето така:
var @in = 39.3700787;