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

 

Тагове:
0
Programming Basics
yassen298 avatar yassen298 26 Точки

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

0
boykopk avatar boykopk 147 Точки

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

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

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

1
boykopk avatar boykopk 147 Точки

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