public override float Calcular()
        {
            Valores = Valores.ToList().OrderBy(x => x).ToList();
            string ValoresCSV = String.Join(",", Valores);

            Passos.WriteLineAsyncCounter($"{Titulo("Ordene os dados (K):")} {GerarTabelaDeFrequencia()}");

            NumeroDeElementos = Valores.Count;
            ValorMinimo       = CalcularValorMinimo(Valores);
            ValorMaximo       = CalcularValorMaximo(Valores);

            Amplitude = CalcularAmplitudeA(ValorMinimo, ValorMaximo);
            if (Simples)
            {
                QuantidadeIntervalos = ValoresDistintos.Count();
            }
            else
            {
                QuantidadeIntervalos = CalcularQuantidadeIntervalosK(NumeroDeElementos);
            }
            Intervalo = CalcularTamanhoIntervaloH(Amplitude, QuantidadeIntervalos);

            CalcularTodosOsIntervalos();

            Moda.Calcular();
            //Passos.Append(Moda.Passos.ToString());

            Mediana.Calcular();
            //Passos.Append(Mediana.Passos.ToString());

            DesvioPadrao.Calcular();
            //Passos.Append(DesvioPadrao.Passos.ToString());

            Variancia.Calcular();
            //Passos.Append(Variancia.Passos.ToString());

            Media.Calcular();
            //Passos.Append(Media.Passos.ToString());

            CoeficienteVariacao.Calcular();

            Passos.Close();
            return(0f);
        }
        public TabelaDistribuicao(List <float> Valores) : base()
        {
            intervalos = new List <string>();
            xi         = new List <float>();
            fi         = new List <float>();
            Fi         = new List <float>();
            fr         = new List <float>();
            Fr         = new List <float>();


            Moda                = new Moda(Valores);
            Mediana             = new Mediana(Valores);
            DesvioPadrao        = new DesvioPadrao(Valores);
            Variancia           = new Variancia(Valores);
            Media               = new Media(Valores);
            CoeficienteVariacao = new CoeficienteVariacao(Valores);

            ValoresDistintos = new List <KeyValuePair <float, int> >();
            this.Valores     = Valores;
            var ValoresAgrupados = from s in Valores
                                   group s by s into grp
                                   select new
            {
                valor    = grp.Key,
                contagem = grp.Count()
            };

            foreach (var k in ValoresAgrupados.OrderBy(x => x.valor))
            {
                ValoresDistintos.Add(new KeyValuePair <float, int>(k.valor, k.contagem));
            }
            if (ValoresDistintos.Count <= 10)
            {
                Simples = true;
            }
            else
            {
                Simples = false;
            }
        }