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
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
Axiomatik avatar Axiomatik 2422 Точки

I have rewritten your code a bit to make the variable names more clearer and also replaced the final output lines since I couldn't see any specifications for using Math.Ceiling/Floor. Otherwise, there were two problems:

1. Line 15, actualHours <= requiredHours, changed to:

if (actualHours >= requiredHours)

2. Output messages were different from what was given in the assignment, so I inserted the comments that were required as per assignment.

I hope this helps, if there are any remaining questions/issues just post them here again. 

Code:

using System;

namespace WorkingHoursForum
{
    class Program
    {
        static void Main(string[] args)
        {
            int requiredHours = int.Parse(Console.ReadLine());//време от поръчител
            int workersAmount = int.Parse(Console.ReadLine()); //брой работници
            int daysAmount = int.Parse(Console.ReadLine()); //работни дни

            double actualHours = workersAmount * daysAmount * 8;

            if (actualHours >= requiredHours)//вярно условие-времето ни е стигнало
                //Console.WriteLine("{0} hours left.", Math.Ceiling(actualHours - requiredHours));
                Console.WriteLine($"{actualHours - requiredHours} hours left.");
            else
            {
                double needed = requiredHours - actualHours;
                //Console.WriteLine("{0} overtime", Math.Floor(needed));
                Console.WriteLine($"{needed} overtime");
                double penalties = needed * daysAmount;
                //Console.WriteLine("Penalties: {0}", Math.Floor(penalties));
                Console.WriteLine($"Penalties: {penalties}");
            }
        }
    }
}

 

0
tini4ka avatar tini4ka 5 Точки

Благодаря, но явно аз не схващам логиката. 

Относно проверките.... След if , трябва да имаме вярно условие. Защо точно така я правим

actualHours >= requiredHours

Времето за което реално фирмата ще свърши работата >= на времето, което ни подава поръчителя? Ako реално то е >= ние ще платим неустойки. Нали така? Или греша? 

0
12/12/2020 07:25:42
Axiomatik avatar Axiomatik 2422 Точки

The best thing maybe is that you also provide the input-data and name for this exercise so that I can see what is required, but the way I understand it is that you just need to compute the actualHours performed by all workers for a given amount of days. If this actualHours is bigger than or equal to (>=) the required hours of the project (requiredHours), then the project has been completed - otherwise you have to print the failed message (Penalties ...):

1.Ако времето е стигнало=> Print the remaining hours

2.Ако времето не е стигнало=> Print the needed hours and the penalty

 

Best,

0
tini4ka avatar tini4ka 5 Точки

Благодаря! Междувременно усъзнах, че всъщност реалните часове(WorkProject), които пресмятам са часове, които работниците на фирмата имат като време за да свършат работата, със тези на брой работници и дни за работа. И тогава всичко ми се изясни. До сега мислих, че това са нужните часове за да  свършат количество работа

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