public override float Calcular() { int pos = Math.Abs((Valores.Count / 2) - 1); string ValoresCSV = String.Join(",", Valores); Valores = Valores.ToList().OrderBy(x => x).ToList(); Passos.WriteLineAsyncCounter($"Elementos: {ValoresCSV}"); if (Valores.Count == 1) { Resultado = Valores[0]; } else if (Valores.Count % 2 != 0) { Resultado = Valores[Valores.Count / 2]; } else { Passos.WriteLineAsyncCounter($"Lista de contagem par:"); Passos.WriteLineAsyncCounter($"Some os dois elementos do centro ({Valores[pos]} e {Valores[pos + 1]}) e divida por 2(dois):"); Resultado = Math.Abs((Valores[pos] + Valores[pos + 1]) / 2); Passos.WriteLineAsync($"$$ \\dfrac{{ {{ {Valores[pos]} + {Valores[pos + 1]} }} }} {{2}} = \\dfrac{{ {{ {Valores[pos] + Valores[pos + 1]} }} }} {{2}} = {Resultado} $$"); } Passos.WriteLineAsyncCounter($"{HTMLElements.Hr()} {Titulo("Mediana")}: Valores no centro da lista : {Resultado}"); return(Resultado); }
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); }