//Resultados sin rangos
        public Resultados resultados(double[] resultados, string opcionRes, int X)
        {
            List <int> datos       = new List <int>();
            Resultados resultados1 = new Resultados();
            double     result      = 0;
            double     mediana     = 0;

            switch (opcionRes)
            {
            case "igual":
                for (int i = 0; i < resultados.Length; i++)
                {
                    if (i == X)
                    {
                        datos.Add(i);
                        // mediana = Mediana(datos);
                        resultados1.result  = resultados[i];
                        resultados1.mediana = i;
                        return(resultados1);
                    }
                }
                break;

            case "mayor":
                for (int j = X + 1; j < resultados.Length; j++)
                {
                    result = result + resultados[j];
                    datos.Add(j);
                }
                mediana             = Mediana(datos);
                resultados1.result  = result;
                resultados1.mediana = mediana;
                // return resultados1;
                //return result;
                break;

            case "menor":
                for (int j = 0; j < X; j++)
                {
                    result = result + resultados[j];
                    datos.Add(j);
                }
                mediana             = Mediana(datos);
                resultados1.result  = result;
                resultados1.mediana = mediana;
                //   return resultados1;
                //return result;
                break;

            case "mayorigual":
                for (int j = X; j < resultados.Length; j++)
                {
                    result = result + resultados[j];
                    datos.Add(j);
                }
                mediana             = Mediana(datos);
                resultados1.result  = result;
                resultados1.mediana = mediana;
                //return resultados1;
                //return result;
                break;

            case "menorigual":
                for (int j = 0; j <= X; j++)
                {
                    result = result + resultados[j];
                    datos.Add(j);
                }
                mediana             = Mediana(datos);
                resultados1.result  = result;
                resultados1.mediana = mediana;
                //return resultados1;
                break;
            // return result;

            default:
                //  MessageBox.Show("UPS ALGO SALIO MAL");
                break;
            }

            return(resultados1);
        }
        //Resultado para los rangos
        public Resultados Resultado2(double[] resultados, int x1, int x2, string opcion)
        {
            List <int> datos       = new List <int>();
            Resultados resultados1 = new Resultados();
            double     result      = 0;
            double     mediana     = 0;

            switch (opcion)
            {
            case "entre":
                if (x1 > x2)
                {
                    for (int i = x2; i <= resultados.Length; i++)
                    {
                        if (i <= x1)
                        {
                            result = result + resultados[i];
                            datos.Add(i);
                        }
                        // result = result + resultados[j];
                    }
                }
                else
                {
                    for (int i = x1; i <= resultados.Length; i++)
                    {
                        if (i <= x2)
                        {
                            result = result + resultados[i];
                            datos.Add(i);
                        }
                        // result = result + resultados[j];
                    }
                }
                break;

            case "menorigualsinigual":
                if (x1 > x2)
                {
                    for (int i = x2 + 1; i <= resultados.Length; i++)
                    {
                        if (i < x1)
                        {
                            result = result + resultados[i];
                            datos.Add(i);
                        }
                        // result = result + resultados[j];
                    }
                }
                else
                {
                    for (int i = x1 + 1; i <= resultados.Length; i++)
                    {
                        if (i < x2)
                        {
                            result = result + resultados[i];
                            datos.Add(i);
                        }
                        // result = result + resultados[j];
                    }
                }
                break;
            }

            mediana             = Mediana(datos);
            resultados1.result  = result;
            resultados1.mediana = mediana;
            return(resultados1);
            //  return result;
        }
