Loading...
Angel_Kalinkov avatar Angel_Kalinkov 111 Точки

Задача 2 - Фирма от Programming Basics Exam - 28 August 2016 е с грешна логика на решението

Задача 2 - Фирма от Programming Basics Exam - 28 Аugust 2016 е с грешно авторско решение и съответно очаквания изход, който е заложен в Judge също е грешен. Вярно, че изпитът е по програмиране за начинаещи, но по всяка вероятност те все пак са учили преди това малко математика и лично аз съм учуден, че никой досега не е повдигнал въпрос за тази задача!

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

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

Тагове:
0
Предложения и проблеми 24/01/2018 21:20:29
veronikaaa86 avatar veronikaaa86 365 Точки

Здравей,

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

"Фирмата разполага със 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 111 Точки

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

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

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

https://pastebin.com/Fjwenvzj

0
13/10/2017 13:38:42
Somma avatar Somma 6 Точки

Здравейте, г-н Калинков! 

Искам само да кажа, че 2 години по-късно няма реакция по въпроса за задачата! Аз също, разучавайки Java изгубих 2 дена, чудейки се какво става, че "нищо не става" с решението, а то наистина се оказва точно както вие сте го описали. 

Да не говорим, че аз пък четейки условието имах още по друго решение (схващане на задачата), но естествено Djuge-a не я прие! :-)))

Грешката си е в книгата, но и аз съм озадачен, как е възможно толкова време (2 години) никой да не обърне внимание, че задачата е неправилно описана там - и условието е подвеждащо и насоките и подсказките са объркващи. 

Аз съм подготвил едно обяснително писмо до г-н Наков, за корекция в книката, но за жалост до сега не усетих да има заинтересованост от страна на СофтУни по въпроса с грешките. 

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