Loading...

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

PetyaB.Ivanova avatar PetyaB.Ivanova 0 Точки

[Programming Basics] Изпит - 23 юли 2017 Задача 2. Хореография

Здравейте, искам да попитам защо не прави никакви изчисления и как с math.round да си закръгля stepsOfDay?

code

Група танцьори се подготвя за финално състезание. Те трябва да научат нова хореография. Танца се състои от N - на брой стъпки, които се разпределят между танцьорите. Цялата хореография трябва да се научи за определен брой дни. Всички танцьори могат да научат не повече от 13% от общите стъпки на ден. Да се напише програма която пресмята дали танцьорите ще успеят да научат новия танц и по колко процента от стъпките следва да научи всеки един от тях. При изчисляване на процента стъпки на ден, числото трябва да се закръгли към най – близкото цяло число нагоре. Вход От конзолата се четат 3 реда: 1. Брой стъпки – цяло число в интервала [1 … 100 000]; 2. Брой танцьори – цяло число в интервала [1 … 50]; 3. Брой дни за учене – цяло число в интервала [1 … 31]; Изход Отпечатването на конзолата зависи от резултата:  Ако общия процент стъпки са по-малко или равни на 13% отпечатваме: o "Yes, they will succeed in that goal! {процент стъпки които трябва да научи всеки един танцьор на ден}%."  Ако общия процент стъпки са повече от 13% отпечатваме: o "No, They will not succeed in that goal! Required {процент стъпки които трябва да научи всеки един танцьор на ден}% steps to be learned per day." И двата отговора трябва да са форматирани до втория знак след десетичната запетая.

Тагове:
0
Programming Basics 25/07/2017 07:34:26
Jeliozver avatar Jeliozver 356 Точки

За да направи изчисленията точно трябва поне единия от входовете да е double или при самата сметка да се преобразува.

Обърни внимание, че при смятането на стъпките на деня трябва резултата да се превърне в проценти и да се закръгли към по-високото цяло число (например ако е 4.1 да стане 5). Това може да се постигне с Math.Ceiling , а не с Мath.Round

https://msdn.microsoft.com/en-us/library/zx4t0t48(v=vs.110).aspx

 

0
koksibg avatar koksibg 892 Точки

Този ред:

double stepsOfDay = (steps / days)/steps;

трябва да стане така:

double stepsOfDay = Math.Ceiling(steps / days / (double)steps * 100);

защото - както е казано по условие:

"При изчисляване на процента стъпки на ден, числото трябва да се закръгли към най – близкото цяло число нагоре."

Това става, както е казал колегата със Math.Ceiling, който закръгля дробното число (число с плаваща запетая) към по-голямото цяло число , и затова това, което е вътре в Math.Ceiling се каства към double. И виж линка, който ти е даден - във Examples е описано мн. добре.

А се умножава по 100 за да се обърне резултата (в случая stepsOfDay) в проценти.

Итогава казваш, че ако stepsPerDancer<=13, т.е. ако е по-малко от 13 процента ( т.е. това 13 е във проценти, и затова по горе stepsOfDay, го умножаваш по сто), и имаш грешка в принтирането - трябва да е точно както е във примера:

Console.WriteLine($" Yes, they will succeed in that goal! {stepsPerDancer:f2}%.");

и не си спазила това условие:

И двата отговора трябва да са форматирани до втория знак след десетичната запетая.

това става, като добавиш   :f2, както съм показал.

Console.WriteLine($"No, They will not succeed in that goal! Required {stepsPerDancer:f2}% steps to be learned per day.");

Като замениш тези редове, тогава.. ще ти даде 100/100 точки.

 

 

 

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