Loading...

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

SvetoslavPetsev avatar SvetoslavPetsev 100 Точки

07. House Painting - площ покрив

Здравейте,

При решаване на задачата 07. House Painting от Simple Operations and Calculations - More Exercises, получавам разминаване в изходният резултат при площта на покрива (т.е. червена боя).

Разминаването се получава от площта на страничните скатове - правоъгълниците.

Използвам питагоровата теорема, като използвам метода Math.Sqrt /за коренуване/. Идеята ми е да намеря хипотенузата в правоъгълен триъгълник, защото тя се явява едната страна в правоъгълниците /страничните части на покрива/:

Прилагам кода:

using System;

namespace _07._House_Painting
{
    class Program
    {
        static void Main(string[] args)
        {
            //входни данни
            double houseHeight = double.Parse(Console.ReadLine());
            double houseLengthWallSide = double.Parse(Console.ReadLine());
            double houseHightRoof = double.Parse(Console.ReadLine());
            
            //площ на предна и задна стена
            double areaHouseFrontWall = houseHeight * houseHeight - 1.2 * 2.0;
            double areaHouseBackWall = houseHeight * houseHeight;
            
            //площ на странични стени
            double areaHauseSideWall = houseLengthWallSide * houseHeight - 1.5 * 1.5;
            double allWalls = areaHauseSideWall * 2.0 + areaHouseBackWall + areaHouseFrontWall;
            double housePanit = allWalls / 3.4;
            
            //площ на покрив; изчисляване-хипотенуза
            double areaRoofFront = houseHeight * houseHightRoof / 2.0;
            double halfLengthFront = houseHeight / 2.0;
            double sideRoofLength = Math.Sqrt(halfLengthFront * halfLengthFront + houseHightRoof * houseHightRoof);
            double areaRoofSide = sideRoofLength * houseLengthWallSide;
            double allRoof = areaRoofFront * 2.0 + areaRoofSide * 2.0;
            double roofPaint = allRoof / 4.3;

            //печат
            Console.WriteLine($"{housePanit:f2}");
            Console.WriteLine($"{roofPaint:f2}");
        }
    }
}

От къде идва разминаването в изход-а?

Благодаря!

Тагове:
0
Programming Basics with C#
xpainkillerx avatar xpainkillerx 14 Точки

Виж този код: Дава 100/100

https://pastebin.com/QLkvJXjp

 

За страничните триъгълници на покрива ползваш формулата за лице на триъгъкник S =  (а*ha)/2

Тоест (страната на триъгълника * височината към нея ) / 2

0
08/09/2019 17:50:39
SvetoslavPetsev avatar SvetoslavPetsev 100 Точки

Благодаря!

Да, за триъгълните части от покрива е ясно :

 double areaRoofFront = houseHeight * houseHightRoof / 2.0;

, където houseHeight = х /основата/

Въпроса е за страничните части на покрива, които всъщност са правоъгълници, като едната страна се явява фактически бедро на равностранен триъгълник....а иначе направих 100/100 още преди да задам въпроса, като умножих височината на покрива по дължината на къщата, ама дали е правилно???

Благодаря!

0
xpainkillerx avatar xpainkillerx 14 Точки

Покривът има следните размери:

  • Два правоъгълника със страни „x“ и „y“
  • Два равностранни триъгълника със страна „x“ и височина „h“

 

За правоъгълника ползваш формулата

S = х*у , не ти е необходимо нищо друго. Х и У ги имаш от входа (първите ти две променливи)

1
SvetoslavPetsev avatar SvetoslavPetsev 100 Точки

Благодаря!

Да, в бързината малко съм пропуснал, че триъгълника е равностранен :). Доста глупаво от моя страна :)

Приех го за равнобедрен, с което си усложних леко задачата :)

Всичко е точно! Благодаря!

 

Моля модераторите да изтрият темата :)

0
georgiblazhev avatar georgiblazhev 3 Точки

Здравейте,

 

Простете за въпроса, но откъде се намират тези задачи, тъй като не ги видях?

 

Благодаря.

0
SvetoslavPetsev avatar SvetoslavPetsev 100 Точки

Привет,

Намират се в сайта на SoftUni Judge, като от началната страница се избере:

>> Programming Basics >> PB - Bonus Exercises >> после си избираш раздела /в случая е Simple Operations and Calculations/ - More Exercises/. Към избраният раздел има условия на задачите.

Успех!

0
13/09/2019 16:27:19
silenzio avatar silenzio 56 Точки

Здравей,

Незнам защо изчисляваш хипотенуза. На покрива имаш 2 триъгълника, които си изчислил и два правоъгълника.

 

 

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