Loading...
DRadoslavov avatar DRadoslavov 1 Точки

Въпрос за 11 задача от лекцията прости пресмятания с числа

условието на задачата е следното: Напишете програма, която чете от конзолата страна и височина на триъгълник и пресмята неговото лице. Използвайте формулата за лице на триъгълник: area = a * h / 2. Закръглете резултата до 2 знака след десетичната точка използвайки Math.Round(area, 2).

Аз, не уча в курса, но искам да разбера логиката за решаване на: Math. Round

Написал съм следния код и Visual Studio

            Console.Write(" a=  ");
            var a = Double.Parse(Console.ReadLine());
            Console.Write(" h=  ");
            var h = Double.Parse(Console.ReadLine());
            var area = (a * h / 2);
            Console.WriteLine( area );

С този код решавам задачите но без закръглянето на резултата до 2 знака след десетичната запетая?

Тагове:
0
Programming Fundamentals
borislav9212 avatar borislav9212 745 Точки
Best Answer

Здравей,

На твоя код където си написъл въведи следните входни данни: а = 10.5; h = 15.50 - отговора е 81.375. В задачата се изисква изхода да се закръгли до два знака след десетичната точка. Може да го направиш с Math.Round(area, 2);  Math.Round означава закръгли ми, вътре в скобите въвеждаш името на променливата в твоя случай area, слагаш запетайка и след нея числото което сложиш определя до кой знак ще закръглиш, в случая е до втория. Ето така ще стане твоя код http://pastebin.com/P57akVni

Сега като въведеш същите входни даннни резултатът вече ще е 81.38. Може и по този начин да закръглиш с place holder Console.WriteLine("{0:F2}",area); Това пак дава същия резултат, тук като променяш числото след "F" , казваш след кой знак след десетичната точка да ти закръгли резултата. Ето го нагледно с твоя код http://pastebin.com/9GT2HuxV

Дано съм успял да ти помогна да разбереш как става

Успех занапред!

1
KrasimirPetkov avatar KrasimirPetkov 328 Точки

"Math.Round" и "F" не работят еднакво във всички ситуации. Като се закръгля с "{0:F2}", винаги има 2 числа след десетичната запетая, а при Math.Round, ако числото е цяло или има trailing zeros, това не се получава. Това може да доведе до грешни тестове в Judge.

Пример:

double a = 5.000;

Console.WriteLine(Math.Round( a , 2 ));   // Output: 5

Console.WriteLine($"{a:f2}");    // Output: 5.00

 

1
21/05/2016 22:17:41
stefan.delchev avatar stefan.delchev 49 Точки

Преди да отпечаташ площта трябва да добавиш

area = Math.Round(area, 2);

Math.Round(area, 2) ще върне стойността на променливата area закръглена до втория знак (или някой друг ако промениш стойността на втория параметър).

0
smu4k avatar smu4k 34 Точки

Console.WriteLine($"{area:f2}");

Просто когато опечатваш сложи сложи :f и някаква цифра, която всъщност показва до кой знак да закръглиш, може и да е 5, тогава ще закръглиш до петия

0
Yoana_123 avatar Yoana_123 0 Точки

namespace Triangle_Area
{
    class Program
    {
        static void Main(string[] args)
        {
            var  a = decimal.Parse(Console.ReadLine());
            var  h = decimal.Parse(Console.ReadLine());
            var area = (a * h / 2);
            area = Math.Round(area, 2);
            Console.WriteLine(area);
            Console.Read();
        }
    }

 

 

Това е решението.


}

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