Софтуерно Инженерство
Loading...
+ Нов въпрос
yassen298 avatar yassen298 26 Точки

9. * Ремонт на плочки

Здравейте! Може ли помощ с една задача, в Visual Studio работи, но в Judje дава само 10 точки.

Това е решението ми: https://pastebin.com/R7BcMUvv

Ето я и задачата:

0.* Ремонт на плочки

Първа задача от изпита на 24 април 2016. Тествайте решението си тук.

На площадката пред жилищен блок трябва да се поставят плочки. Площадката е с форма на квадрат със страна N метра. Плочките са широки „W“ метра и дълги „L“ метра. На площадката има една пейка с ширина M метра и дължина O метра. Под нея не е нужно да се слагат плочки. Всяка плочка се поставя за 0.2 минути.

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

Пример: площадка с размер 20м. има площ 400кв.м. Пейка широка 1м. и дълга 2м., заема площ 2кв.м. Една плочка е широка 5м. и дълга 4м. има площ = 20кв.м. Площта която трябва да се покрие е 400 – 2 = 398 кв.м. Необходими са 398 / 20 = 19.90 плочки. Необходимото време е 19.90 * 0.2 = 3.98 минути.

Вход

От конзолата се четат 5 числа, въведени от потребителя:

  • N – дължината на страна от площадката в интервала [1...100]
  • W – широчината на една плочка в интервала [0.1...10.00]
  • L – дължината на една плочка в интервала [0.1...10.00]
  • М – широчината на пейката в интервала [0...10]
  • О – дължината на пейката в интервала [0...10]

Изход

Да се отпечата на конзолата две числа: броят плочки, необходим за ремонта и времето за поставяне, всяко на нов ред. Резултатът да се форматира до втория знак след запетаята.

Примерен вход и изход

Вход

Изход

Обяснения

20

5

4

1

2

19.90

3.98

Обща площ = 20 * 20 = 400; площ на пейката = 1 * 2 = 2

Площ за покриване = 400 – 2 = 398

Площ на плочки = 5 * 4 = 20

Необходими плочки = 398 / 20 = 19.9

Необходимо време = 19.9 * 0.2 = 3.98

40

0.8

0.6

3

5

3302.08

660.42

9.* Ремонт на плочки

Първа задача от изпита на 24 април 2016. Тествайте решението си тук.

На площадката пред жилищен блок трябва да се поставят плочки. Площадката е с форма на квадрат със страна N метра. Плочките са широки „W“ метра и дълги „L“ метра. На площадката има една пейка с ширина M метра и дължина O метра. Под нея не е нужно да се слагат плочки. Всяка плочка се поставя за 0.2 минути.

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

Пример: площадка с размер 20м. има площ 400кв.м. Пейка широка 1м. и дълга 2м., заема площ 2кв.м. Една плочка е широка 5м. и дълга 4м. има площ = 20кв.м. Площта която трябва да се покрие е 400 – 2 = 398 кв.м. Необходими са 398 / 20 = 19.90 плочки. Необходимото време е 19.90 * 0.2 = 3.98 минути.

Вход

От конзолата се четат 5 числа, въведени от потребителя:

  • N – дължината на страна от площадката в интервала [1...100]
  • W – широчината на една плочка в интервала [0.1...10.00]
  • L – дължината на една плочка в интервала [0.1...10.00]
  • М – широчината на пейката в интервала [0...10]
  • О – дължината на пейката в интервала [0...10]

Изход

Да се отпечата на конзолата две числа: броят плочки, необходим за ремонта и времето за поставяне, всяко на нов ред. Резултатът да се форматира до втория знак след запетаята.

Примерен вход и изход

Вход

Изход

Обяснения

20

5

4

1

2

19.90

3.98

Обща площ = 20 * 20 = 400; площ на пейката = 1 * 2 = 2

Площ за покриване = 400 – 2 = 398

Площ на плочки = 5 * 4 = 20

Необходими плочки = 398 / 20 = 19.9

Необходимо време = 19.9 * 0.2 = 3.98

40

0.8

0.6

3

5

3302.08

660.42

 

Тагове:
ad2bg avatar ad2bg 123 Точки

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

0
boykopk avatar boykopk 140 Точки

Здравей,

изпуснал си следното: "Резултатът да се форматира до втория знак след запетаята."

Това става с :F2 или :f2 и няма нужда от Math.Round.

1
yassen298 avatar yassen298 26 Точки

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

0
boykopk avatar boykopk 140 Точки

По този начин се форматира до втория знак след запетаята:

Console.WriteLine(String.Format("{0:F2}", Plochki));
Console.WriteLine(String.Format("{0:F2}", Time));

така дава 50/100. Имаш и някаква друга грешка.

1
boykopk avatar boykopk 140 Точки

Този код дава 100/100

using System;

namespace RemontNaPlochki
{
    class Program
    {
        static void Main(string[] args)
        {
            var N = double.Parse(Console.ReadLine());
            var W = double.Parse(Console.ReadLine());
            var L = double.Parse(Console.ReadLine());
            var M = double.Parse(Console.ReadLine());
            var O = double.Parse(Console.ReadLine());
            var Sploshtadka = N * N;
            var Speika = M * O;
            var Splochka = W * L;
            var Plosht = Sploshtadka - Speika;
            var Plochki = Math.Round((Plosht / Splochka), 2);
            var Time = Math.Round((Plochki * 0.2), 2);
            Console.WriteLine(String.Format("{0:F2}", Plochki));
            Console.WriteLine(String.Format("{0:F2}", Time));
        }
    }
}

 

При вторият нулев тест за Splochka Math.Round ти дава 0, и после делиш на нула, което дава безкрайност.

1
25/11/2017 21:26:39
yassen298 avatar yassen298 26 Точки

Много благодаря, сега вече работи!

0