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}");
}
}
}
От къде идва разминаването в изход-а?
Благодаря!
Благодаря!
Да, за триъгълните части от покрива е ясно :
double areaRoofFront = houseHeight * houseHightRoof / 2.0;
, където houseHeight = х /основата/
Въпроса е за страничните части на покрива, които всъщност са правоъгълници, като едната страна се явява фактически бедро на равностранен триъгълник....а иначе направих 100/100 още преди да задам въпроса, като умножих височината на покрива по дължината на къщата, ама дали е правилно???
Благодаря!
Покривът има следните размери:
За правоъгълника ползваш формулата
S = х*у , не ти е необходимо нищо друго. Х и У ги имаш от входа (първите ти две променливи)
Благодаря!
Да, в бързината малко съм пропуснал, че триъгълника е равностранен :). Доста глупаво от моя страна :)
Приех го за равнобедрен, с което си усложних леко задачата :)
Всичко е точно! Благодаря!
Моля модераторите да изтрият темата :)