Loading...
WifiAvivi avatar WifiAvivi 151 Точки

Задача 2 - Фирма - Programming Basics Exam - 28 August 2016

Задача 2 - Фирма - Programming Basics Exam - 28 August 2016

Може ли да видя решенията ви?

Часовете трябва да са закръглени към по-ниско цяло число (Например –> 6.98 часа се закръглят на 6 часа).

1
Programming Basics 31/08/2016 22:06:22
koksibg avatar koksibg 892 Точки
Best Answer

Имаше недоразумение в тая задача - по-принцип и  двата изхода беше указано да се закръглят до по-ниско цяло число, но не се получаваше  желания резултат. Едното закръгление трябва да е с  Math.Floor, а другото с Math.Ceiling и тогава се получава желания резултат поне  аз така го направих.

1
31/08/2016 22:31:21
DimitarKarev avatar DimitarKarev 87 Точки

при мен нямаше нужда от такова нещо просто използвах Math.Floor при смятането на общите часове работа и всичко си работеше както трябва

1
DimitarKarev avatar DimitarKarev 87 Точки

това се получава защото първият ти случай е (WorkProgect - Hours) а при втория  (Hours- WorkProgect) тъй като ги обръщаш е нормално Маth.Floor да ти дава грешен резултат трябвало е да вземеш абсолютната стойност на (WorkProgect  - Hours) и тогава щеще да работи с Math.Floor и в двата случая .

1
damyan91 avatar damyan91 91 Точки

Може ли да кажеш кое по-точно не ти е ясно? Ако е само закръглянето, можеш да използваш Math.Floor().

0
31/08/2016 22:21:44
jivako000 avatar jivako000 296 Точки

Здравей, използвах Math.Ceiling за закръглянето и ми изкара 100/100! 

Това е моето решение, взимам го директно от изпита както съм го правил, извинявам се за което! 

http://pastebin.com/EJ0YEi8L smiley

1
ZornitsaSerbezova avatar ZornitsaSerbezova 455 Точки

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

http://pastebin.com/qZMKyVdR

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

1
Xapuu avatar Xapuu 25 Точки

Според мен проблема на всички, които са получили грешен резултат или са използвали Math.Cell(в това число и аз) е в това, че не са обърнали внимание къде точно се извършва закръглянето в задачата.

Ето едно решение и от мен http://pastebin.com/pBk6wDFJ , знам че не дава 100% в judge, но мисля че е логически по-правилно от авторското. 

0
svetlyoek avatar svetlyoek 20 Точки

Добре бе хора,защо прилагаме горе първоначално въведените дни при смятане на извънредния труд при положение,че трябва да създадем нова променлива и да сметнем истинските работни дни-т.е. 90% са работните!?И друго-долу в сметките като получим часовете на фирмата,нали ако са по-малко от необходимите това би означавало,че свършват в срок или аз съм малоумен?А ние сравняваме за Yes ,когато техните часове за повече от необходимото,въведено отначало?Не знам каква логика имам...

0
stanchev89 avatar stanchev89 3 Точки

Най-интересното е,че сума ти хора тук са качили решенията си с претенции,че са правилни, а същите копирани дават грешни резултати. Лично аз пробвах доста свои решения и заради това пробвах какво по-различно са вашите,а те също дадоха грешки. Все пак стигнах до успех и проблемите ми са били следните:
Единия е елементарен - в if-a не трябва само" <" да е знака, а:"<="

Второто нещо,което ме спъваше е смятането на 10%.Аз го извършвах по следния начин:
"a-((a*10)/100)", което си е правилно смятане чисто математически, но явно се губят някакви данни при повечето операции. Вярното стана с "а*0.9"
Ето и моето решение,което дава 100/100:
https://pastebin.com/jnRHUqyy

PS. Също така ми прави впечатление,че почти всички правят друга грешка: Извънредните часове масово ги смятате (работниците*дните от входящите данни*2), а трябва да се умножава по дните с извадени 10%(дните,в които фирмата има възможност да работи).

Поздрави! 
 

0
20/10/2019 10:38:49
tini4ka avatar tini4ka 5 Точки

Може ли условието на задачата?

0
Axiomatik avatar Axiomatik 2422 Точки

