Професионална програма
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 1 Точки

Най-интересното е,че сума ти хора тук са качили решенията си с претенции,че са правилни, а същите копирани дават грешни резултати. Лично аз пробвах доста свои решения и заради това пробвах какво по-различно са вашите,а те също дадоха грешки. Все пак стигнах до успех и проблемите ми са били следните:
Единия е елементарен - в 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 3 Точки

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

0
Axiomatik avatar Axiomatik 776 Точки

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 3 Точки

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

 

Напишете програма, която да пресмята дали фирма може да извърши ремонт на път за определеното от поръчителя времеработни човеко-часове). Броят на работниците във фирмата и дните, които могат да се отделят за поръчката, се четат от конзолата. Приема се, че един работник работи 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 776 Точки

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 3 Точки

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

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

actualHours >= requiredHours

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

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

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 3 Точки

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

0