Loading...
Nikola3132 avatar Nikola3132 6 Точки

Programming Basics with C# -Логически проверки - Конвертор за мерни единици-ПРОБЛЕМ

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

Ето го решението ми  https://pastebin.com/JCNNUZt8

ето го и условието -

Да се напише програма, която преобразува разстояние между следните 8 мерни единици: m, mm, cm, mi, in, km, ft, yd. Използвайте съответствията от таблицата по-долу:
входна единица    изходна единица
1 meter (m)    1000 millimeters (mm)
1 meter (m)    100 centimeters (cm)
1 meter (m)    0.000621371192 miles (mi)
1 meter (m)    39.3700787 inches (in)
1 meter (m)    0.001 kilometers (km)
1 meter (m)    3.2808399 feet (ft)
1 meter (m)    1.0936133 yards (yd)
Входните данни се състоят от три реда, въведени от потребителя:
⦁    Първи ред: число за преобразуване
⦁    Втори ред: входна мерна единица
⦁    Трети ред: изходна мерна единица (за резултата)
Резултатът да се форматира до осмия знак след десетичната запетая.
Примерен вход и изход:
вход    изход        вход    изход        вход    изход
12
km
ft    39370. 07886932         150 mi in    9503999.99393599         450
yd
km    0.41148000
Тествайте решението си в judge системата: https://judge.softuni.bg/Contests/Practice/Index/152#7

0
Programming Basics
veronikaaa86 avatar veronikaaa86 365 Точки
Best Answer

Здравей Nikola3132,

тъй като задачата е от лекцията Логически проверки, мое мнение е да си я направиш с такава, а не с масиви, Dictonary и друго, което не се учи в бейсик, особено ако не ги разбираш. Все пак целта е да си упражните именно проверките и if - else if конструкциите.

Един съвет, когато имаш няколко мерни едниници както в тази задача (подобно и на последната в Прости пресмятания - Междувалутен калкулатор) - приравни си всички мерни единици към една. В случая, в условието ти е дадена и подсказка  в една таблица - 1 Метър на колко е равно, за всяка мерна единица.

Заповядай едно решение, което смятам, че на този етап на обучението е най-оптималното:

https://pastebin.com/k48zkqHA

Хубав и успешен ден :)

0
Nikola3132 avatar Nikola3132 6 Точки

Благодаря, с това ми помогна много,а и моето мнението е също вместо да изразходвам време да търся информация за неща които тъй или иначе ще ги учим , да се упражнявам на това което са ни го предали ! Иначе е хубаво наистина да знаеш нещо в повече -винаги е така :) 

 

 

1
Nikola3132 avatar Nikola3132 6 Точки

Само че не разбрах логиката на това защо  ,,input,,-а се разделя, а ,,output,,-a умножава -

,,Извинявам се ако съм прозвучал дебилно-много начинаещ съм

0
veronikaaa86 avatar veronikaaa86 365 Точки

Няма защо да се извиняваш, не звучиш никак дебилно. Хубаво е че искаш да разбереш логиката :)

 За да намериш например 12 км, колко ft са - Първо изчисляваш 12 км колко метра са = 12 / 0,001 = 12000 метра, след това тези получени метри умножаваме по стойноста за ft, -> 12 000 * 3.2808399, защото 1м = 3.2808399. Получаваме -> 39 370, 07886932

 

0
22/01/2018 15:16:31
TodorovP avatar TodorovP 177 Точки

С логическите проверки ми се струва, че може лесно човек да се обърка. Затова направих друго и кодът е този:

https://pastebin.com/tydBGiBU

който работи. Ако има неясно - питайте.

0
VasilKotsev avatar VasilKotsev 830 Точки

С dictionary е най-хитро според мен, а може и със switch.

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

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            double units_num = double.Parse(Console.ReadLine());
            string current_unit = Console.ReadLine();
            string to_unit = Console.ReadLine();

            Dictionary<string, double>

                units = new Dictionary<string, double>()
                {
                    {"mm", 1000},
                    {"m", 1},
                    {"cm", 100 },
                    {"mi", 0.000621371192},
                    {"in", 39.3700787},
                    {"km", 0.001},
                    {"ft", 3.2808399},
                    {"yd", 1.0936133}

                };

            var conv = (units_num / units[current_unit])* units[to_unit];
            Console.WriteLine("{0:F8} {1}", conv, to_unit);
        }
    }
}

 

0
desislava777 avatar desislava777 165 Точки

Още едно примерно решение https://pastebin.com/fDwi682R дано да е от полза

0
Nikola3132 avatar Nikola3132 6 Точки

мерси!

0
IvoStoichev avatar IvoStoichev 2 Точки

Здравейте хубав и успешен ден

Успехи във всички начинания - Здрави да сте в това студено време

Ето нещо и от мен дано Ви е от полза

Тествано в Judge  wink100/100

https://pastebin.com/1xMzErwv

 

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