В Programming Basics Exam - 28 August 2016 има грешна задача - Софтуерен университет

+ Нов въпрос
Angel_Kalinkov avatar Angel_Kalinkov 8 Точки

В Programming Basics Exam - 28 August 2016 има грешна задача

Задача 2 - Фирма от Programming Basics Exam - 28 Аugust 2016 е с грешно авторско решение и съответно очаквания изход, който е заложен в Judge също е грешен. https://judge.softuni.bg/Contests/Practice/Index/274#1 Вярно, че изпитът е по програмиране за начинаещи, но по всяка вероятност те все пак са учили преди това малко математика и лично аз съм учуден, че никой досега не е повдигнал въпрос за тази задача!

От обясненията за решението, дадени в условието на задачата, става ясно, че за да се намери общия брой отработени часове за цялата фирма, се събират редовните часове, отработени от един служител, с извънредните часове, отработени от всички служители!? За да бъде решена коректно задачата, трябва да се сумират редовните часове, отработени от всички служители с извънредните часове за всички служители.

Изпитът вече е минал и заминал, но все пак е добре тази задача да бъде коригирана, за да не се шашкат докато я решават тези, които се подготвят за следващите изпити по Programming Basics.

Тагове:
0
Предложения и проблеми 13/10/2017 13:27:33
veronikaaa86 avatar veronikaaa86 127 Точки

Здравей,

шашкане няма. Мисля, че си пропуснал някои неща в условието и в обясненията. Общите часове в първия пример са:

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

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

След това се изчисяват часовете на служителите, работещи извънредно:

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

И накрая се събират общите часове (минус 10% за обучение) + служителите, работещи извънредно.

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

Ето моето решение на Java:

https://pastebin.com/itguxx34

0
Angel_Kalinkov avatar Angel_Kalinkov 8 Точки

6,3 * 8 означава, че умножавате дните, в които е работено, по 8 работни часа за всеки ден. Така получавате 50,4 работни часа, изработени през редовното работно време от ЕДИН СЛУЖИТЕЛ. Защо ги събирате с овъртайма на всички служители?! Така няма да получите общия брой отработени часове от всички служители във фирмата, които да сравните с необходимото време за изработване на проекта.

От решението Ви става ясно, че за намирането на извънредните часове умножавате 2 часа по броя на служителите по пълния брой на дните. Това също е грешно, след като в условието е казано: "През 10% от дните служителите са на обучение и не могат да работят по проекта." Логично е, че докато са на обучение, служителите не могат да работят както редовно, така и извънредно.

Освен това в условието има леки неясноти. Казано е, че на третия ред на входа се подава " броят на служителите, работещи извънредно". Формулирано така, у четящият остава впечатление, че този брой е различен от общия брой на служителите. Но поради липсата на друга информация сме принудени да приемем, че всъщност това са всички служители и всички са работили извънредно. При така зададено условие това е моето решение, което без да се шашкам, продължавам да твърдя, че е вярно:

https://pastebin.com/Fjwenvzj

0
13/10/2017 13:38:42