Loading...
ioanna.konova avatar ioanna.konova 47 Точки

Задача Training Lab от First Steps in Coding - More Exercises

Добър вечер,

Някой може ли да ми обясни къде имам грашка/и в кода? В конзолата ми се получават посочените входове и изходи, но judge-ът ми дава 20/100.

using System;

namespace TrainingLab
{
    class Program
    {
        static void Main(string[] args)
        {
            int hOfAPiece = 70;
            int wOfAPiece = 120;
            int hOfCorridor = 100;

            double hOfRoom = double.Parse(Console.ReadLine());
            double wOfRoom = double.Parse(Console.ReadLine());

            double wRoomWithoutCorridor = (wOfRoom * 100) - hOfCorridor;
            double wRoomPeices= Math.Round(wRoomWithoutCorridor / hOfAPiece);
            double hRoomPeices = Math.Round((hOfRoom * 100) / wOfAPiece);
            Console.WriteLine((wRoomPeices * hRoomPeices) -3);
        }
    }
}

Предварително много благодаря за помоща!

Тагове:
0
Programming Basics
svephoto avatar svephoto 1191 Точки

Здравей, ioanna.konova,

 

Би ли дала и условието на зaдачката (поставено директно тук като текст) + линк към нея в Judge?

0
ioanna.konova avatar ioanna.konova 47 Точки

Условие:

Учебна зала има правоъгълен размер w на h метра, без колони във вътрешността си. Залата е разделена на две части – лява и дясна, с коридор приблизително по средата. В лявата и в дясната част има редици с бюра. В задната част на залата има голяма входна врата. В предната част на залата има катедра с подиум за преподавателя. Едно работно място заема 70 на 120 cm (маса с размер 70 на 40 cm + място за стол и преминаване с размер 70 на 80 cm). Коридорът е широк поне 100 cm. Изчислено е, че заради входната врата (която е с отвор 160 cm) се губи точно 1 работно място, а заради катедрата (която е с размер 160 на 120 cm) се губят точно 2 работни места. Напишете програма, която въвежда размери на учебната зала и изчислява броя работни места в нея при описаното разположение (вж. фигурата).

Вход

От конзолата се четат 2 числа, по едно на ред: w (дължина в метри) и h (широчина в метри).

Ограничения: 3 ≤ h ≤ w ≤ 100.

Изход

Да се отпечата на конзолата едно цяло число: броят места в учебната зала.

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

Вход

Изход

Чертеж

Обяснения

15

8.9

129

 

Залата е широка 890 cm. От тях 100 cm отиват за коридора в средата. В останалите 790 cm могат да се разположат по 11 бюра на ред (11 * 70 cm = 770 cm + 20 cm остатък).

Залата е дълга 1500 cm. В тях могат да бъдат разположени 12 реда (12 * 120 cm = 1440 + 60 cm остатък).

Брой места = 12 * 11 - 3 =  132 - 3 = 129 (имаме 12 реда по 11 места = 132 минус 3 места за катедра и входна врата).

8.4

5.2

39

 

Залата е широка 520 cm. От тях 100 cm отиват за коридора в средата. В останалите 420 cm могат да се разположат по 6 бюра на ред (6 * 70 cm = 420 cm, без остатък).

Залата е дълга 840 cm. В тях могат да бъдат разположени 7 реда (7 * 120 cm = 840, без остатък).

Брой места = 7 * 6 - 3 =  42 - 3 = 39 (имаме 7 реда по 6 места = 42 минус 3 места за катедра и входна врата).

0
ioanna.konova avatar ioanna.konova 47 Точки

Линк - https://judge.softuni.bg/Contests/Practice/Index/1642#4

0
ioanna.konova avatar ioanna.konova 47 Точки

Открих проблема - смених Math.Round() с Math.Floor() и ми даде 100/100, но защо? В условието на задачата не пише изрично, че трябва да се закръгли надолу.

1
svephoto avatar svephoto 1191 Точки

Току-що и аз точно това установих и щях да ти го напиша, но ти вече сама си стигнала до правилното решение - браво! laugh Обърни внимание, че в условието не е изрично посочено също и закръгляне до най-близкото цяло число (Math.Round), а просто "Да се отпечата на конзолата едно цяло число: броят места в учебната зала.". Когато използваш Math.Floor винаги закръгляш само до цяло число надолу (както и ти самата посочваш), като така премахваш остатъка след десетичната запетая, който в даден случай може да е и 0,999, но това пак не е достатъчно за 1 цяло работно място, а за 0,999 от него. А ако използваш Math.Round знаеш, че при такъв случай (или при всеки друг случай >= 0,5) ще закръглиш нагоре до единица и ще получиш още едно работно място, което обаче няма да е коректен резултат.

2
07/07/2021 14:45:52
ioanna.konova avatar ioanna.konova 47 Точки

Мнооого благодаря за подробното и отлично обяснение!!! :))

1
svephoto avatar svephoto 1191 Точки

Моля-моля, радвам се да помогна. Успех желая! yes laugh

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