Exam has been removed and is now located in https://judge.softuni.bg/Contests/1658/Conditional-Statements-More-Exercises (6. Firm)

Text:

Фирма получава заявка за изработването на проект, за който са необходими определен брой часове. Фирмата разполага с определен брой дни. През 10% от дните служителите са на обучение и не могат да работят по проекта. Един нормален работен ден във фирмата е 8 часа. Всеки служител може да работи по проекта в извънработно време по 2 часа на ден.

Часовете трябва да са закръглени към по-ниско цяло число (Например –> 6.98 часа се закръглят на 6 часа).

Напишете програма, която изчислява дали фирмата може да завърши проекта навреме и колко часа не достигат или остават.

 

Вход

Входът се чете от конзолата и съдържа точно 3 реда:

  • На първия ред са необходимите часовете цяло число в интервала [0 ... 200 000]

  • На втория ред са дните, с които фирмата разполагацяло число в интервала [0 ... 20 000]

  • На третия ред е броят на служителите, работещи извънредноцяло число в интервала [0 ... 200]

 

Изход

Да се отпечата на конзолата един ред:

  • Ако времето е достатъчно:

    • Yes!{оставащите часове} hours left.

  • Ако времето НЕ Е достатъчно:

    • Not enough time!{недостигащите часове} hours needed.

 

Вход

Изход

Обяснения

 

90

7

3

Yes!2 hours left.

За проекта са нужни 90 часа.

Фирмата разполага със 7 дена.

10% от които отиват за обучение, следователно часовете за работа са: 6.3 * 8 = 50.4 часа.

3 служители работят извънредно – 3 * (2 часа за 7 дена) = 42 часа.

Общо часове = 50.4 + 42 = 92.4 часа -> 92 часа > 90

Проектът може да бъде завършен на време и остават 2 часа.

 

Вход

Изход

Вход

Изход

99

3

1

Not enough time!72 hours needed.

50

5

2

Yes!6 hours left.

0
10/12/2020 19:03:00
tini4ka avatar tini4ka 5 Точки

Благодаря! Попаднах на подобна задача и нещо не мога да разбера условието. Можете ли да ми помогнете?

 

Напишете програма, която да пресмята дали фирма може да извърши ремонт на път за определеното от поръчителя времеработни човеко-часове). Броят на работниците във фирмата и дните, които могат да се отделят за поръчката, се четат от конзолата. Приема се, че един работник работи 8 часа на ден. Като резултат програмата трябва да изкара дали работниците са успели да приключат за определеното време и колко часа им остават или ако не им стигнат часоветеколко време не им достига. В случай, че не успеят, се начисляват неустоки. Изчисляват се като броят на допълнителните часове се умножава по броя на дните, които са работили до момента.

Вход

От конзолата се четат 3 реда:

  • Първи ред – необходимите часовецяло число в интервала [1...10000]
  • Втори ред – броят работницицяло число в интервала [1...1000]
  • Трети ред – работните дницяло число в интервала [1...1000]

Изход

На конзолата се отпечатва:

  • Ако времето е стигнало:
    • "{ оставащите часове } hours left"
  • Ако времето не е стигнало:
    • "{ още колко часа трябва да работят } overtime"
    • "Penalties: { неустойките }"
  •  

Необходимите часове-това часовете, които въвежда поръчителя ли са  и за които трябва да се свърши работата или  те са часовете, за които реално ще се свърши работата?

\

Това, което написах:

            int Hours = int.Parse(Console.ReadLine());//време от поръчител
            int Works = int.Parse(Console.ReadLine()); //брой работници
            int Day = int.Parse(Console.ReadLine()); //работни дни

            double WorkProject = Works * Day * 8;

           if (WorkProject <= Hours)//вярно условие-времето ни е стигнало
                Console.WriteLine("Yes!{0} hours left.", Math.Ceiling( WorkProject-Hours));
            else 
            {
                double needed = Hours - WorkProject;
                Console.WriteLine("Not enough time!{0} hours needed.", Math.Floor(needed));
                double penalties = needed * Day;
                Console.WriteLine("Penalties: {0}", Math.Floor(penalties));
            }
            
             Console.ReadKey();

 

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