Loading...
ison4eto avatar ison4eto 40 Точки

[Programming Fundamentals] - C# Basics - 05. BPM Counter

Здравейте,

Решението ми минава за 100 точки, но ми се струва леко тромаво. Може ли да ми предложите по-добро решение?

using System;

namespace BPMCounter
{
    class Program
    {
        static void Main()
        {
            int  BPM = int.Parse(Console.ReadLine()); 
            int  beats = int.Parse(Console.ReadLine());
            Console.Write($"{Math.Round(beats/4.0,1 ) } bars - ");
            double seconds = beats * 60.0 / BPM;
            int minutes = (int) seconds / 60;
            seconds -= minutes * 60;
            Console.WriteLine($"{minutes}m {Math.Floor(seconds)}s");
        }
    }
}

 

Тагове:
0
Programming Fundamentals 27/05/2017 12:36:26
Pazzo avatar Pazzo 158 Точки

Здравей,

не знам, дали моето минава за по-малко тромаво, може да му хвърлиш един поглед ;)

1
ison4eto avatar ison4eto 40 Точки

Сравнително еднотипни са. Мерси все пак.

0
Bullsized avatar Bullsized 153 Точки

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

1
sevgin0954 avatar sevgin0954 557 Точки

Само да не са и на изпита такиваsmiley програмата е правя 2мин мисля формула 10

1
vdrenovski avatar vdrenovski 8 Точки

Имало е, и най-вероятно ще има такива, ако не и по-дeбилни условия.
Много ми харесва как има условие за формата на bars  но няма условие за формата на минути и секунди.

Хубаво е този, който съзадава задачите, да е наясно с една-две Requirements engineering methodologies, имайки предвид огромните сходства между стандартния waterfall модел на разработка на софтуер и модела по който протича изпълнението на домашни и изпити в СофтУни.

2
staho avatar staho 8 Точки
 double bars = Math.Round(beats / (double)4, 1);

 int minutes = beats/ beatsPerMin;
 double seconds = Math.Floor(60 * (beats / (double)beatsPerMin) - minutes * 60 );

 

0
ichigo avatar ichigo 0 Точки

Ето и моето решение , надявам се да  помогне на някой :)

https://pastebin.com/sKajuGRG

0
sap.phire avatar sap.phire 3 Точки

var bpm = int.Parse(Console.ReadLine());
            var beats = int.Parse(Console.ReadLine());

            var bars = beats / 4.0;
            bars = Math.Round(bars, 1);

            var SecondSum = (beats / (double)bpm) * 60;
            SecondSum = Math.Truncate(SecondSum);
            var seconds = SecondSum % 60;
            int minutes = (int)SecondSum / 60;
            Console.WriteLine($"{bars} bars - {minutes}m {seconds}s");

 

ето това е моето решение.

0
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

Това последното решение е ужасно... първо уж е с# но само е минало от там..после защо инициализираш променливата и после я прекарваш през Math класа? направи го още при инициализирането. И с тея каствания на data type... защо пръво го int.parse от конзолата и после го cast на (double) направо от началото го дръж на double..

И ги пускате тея неща за пример...Да не говорим че навсякъде се слага и var ... с тоя Resharper...ще ме уморите

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