public override float Calcular() { float Media = Valores.Average(); Passos.WriteLineAsyncCounter($"O {Titulo("Desvio padrão")} é uma medida que expressa o grau de dispersão de um conjunto de dados:"); Passos.WriteLineAsyncCounter($" {HTMLElements.Img(Properties: "src='https://dados-agrupados-api.herokuapp.com/Imagens/desvio-padrao-1.png'")}"); Passos.WriteLineAsyncCounter($"Obter a média aritimética dos dados (Ma) = {Media}"); Passos.WriteLineAsyncCounter($"Obter o número de termos (N) = {Valores.Count}"); Passos.WriteLineAsyncCounter($"(Somátorio de Xi = 1 até a posição N ({Valores.Count}) menos a média ({Media})) elevado ao quadrado{HTMLElements.Hr()}"); int xi = 1; foreach (var Elemento in Valores) { //Passos.WriteLineAsync($"Termo (x{xi}) = {Elemento}"); var operacao = (Elemento - Media) * (Elemento - Media); Resultado += operacao; Passos.WriteLineAsync($"$$ {(xi > 1 ? '+' : ' ')}(" + Elemento + " - " + Media.ToString("F2") + $")^ 2 = {operacao} ..." + Resultado + $" $$ {HTMLElements.Hr()}"); xi++; } Passos.WriteLineAsyncCounter($"Obter a raíz quadrada da divisão do somatório ({Resultado}) pelo numero de termos ({Valores.Count}) {HTMLElements.Hr()}"); var operacaoFinal = (float)Math.Sqrt(Resultado / Valores.Count()); Passos.WriteLineAsync($"\n $$ Resultado = \\sqrt {{ \\dfrac{{ {{{Resultado}}} }} {{{Valores.Count()}}} }} = {{{operacaoFinal}}}$$"); Resultado = operacaoFinal; return(Resultado); }
public double CalcularSiguiente(double valor) { if (Valores.Count == Cantidad) { EliminarPrimero(); } Valores.Add(valor); var promedio = Valores.Average(); return(promedio); }
public override float Calcular() { Resultado = Valores.Average(); Passos.WriteLineAsyncCounter($"{Titulo("Média Aritimética")}: $$ \\sum {{ Xi }} \\over n $$"); Passos.WriteLineAsyncCounter($"Elementos:"); string ValoresCSV = String.Join(",", Valores); string ValoresSoma = String.Join(" + ", Valores); Passos.WriteLineAsyncCounter($"{ValoresCSV}"); Passos.WriteLineAsyncCounter("Some todos os termos: "); Passos.WriteLineAsync($"$$ {ValoresSoma} $$"); Passos.WriteLineAsync($"$$ = {Valores.Sum().ToString()} $$"); Passos.WriteLineAsyncCounter($"Divida o resultado ({Valores.Sum()}) pelo numero de termos ({Valores.Count()}) "); Passos.WriteLineAsync($"$$ Resultado = \\dfrac{{ {{{Valores.Sum()}}} }} {{{Valores.Count()}}} = {Resultado} $$"); return(Resultado); }
//Metodos public int Monitoreo() { int resultado = 0; try { //asi como también registrar información al momento de su procesamiento string mensaje = "Input: " + (String.Join(", ", Valores.ToArray())) + " / " + "S: " + ConstanteS + " / " + "M: " + ConstanteM; Console.WriteLine(mensaje); _log.Info(mensaje); //Anomalia 1 //La diferencia entre el valor mínimo y máximo recibido sea mayor a una constante S if (Valores.Max() - Valores.Min() > ConstanteS) { //mensaje = "Anomalia encontrada: diferencia = " + (input.Max() - input.Min()) + ". S = " + s; mensaje = "Anomalia encontrada: diferencia mayor a S."; Console.WriteLine(mensaje); _log.Info(mensaje); resultado = 1; } //Anomalia 2 //El valor promedio sea superior a una constante M if ((Valores.Average()) > ConstanteM) { //mensaje = "Anomalia encontrada: promedio = " + (input.Average()) + ". S = " + m; mensaje = "Anomalia encontrada: promedio mayor a M."; Console.WriteLine(mensaje); _log.Info(mensaje); resultado = 2; } } catch (Exception ex) { _log.Error(ex); resultado = -1; } return(resultado); }
public override float Calcular() { float Media = Valores.Average(); Passos.WriteLineAsyncCounter($"{Titulo("Variância")}: A variância mede quão dispersos estão os dados na amostra. = $$ \\sum_ {{Xi - Ma²}} \\over n $$"); Passos.WriteLineAsyncCounter($"Calcule a média (Ma) = {Media}"); Passos.WriteLineAsyncCounter($"Calcule o número de termos (N) = {Valores.Count} {HTMLElements.Hr()}"); int xi = 1; foreach (var Elemento in Valores) { //Passos.WriteLineAsync($" $$ ( x{xi} - Ma ) ^2 $$"); var operacao = (Elemento - Media) * (Elemento - Media); Resultado += operacao; Passos.WriteLineAsync(" $$ (" + Elemento + " - " + Media.ToString("F2") + $")^ 2 = {operacao} ..." + Resultado + $" + $$ {HTMLElements.Hr()}"); xi++; } Passos.WriteLineAsync($"\n $$ Resultado: \\dfrac{{ {{{Resultado}}} }} {{{Valores.Count()}}} = {{{Resultado /= Valores.Count()}}} $$"); return(Resultado); }