Loading...
chefache avatar chefache 0 Точки

Задача "Пясъчник" от кандидат-студентският изпит от 07.01.2018

Здравейте може ли малко помощ, немога да разбера, къде бъркам.

Не ми излиза същият изход както от заданието.

Заданието на задачата тук;


       

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

namespace Минали_изпити
{
    class Program
    {
        static void Main(string[] args)
        {
            double sandBoxWide = double.Parse(Console.ReadLine());
            double sandBoxLong = double.Parse(Console.ReadLine());
            double woodPice = double.Parse(Console.ReadLine());
            double priceKgSand = double.Parse(Console.ReadLine());

            var sandBoxPerim = (sandBoxLong * sandBoxWide);
            var pureSandBox = (sandBoxWide - (0.2 + 0.2)) * (sandBoxLong - (0.2 + 0.2));
            var woodAreaNeeded = (sandBoxPerim - pureSandBox);

            var SandNeeded = (pureSandBox * 20);
            var WoodNeeded = (woodAreaNeeded / (2.2 * 0.2));
            

            var sandPrice = (SandNeeded * priceKgSand);
            var woodPrice = (woodAreaNeeded * woodPice);

            var TotalExpenses = (sandPrice + woodPice);
            Console.WriteLine("{0:f2}",TotalExpenses);
    
        }
    }
}
 

Тагове:
0
Programming Basics
TodorovP avatar TodorovP 177 Точки

Доколкото виждам от условието поредността е следната:

На първи ред а широчината на площадката в метри - реално число в интервала [1.0 … 100000.00]

•    На втори ред bдължина на площадката в метри - реално число в интервала [1.0 … 100000.00]

  • На четвърти ред цената на eдин килограм пясък - реално число в интервала [0 ... 10000.0

•    На трети ред цена на една дъска - реално число в интервала [0 ... 10000.0]

а при теб виждам:

double sandBoxWide = double.Parse(Console.ReadLine());
            double sandBoxLong = double.Parse(Console.ReadLine());
            double woodPice = double.Parse(Console.ReadLine());
            double priceKgSand = double.Parse(Console.ReadLine());

Трета и четвърта  входни данни май са разменени.

0
chefache avatar chefache 0 Точки

Аз мисля, че независимо че по условие (физически )се намира на 3тия ред , там пише че на четвъртият ред е "цена за кг." пясък.

Както и да е де, и по този начин не излиза резултата smiley ...

0
TodorovP avatar TodorovP 177 Точки

Дори и в твоите тестове да въвеждаш данните №№ 1, 2, 4, 3 от дадените примери с условието, то в Judge няма да мине, защото там поредността е №№ 1, 2, 3, 4. Но не е само това. Виж другите коментари.

0
TodorovP avatar TodorovP 177 Точки

И още нещо. Твоят код е:

var SandNeeded = (pureSandBox * 20);
var WoodNeeded = (woodAreaNeeded / (2.2 * 0.2));

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

var SandNeeded = Math.Ceiling(pureSandBox * 20));
var WoodNeeded = Math.Ceiling((woodAreaNeeded / (2.2 * 0.2)));

0
TodorovP avatar TodorovP 177 Точки

С този израз

сvar WoodNeeded = Math.Ceiling((woodAreaNeeded / (2.2 * 0.2)));

е изчислява необходимиет брой дъски, а никъде не се използва по-надолу. Това трябва да е в

var woodPrice = (woodAreaNeeded * woodPice);, т.е. да стане

var woodPrice = (WoodNeeded * woodPice);

0
chefache avatar chefache 0 Точки

Много благодаря за бързият отговор, сега ще поразгледам грешките си yes

 

0
chefache avatar chefache 0 Точки

Благодаря за насоките, справих се yes


            double sandBoxWide = double.Parse(Console.ReadLine());
            double sandBoxLong = double.Parse(Console.ReadLine());
            double priceKgSand = double.Parse(Console.ReadLine());
            double woodPice = double.Parse(Console.ReadLine());
           

            var sandBoxPerim = (sandBoxLong * sandBoxWide);
            var pureSandBox = (sandBoxWide - (0.2 + 0.2)) * (sandBoxLong - (0.2 + 0.2));
            var woodAreaNeeded = (sandBoxPerim - pureSandBox);

            var SandNeeded = Math.Ceiling(pureSandBox * 20);
            var WoodNeeded = Math.Ceiling((woodAreaNeeded / (2.2 * 0.2)));


            var sandPriceTotal = (SandNeeded * priceKgSand);
            var woodPriceTotal = (WoodNeeded * woodPice);

            var TotalExpenses = (sandPriceTotal + woodPriceTotal);
            Console.WriteLine("{0:f2}",TotalExpenses);

0
31/01/2018 11:35:54
ErolIbryam avatar ErolIbryam 6 Точки

ето моето решение:

https://pastebin.com/4Vp5htB6

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