示例#1
0
        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);
        }
示例#2
0
        public double CalcularSiguiente(double valor)
        {
            if (Valores.Count == Cantidad)
            {
                EliminarPrimero();
            }

            Valores.Add(valor);

            var promedio = Valores.Average();

            return(promedio);
        }
示例#3
0
        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);
        }
示例#4
0
        //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);
        }
示例#5
0
        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);
        }