Esempio n. 3
0
        //Operacion para la Distribucion Binomial
        public void Operacion()
        {
            int        auxiliar         = 0;
            Resultados datos            = new Resultados();
            double     PA               = 0;
            int        contador         = 0;
            double     UltimoResultado  = 0;
            double     UltimoResultado2 = 0;

            chart1.Palette = ChartColorPalette.Pastel;
            chart1.Titles.Add("Representacion Grafica");
            ChartArea CA = chart1.ChartAreas[0];

            CA.AxisX.ScaleView.Zoomable       = true;
            CA.CursorX.AutoScroll             = true;
            CA.CursorX.IsUserSelectionEnabled = true;


            chart2.Palette = ChartColorPalette.Pastel;
            chart2.Titles.Add("%");

            chart3.Palette = ChartColorPalette.Pastel;
            chart3.Titles.Add("% Acumulado");

            if (opcionDisitribucion == "Binomial")
            {
                resultados = metodos.DistribucionBinomial(P, n, X);
                if (opcionDistribucion2 != "Muestreo")
                {
                    PT = 0;
                }
            }
            else if (opcionDisitribucion == "Hipergeometrica")
            {
                if (n >= (N * 0.20))
                {
                    resultados = metodos.DistribucionHipergeometrica(n, (int)P, N, X);
                }
                else
                {
                    if (entero)
                    {
                        P = P / 100;
                    }
                    MessageBox.Show("Calculo con Distribucion Binomial");
                    resultados = metodos.DistribucionBinomial(P, n, X);
                }


                if (opcionDistribucion2 != "Muestreo")
                {
                    PT = 0;
                }
            }
            else if (opcionDisitribucion == "Comparacion")
            {
                if (opcionDistribucion2 != "Muestreo")
                {
                    PT = 0;
                }

                resultados  = metodos.DistribucionBinomial((P / 100), n, X);
                comparacion = metodos.DistribucionHipergeometrica(n, (int)P, N, X);
                //Aca nos quedamos
            }


            //Aca incluimos lo de la comparacion
            if (opcionDisitribucion == "Comparacion")
            {
                datos            = metodos.resultados(comparacion, opcionRes, X);
                UltimoResultado2 = datos.result;
            }

            if (X1 != 0 && X2 != 0)
            {
                datos           = metodos.Resultado2(resultados, X1, X2, opcionRes);
                UltimoResultado = datos.result;
                Mediana         = datos.mediana;
            }
            else
            {
                datos           = metodos.resultados(resultados, opcionRes, X);
                UltimoResultado = datos.result;
                Mediana         = datos.mediana;
                // UltimoResultado = metodos.resultados(resultados,opcionRes, X);
            }
            Media     = metodos.Media(n, P);
            TipoSesgo = metodos.TipoSesgo(Media, Mediana);
            chart1.Series.Add("x" + "       " + "f(x)");
            chart2.Series.Add("x" + "       " + "%");
            chart3.Series.Add("x" + "       " + "% Acumulado");
            Respuesta  = UltimoResultado;
            Respuesta2 = UltimoResultado2;
            bool res = Double.IsNaN(Respuesta);

            if (res)
            {
            }
            else
            {
                for (int i = 0; i < resultados.Length; i++)
                {
                    //Titulos

                    Series serie  = chart1.Series.Add(i + " . " + resultados[i].ToString());
                    Series serie2 = chart2.Series.Add(i + " . " + (resultados[i] * 100).ToString());
                    Series serie3;

                    //Cantidades
                    // serie.Label = resultados[i].ToString();
                    if (contador == 0)
                    {
                        PA = resultados[i];
                        if (PT != 0 && (PA * 100) <= ((double)PT * 100))
                        {
                            dataGridView1.Rows.Add(contador, resultados[i], resultados[i], resultados[i] * 100, resultados[i] * 100);
                            dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Yellow;
                        }
                        else
                        {
                            dataGridView1.Rows.Add(contador, resultados[i], resultados[i], resultados[i] * 100, resultados[i] * 100);
                        }
                        serie3 = chart3.Series.Add(i + " . " + (PA * 100).ToString());
                    }
                    else
                    {
                        PA     = resultados[i] + PA;
                        serie3 = chart3.Series.Add(i + " . " + (PA * 100).ToString());
                        if (PT != 0 && (PA * 100) <= ((double)PT * 100))
                        {
                            dataGridView1.Rows.Add(contador, resultados[i], PA, resultados[i] * 100, PA * 100);
                            dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Yellow;
                            auxiliar = i;
                        }
                        else
                        {
                            if (auxiliar != 0)
                            {
                                dataGridView1.Rows[auxiliar].DefaultCellStyle.BackColor = Color.LightGreen;
                            }
                            dataGridView1.Rows.Add(contador, resultados[i], PA, resultados[i] * 100, PA * 100);
                        }
                    }

                    ///    auxiliar = 0;
                    chart1.Series[0].Points.AddXY(contador, resultados[i]);
                    // serie.Points.AddXY(contador, resultados[i]);
                    chart2.Series[0].Points.AddXY(contador, resultados[i] * 100);
                    chart3.Series[0].Points.AddXY(contador, PA * 100);
                    contador++;
                }
            }
            button2.Visible = true;
            button3.Visible = true;
            button4.Visible = true;
        }