Beispiel #1
0
        private void btn_simular_Click(object sender, EventArgs e)
        {
            int msj = Validar(this.Controls);

            if (msj == 0)
            {
                c = form_cantidadservidores.nro + 1;

                cli_en_cola_s1.Series.Clear();
                cli_en_cola_s2.Series.Clear();

                dem_prom_cli_s1.Series.Clear();
                dem_prom_cli_s2.Series.Clear();

                utilizacion_serv1.Series.Clear();
                utilizacion_serv2.Series.Clear();

                cli_cola1    = new List <double>();
                dem_prom1    = new List <double>();
                utilizacion1 = new List <double>();

                cli_cola2    = new List <double>();
                dem_prom2    = new List <double>();
                utilizacion2 = new List <double>();

                cli_en_cola_s1.Series.Add(nom_graf);
                cli_en_cola_s1.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                cli_en_cola_s1.Series[nom_graf].Color       = Color.Green;
                cli_en_cola_s1.Series[nom_graf].BorderWidth = 3;

                cli_en_cola_s2.Series.Add(nom_graf);
                cli_en_cola_s2.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                cli_en_cola_s2.Series[nom_graf].Color       = Color.Green;
                cli_en_cola_s2.Series[nom_graf].BorderWidth = 3;

                dem_prom_cli_s1.Series.Add(nom_graf);
                dem_prom_cli_s1.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                dem_prom_cli_s1.Series[nom_graf].Color       = Color.Red;
                dem_prom_cli_s1.Series[nom_graf].BorderWidth = 3;

                dem_prom_cli_s2.Series.Add(nom_graf);
                dem_prom_cli_s2.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                dem_prom_cli_s2.Series[nom_graf].Color       = Color.Red;
                dem_prom_cli_s2.Series[nom_graf].BorderWidth = 3;

                utilizacion_serv1.Series.Add(nom_graf);
                utilizacion_serv1.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                utilizacion_serv1.Series[nom_graf].Color       = Color.Blue;
                utilizacion_serv1.Series[nom_graf].BorderWidth = 3;

                utilizacion_serv2.Series.Add(nom_graf);
                utilizacion_serv2.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                utilizacion_serv2.Series[nom_graf].Color       = Color.Blue;
                utilizacion_serv2.Series[nom_graf].BorderWidth = 3;

                NrosAleatorios.GenerarNros(Convert.ToInt32(txtHs.Text));

                for (int i = 0; i < tiempos.Length; i++)
                {
                    ServidoresSerie MultiplesServidores;
                    TEA = new List <double>();
                    TDS = new List <double>();

                    if (chkArribo.Checked == true)
                    {
                        if (txtTEA_a.Text.Contains("."))
                        {
                            txtTEA_a.Text = txtTEA_a.Text.Replace('.', ',');
                        }
                        if (txtTEA_b.Text.Contains("."))
                        {
                            txtTEA_b.Text = txtTEA_b.Text.Replace('.', ',');
                        }

                        TEA.Add(Convert.ToDouble(txtTEA_a.Text));
                        TEA.Add(Convert.ToDouble(txtTEA_b.Text));
                        if (cbxDTDS.SelectedItem.ToString() == "Exponencial")
                        {
                            TDS.Add(tiempos[i]);
                            TDS.Add(tiempos[i]);
                            MultiplesServidores = new ServidoresSerie(c, 'u', TEA, 'e', TDS);
                        }
                        else
                        {
                            TDS.Add(tiempos[i]);
                            TDS.Add(tiempos[i]);
                            TDS.Add(tiempos[i]);
                            TDS.Add(tiempos[i]);
                            MultiplesServidores = new ServidoresSerie(c, 'u', TEA, 'w', TDS);
                        }
                    }
                    else
                    {
                        if (txtTDS1_a.Text.Contains("."))
                        {
                            txtTDS1_a.Text = txtTDS1_a.Text.Replace('.', ',');
                        }
                        if (txtTDS1_b.Text.Contains("."))
                        {
                            txtTDS1_b.Text = txtTDS1_b.Text.Replace('.', ',');
                        }
                        if (txtTDS2_a.Text.Contains("."))
                        {
                            txtTDS2_a.Text = txtTDS2_a.Text.Replace('.', ',');
                        }
                        if (txtTDS2_b.Text.Contains("."))
                        {
                            txtTDS2_b.Text = txtTDS2_b.Text.Replace('.', ',');
                        }

                        TDS.Add(Convert.ToDouble(txtTDS1_a.Text));
                        TDS.Add(Convert.ToDouble(txtTDS1_b.Text));
                        TDS.Add(Convert.ToDouble(txtTDS2_a.Text));
                        TDS.Add(Convert.ToDouble(txtTDS2_b.Text));
                        if (cbxDTEA.SelectedItem.ToString() == "Exponencial")
                        {
                            TEA.Add(tiempos[i]);
                            MultiplesServidores = new ServidoresSerie(c, 'e', TEA, 'u', TDS);
                        }
                        else
                        {
                            TEA.Add(tiempos[i]);
                            TEA.Add(tiempos[i]);
                            MultiplesServidores = new ServidoresSerie(c, 'w', TEA, 'u', TDS);
                        }
                    }

                    while (MultiplesServidores.reloj < Convert.ToDouble(txtHs.Text))
                    {
                        char proximo_evento = MultiplesServidores.rutinadetiempo();
                        if (proximo_evento == 'a')
                        {
                            MultiplesServidores.arribo();
                        }
                        else if (proximo_evento == 'b')
                        {
                            MultiplesServidores.partida_arribo(proximo_evento);
                        }
                        else if (proximo_evento == 'c')
                        {
                            MultiplesServidores.partida_arribo(proximo_evento);
                        }
                        else if (proximo_evento == 'd')
                        {
                            MultiplesServidores.partida_arribo(proximo_evento);
                        }
                        else
                        {
                            MultiplesServidores.partida();
                        }
                    }

                    cli_en_cola_s1.Series[nom_graf].Points.Add(new DataPoint(tiempos[i], MultiplesServidores.CantPromClientesColaS(0)));
                    cli_en_cola_s2.Series[nom_graf].Points.Add(new DataPoint(tiempos[i], MultiplesServidores.CantPromClientesColaS(1)));
                    cli_cola1.Add(MultiplesServidores.CantPromClientesColaS(0));
                    cli_cola2.Add(MultiplesServidores.CantPromClientesColaS(1));

                    dem_prom_cli_s1.Series[nom_graf].Points.Add(new DataPoint(tiempos[i], MultiplesServidores.DemPromedioS(0)));
                    dem_prom_cli_s2.Series[nom_graf].Points.Add(new DataPoint(tiempos[i], MultiplesServidores.DemPromedioS(1)));
                    dem_prom1.Add(MultiplesServidores.DemPromedioS(0));
                    dem_prom2.Add(MultiplesServidores.DemPromedioS(1));

                    utilizacion_serv1.Series[nom_graf].Points.Add(new DataPoint(tiempos[i], MultiplesServidores.UtilServidor(0)));
                    utilizacion_serv2.Series[nom_graf].Points.Add(new DataPoint(tiempos[i], MultiplesServidores.UtilServidor(1)));
                    utilizacion1.Add(MultiplesServidores.UtilServidor(0));
                    utilizacion2.Add(MultiplesServidores.UtilServidor(1));

                    NrosAleatorios.ReiniciarR();
                }

                cli_en_cola_s1.ChartAreas[0].AxisY.Maximum    = DameMaximo(cli_cola1) * 1.2;
                dem_prom_cli_s1.ChartAreas[0].AxisY.Maximum   = DameMaximo(dem_prom1) * 1.2;
                utilizacion_serv1.ChartAreas[0].AxisY.Maximum = DameMaximo(utilizacion1) * 1.2;

                cli_en_cola_s2.ChartAreas[0].AxisY.Maximum    = DameMaximo(cli_cola2) * 1.2;
                dem_prom_cli_s2.ChartAreas[0].AxisY.Maximum   = DameMaximo(dem_prom2) * 1.2;
                utilizacion_serv2.ChartAreas[0].AxisY.Maximum = DameMaximo(utilizacion2) * 1.2;

                NrosAleatorios.ReiniciarN();
            }
            else
            {
                string mensaje = null;
                switch (msj)
                {
                case (1):
                    mensaje = "Existen campos vacíos.";
                    break;

                case (2):
                    mensaje = "Verifique el formato las horas: deben ser enteras.";
                    break;

                case (3):
                    mensaje = "Los TDS tienen que ser números decimales entre 0,1 y 1.";
                    break;

                case (4):
                    mensaje = "El TEA tiene que ser un decimal entre 0,1 y 1.";
                    break;

                case (5):
                    mensaje = "Los TDS tienen que ser números decimales entre 0,1 y 1.";
                    break;

                case (6):
                    mensaje = "El TEA tiene que ser un decimal entre 0,1 y 1.";
                    break;

                case (7):
                    mensaje = "Debe ingresar el TEA o los TDS";
                    break;

                case (8):
                    mensaje = "El valor de a no puede ser mayor que el de b";
                    break;

                case (9):
                    mensaje = "Debe tildar el tiempo que desea ingresar.";
                    break;

                default: break;
                }
                MessageBox.Show(mensaje, " ¡ Atención !", MessageBoxButtons.OK);
            }
        }
        private void btn_simular_Click(object sender, EventArgs e)
        {
            int msj = Validar(this.Controls);

            if (msj == 0)
            {
                c = form_cantidadservidores.nro + 1;

                String nom_graf = "Weibull";

                cli_en_cola_s1.Series.Clear();
                cli_en_cola_s2.Series.Clear();

                dem_prom_cli_s1.Series.Clear();
                dem_prom_cli_s2.Series.Clear();

                utilizacion_serv1.Series.Clear();
                utilizacion_serv2.Series.Clear();

                cli_cola1    = new List <double>();
                dem_prom1    = new List <double>();
                utilizacion1 = new List <double>();

                cli_cola2    = new List <double>();
                dem_prom2    = new List <double>();
                utilizacion2 = new List <double>();

                cli_en_cola_s1.Series.Add(nom_graf);
                cli_en_cola_s1.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                cli_en_cola_s1.Series[nom_graf].Color       = Color.Green;
                cli_en_cola_s1.Series[nom_graf].BorderWidth = 3;

                cli_en_cola_s2.Series.Add(nom_graf);
                cli_en_cola_s2.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                cli_en_cola_s2.Series[nom_graf].Color       = Color.Green;
                cli_en_cola_s2.Series[nom_graf].BorderWidth = 3;

                dem_prom_cli_s1.Series.Add(nom_graf);
                dem_prom_cli_s1.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                dem_prom_cli_s1.Series[nom_graf].Color       = Color.Red;
                dem_prom_cli_s1.Series[nom_graf].BorderWidth = 3;

                dem_prom_cli_s2.Series.Add(nom_graf);
                dem_prom_cli_s2.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                dem_prom_cli_s2.Series[nom_graf].Color       = Color.Red;
                dem_prom_cli_s2.Series[nom_graf].BorderWidth = 3;

                utilizacion_serv1.Series.Add(nom_graf);
                utilizacion_serv1.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                utilizacion_serv1.Series[nom_graf].Color       = Color.Blue;
                utilizacion_serv1.Series[nom_graf].BorderWidth = 3;

                utilizacion_serv2.Series.Add(nom_graf);
                utilizacion_serv2.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                utilizacion_serv2.Series[nom_graf].Color       = Color.Blue;
                utilizacion_serv2.Series[nom_graf].BorderWidth = 3;

                NrosAleatorios.GenerarNros(Convert.ToInt32(txtHs.Text));

                for (int i = 0; i < tiempos.Length; i++)
                {
                    ServidoresParalelo MultiplesServidores;
                    TEA   = new List <double>();
                    TDS_a = new List <double>();
                    TDS_b = new List <double>();

                    if (arribo)
                    {
                        TEA.Add(Convert.ToDouble(txtTEA_a.Text));
                        TEA.Add(Convert.ToDouble(txtTEA_b.Text));
                        TDS_a.Add(tiempos[i]);
                        TDS_a.Add(tiempos[i]);
                        TDS_b.Add(tiempos[i]);
                        TDS_b.Add(tiempos[i]);
                        MultiplesServidores = new ServidoresParalelo('w', c, TEA, TDS_a, TDS_b);
                    }
                    else
                    {
                        TEA.Add(tiempos[i]);
                        TEA.Add(tiempos[i]);
                        TDS_a.Add(Convert.ToDouble(this.txtTDS1_a.Text));
                        TDS_a.Add(Convert.ToDouble(this.txtTDS2_a.Text));
                        TDS_b.Add(Convert.ToDouble(this.txtTDS1_b.Text));
                        TDS_b.Add(Convert.ToDouble(this.txtTDS2_b.Text));
                        MultiplesServidores = new ServidoresParalelo('w', c, TEA, TDS_a, TDS_b);
                    }

                    while (MultiplesServidores.reloj < Convert.ToDouble(txtHs.Text))
                    {
                        char proximo_evento = MultiplesServidores.rutinadetiempo();
                        if (proximo_evento == 'a')
                        {
                            MultiplesServidores.arribo();
                        }
                        else
                        {
                            MultiplesServidores.partida();
                        }
                    }

                    cli_en_cola_s1.Series[nom_graf].Points.Add(new DataPoint(tiempos[i], MultiplesServidores.CantPromClientesColaS(0)));
                    cli_en_cola_s2.Series[nom_graf].Points.Add(new DataPoint(tiempos[i], MultiplesServidores.CantPromClientesColaS(1)));
                    cli_cola1.Add(MultiplesServidores.CantPromClientesColaS(0));
                    cli_cola2.Add(MultiplesServidores.CantPromClientesColaS(1));

                    dem_prom_cli_s1.Series[nom_graf].Points.Add(new DataPoint(tiempos[i], MultiplesServidores.DemPromedioS(0)));
                    dem_prom_cli_s2.Series[nom_graf].Points.Add(new DataPoint(tiempos[i], MultiplesServidores.DemPromedioS(1)));
                    dem_prom1.Add(MultiplesServidores.DemPromedioS(0));
                    dem_prom2.Add(MultiplesServidores.DemPromedioS(1));

                    utilizacion_serv1.Series[nom_graf].Points.Add(new DataPoint(tiempos[i], MultiplesServidores.UtilServidor(0)));
                    utilizacion_serv2.Series[nom_graf].Points.Add(new DataPoint(tiempos[i], MultiplesServidores.UtilServidor(1)));
                    utilizacion1.Add(MultiplesServidores.UtilServidor(0));
                    utilizacion2.Add(MultiplesServidores.UtilServidor(1));

                    NrosAleatorios.ReiniciarR();
                }

                cli_en_cola_s1.ChartAreas[0].AxisY.Maximum    = DameMaximo(cli_cola1) * 1.2;
                dem_prom_cli_s1.ChartAreas[0].AxisY.Maximum   = DameMaximo(dem_prom1) * 1.2;
                utilizacion_serv1.ChartAreas[0].AxisY.Maximum = DameMaximo(utilizacion1) * 1.2;

                cli_en_cola_s2.ChartAreas[0].AxisY.Maximum    = DameMaximo(cli_cola2) * 1.2;
                dem_prom_cli_s2.ChartAreas[0].AxisY.Maximum   = DameMaximo(dem_prom2) * 1.2;
                utilizacion_serv2.ChartAreas[0].AxisY.Maximum = DameMaximo(utilizacion2) * 1.2;

                NrosAleatorios.ReiniciarN();
            }
            else
            {
                string mensaje = null;
                switch (msj)
                {
                case (1):
                    mensaje = "Existen campos vacíos.";
                    break;

                case (2):
                    mensaje = "Verifique el formato las horas: deben ser enteras.";
                    break;

                case (3):
                    mensaje = "Los parámetros del TDS tienen que ser números decimales entre 0,1 y 1.";
                    break;

                case (4):
                    mensaje = "Los parámetros del TEA tienen que ser números decimales entre 0,1 y 1.";
                    break;

                case (5):
                    mensaje = "Los parámetros del TDS tienen que ser números decimales entre 0,1 y 1.";
                    break;

                case (6):
                    mensaje = "Los parámetros del TEA tienen que ser números decimales entre 0,1 y 1.";
                    break;

                case (7):
                    mensaje = "Debe ingresar los parámetros del TEA o del TDS";
                    break;

                default: break;
                }
                MessageBox.Show(mensaje, "¡ Atención !", MessageBoxButtons.OK);
            }
        }
        private void Simular()
        {
            for (int i = 0; i < 3; i++)
            {
                cant_cli_cola.Series[i].Points.Clear();
                dem_prom.Series[i].Points.Clear();
                utilizacion.Series[i].Points.Clear();
            }

            NrosAleatorios.GenerarNros(100);

            #region Exponencial 0.3

            ServidorSimple ServidorSimple_Exp = new ServidorSimple(0.3, 0.3);
            while (ServidorSimple_Exp.reloj < Convert.ToDouble(100))
            {
                char proximo_evento = ServidorSimple_Exp.rutinadetiempo();
                if (proximo_evento == 'a')
                {
                    ServidorSimple_Exp.arribo();
                }
                else
                {
                    ServidorSimple_Exp.partida();
                }
            }
            DataPoint punto = new DataPoint(0.3, ServidorSimple_Exp.CantPromClientesCola);
            cant_cli_cola.Series[0].Points.Add(punto);
            dem_prom.Series[0].Points.Add(new DataPoint(0.3, ServidorSimple_Exp.DemPromedio));
            utilizacion.Series[0].Points.Add(new DataPoint(0.3, ServidorSimple_Exp.UtilServidor));

            #endregion

            NrosAleatorios.ReiniciarR();

            #region Uniforme 0.3
            tea = new List <double>()
            {
                0.1, 0.3
            };
            tds = new List <double>()
            {
                0.1, 0.3
            };
            ServidorSimple ServidorSimple_Uni = new ServidorSimple('u', tea, tds);
            while (ServidorSimple_Uni.reloj < Convert.ToDouble(100))
            {
                char proximo_evento = ServidorSimple_Uni.rutinadetiempo();
                if (proximo_evento == 'a')
                {
                    ServidorSimple_Uni.arribo();
                }
                else
                {
                    ServidorSimple_Uni.partida();
                }
            }
            cant_cli_cola.Series[1].Points.Add(new DataPoint(0.3, ServidorSimple_Uni.CantPromClientesCola));
            dem_prom.Series[1].Points.Add(new DataPoint(0.3, ServidorSimple_Uni.DemPromedio));
            utilizacion.Series[1].Points.Add(new DataPoint(0.3, ServidorSimple_Uni.UtilServidor));
            #endregion

            NrosAleatorios.ReiniciarR();

            #region Weibull 0.3
            tea = new List <double>()
            {
                0.3, 0.3
            };
            tds = new List <double>()
            {
                0.3, 0.3
            };
            ServidorSimple_Exp = new ServidorSimple('w', tea, tds);
            while (ServidorSimple_Exp.reloj < Convert.ToDouble(100))
            {
                char proximo_evento = ServidorSimple_Exp.rutinadetiempo();
                if (proximo_evento == 'a')
                {
                    ServidorSimple_Exp.arribo();
                }
                else
                {
                    ServidorSimple_Exp.partida();
                }
            }
            cant_cli_cola.Series[2].Points.Add(new DataPoint(0.3, ServidorSimple_Exp.CantPromClientesCola));
            dem_prom.Series[2].Points.Add(new DataPoint(0.3, ServidorSimple_Exp.DemPromedio));
            utilizacion.Series[2].Points.Add(new DataPoint(0.3, ServidorSimple_Exp.UtilServidor));
            #endregion

            NrosAleatorios.ReiniciarR();

            #region Exponencial 0.5
            ServidorSimple_Exp = new ServidorSimple(0.5, 0.5);
            while (ServidorSimple_Exp.reloj < Convert.ToDouble(100))
            {
                char proximo_evento = ServidorSimple_Exp.rutinadetiempo();
                if (proximo_evento == 'a')
                {
                    ServidorSimple_Exp.arribo();
                }
                else
                {
                    ServidorSimple_Exp.partida();
                }
            }
            punto = new DataPoint(0.5, ServidorSimple_Exp.CantPromClientesCola);
            cant_cli_cola.Series[0].Points.Add(punto);
            dem_prom.Series[0].Points.Add(new DataPoint(0.5, ServidorSimple_Exp.DemPromedio));
            utilizacion.Series[0].Points.Add(new DataPoint(0.5, ServidorSimple_Exp.UtilServidor));

            #endregion

            NrosAleatorios.ReiniciarR();

            #region Uniforme 0.5
            tea = new List <double>()
            {
                0.4, 0.6
            };
            tds = new List <double>()
            {
                0.4, 0.6
            };
            ServidorSimple_Uni = new ServidorSimple('u', tea, tds);
            while (ServidorSimple_Uni.reloj < Convert.ToDouble(100))
            {
                char proximo_evento = ServidorSimple_Uni.rutinadetiempo();
                if (proximo_evento == 'a')
                {
                    ServidorSimple_Uni.arribo();
                }
                else
                {
                    ServidorSimple_Uni.partida();
                }
            }
            cant_cli_cola.Series[1].Points.Add(new DataPoint(0.5, ServidorSimple_Uni.CantPromClientesCola));
            dem_prom.Series[1].Points.Add(new DataPoint(0.5, ServidorSimple_Uni.DemPromedio));
            utilizacion.Series[1].Points.Add(new DataPoint(0.5, ServidorSimple_Uni.UtilServidor));
            #endregion

            NrosAleatorios.ReiniciarR();

            #region Weibull 0.5
            tea = new List <double>()
            {
                0.5, 0.5
            };
            tds = new List <double>()
            {
                0.5, 0.5
            };
            ServidorSimple_Exp = new ServidorSimple('w', tea, tds);
            while (ServidorSimple_Exp.reloj < Convert.ToDouble(100))
            {
                char proximo_evento = ServidorSimple_Exp.rutinadetiempo();
                if (proximo_evento == 'a')
                {
                    ServidorSimple_Exp.arribo();
                }
                else
                {
                    ServidorSimple_Exp.partida();
                }
            }
            cant_cli_cola.Series[2].Points.Add(new DataPoint(0.5, ServidorSimple_Exp.CantPromClientesCola));
            dem_prom.Series[2].Points.Add(new DataPoint(0.5, ServidorSimple_Exp.DemPromedio));
            utilizacion.Series[2].Points.Add(new DataPoint(0.5, ServidorSimple_Exp.UtilServidor));
            #endregion

            NrosAleatorios.ReiniciarR();

            #region Exponencial 0.7
            ServidorSimple_Exp = new ServidorSimple(0.7, 0.7);
            while (ServidorSimple_Exp.reloj < Convert.ToDouble(100))
            {
                char proximo_evento = ServidorSimple_Exp.rutinadetiempo();
                if (proximo_evento == 'a')
                {
                    ServidorSimple_Exp.arribo();
                }
                else
                {
                    ServidorSimple_Exp.partida();
                }
            }
            punto = new DataPoint(0.7, ServidorSimple_Exp.CantPromClientesCola);
            cant_cli_cola.Series[0].Points.Add(punto);
            dem_prom.Series[0].Points.Add(new DataPoint(0.7, ServidorSimple_Exp.DemPromedio));
            utilizacion.Series[0].Points.Add(new DataPoint(0.7, ServidorSimple_Exp.UtilServidor));
            #endregion

            NrosAleatorios.ReiniciarR();

            #region Uniforme 0.7
            tea = new List <double>()
            {
                0.7, 0.99
            };
            tds = new List <double>()
            {
                0.7, 0.99
            };
            ServidorSimple_Uni = new ServidorSimple('u', tea, tds);
            while (ServidorSimple_Uni.reloj < Convert.ToDouble(100))
            {
                char proximo_evento = ServidorSimple_Uni.rutinadetiempo();
                if (proximo_evento == 'a')
                {
                    ServidorSimple_Uni.arribo();
                }
                else
                {
                    ServidorSimple_Uni.partida();
                }
            }
            cant_cli_cola.Series[1].Points.Add(new DataPoint(0.7, ServidorSimple_Uni.CantPromClientesCola));
            dem_prom.Series[1].Points.Add(new DataPoint(0.7, ServidorSimple_Uni.DemPromedio));
            utilizacion.Series[1].Points.Add(new DataPoint(0.7, ServidorSimple_Uni.UtilServidor));
            #endregion

            NrosAleatorios.ReiniciarR();

            #region Weibull 0.7
            tea = new List <double>()
            {
                0.7, 0.7
            };
            tds = new List <double>()
            {
                0.7, 0.7
            };
            ServidorSimple_Exp = new ServidorSimple('w', tea, tds);
            while (ServidorSimple_Exp.reloj < Convert.ToDouble(100))
            {
                char proximo_evento = ServidorSimple_Exp.rutinadetiempo();
                if (proximo_evento == 'a')
                {
                    ServidorSimple_Exp.arribo();
                }
                else
                {
                    ServidorSimple_Exp.partida();
                }
            }
            cant_cli_cola.Series[2].Points.Add(new DataPoint(0.7, ServidorSimple_Exp.CantPromClientesCola));
            dem_prom.Series[2].Points.Add(new DataPoint(0.7, ServidorSimple_Exp.DemPromedio));
            utilizacion.Series[2].Points.Add(new DataPoint(0.7, ServidorSimple_Exp.UtilServidor));
            #endregion

            NrosAleatorios.ReiniciarN();
        }
Beispiel #4
0
        private void btn_simular_Click(object sender, EventArgs e)
        {
            int msj = Validar(this.Controls);

            if (msj == 0)
            {
                String nom_graf = "Weibull";

                cli_cola    = new List <double>();
                dem_prom    = new List <double>();
                utilizacion = new List <double>();

                cli_en_cola.Series.Clear();
                dem_prom_cli.Series.Clear();
                utilizacion_serv.Series.Clear();

                cli_en_cola.Series.Add(nom_graf);
                cli_en_cola.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                cli_en_cola.Series[nom_graf].Color       = Color.Green;
                cli_en_cola.Series[nom_graf].BorderWidth = 3;

                dem_prom_cli.Series.Add(nom_graf);
                dem_prom_cli.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                dem_prom_cli.Series[nom_graf].Color       = Color.Red;
                dem_prom_cli.Series[nom_graf].BorderWidth = 3;

                utilizacion_serv.Series.Add(nom_graf);
                utilizacion_serv.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                utilizacion_serv.Series[nom_graf].Color       = Color.Blue;
                utilizacion_serv.Series[nom_graf].BorderWidth = 3;

                NrosAleatorios.GenerarNros(Convert.ToInt32(txtHs.Text));

                for (int i = 0; i < tiempos.Length; i++)
                {
                    ServidorSimple ServidorSimple;
                    TDS = new List <double>();
                    TEA = new List <double>();

                    if (arribo)
                    {
                        TEA.Add(Convert.ToDouble(txtTEA_a.Text));
                        TEA.Add(Convert.ToDouble(txtTEA_b.Text));
                        TDS.Add(tiempos[i]);
                        TDS.Add(tiempos[i]);
                        ServidorSimple = new ServidorSimple('w', TEA, TDS);
                    }
                    else
                    {
                        TDS.Add(Convert.ToDouble(txtTDS_a.Text));
                        TDS.Add(Convert.ToDouble(txtTDS_b.Text));
                        TEA.Add(tiempos[i]);
                        TEA.Add(tiempos[i]);
                        ServidorSimple = new ServidorSimple('w', TEA, TDS);
                    }

                    while (ServidorSimple.reloj < Convert.ToDouble(txtHs.Text))
                    {
                        char proximo_evento = ServidorSimple.rutinadetiempo();
                        if (proximo_evento == 'a')
                        {
                            ServidorSimple.arribo();
                        }
                        else
                        {
                            ServidorSimple.partida();
                        }
                    }

                    DataPoint punto = new DataPoint(tiempos[i], ServidorSimple.CantPromClientesCola);
                    cli_en_cola.Series[nom_graf].Points.Add(punto);
                    cli_cola.Add(ServidorSimple.CantPromClientesCola);

                    punto = new DataPoint(tiempos[i], ServidorSimple.DemPromedio);
                    dem_prom_cli.Series[nom_graf].Points.Add(punto);
                    dem_prom.Add(ServidorSimple.DemPromedio);

                    punto = new DataPoint(tiempos[i], ServidorSimple.UtilServidor);
                    utilizacion_serv.Series[nom_graf].Points.Add(punto);
                    utilizacion.Add(ServidorSimple.UtilServidor);

                    NrosAleatorios.ReiniciarR();
                }

                cli_en_cola.ChartAreas[0].AxisY.Maximum      = DameMaximo(cli_cola) * 1.2;
                dem_prom_cli.ChartAreas[0].AxisY.Maximum     = DameMaximo(dem_prom) * 1.2;
                utilizacion_serv.ChartAreas[0].AxisY.Maximum = DameMaximo(utilizacion) * 1.2;

                NrosAleatorios.ReiniciarN();
            }
            else
            {
                string mensaje = null;
                switch (msj)
                {
                case (1):
                    mensaje = "Existen campos vacíos.";
                    break;

                case (2):
                    mensaje = "Verifique el formato las horas: deben ser enteras.";
                    break;

                case (3):
                    mensaje = "Los parámetros del TDS tienen que ser números decimales entre 0,1 y 1.";
                    break;

                case (4):
                    mensaje = "Los parámetros del TEA tienen que ser números decimales entre 0,1 y 1.";
                    break;

                case (5):
                    mensaje = "Los parámetros del TDS tienen que ser números decimales entre 0,1 y 1.";
                    break;

                case (6):
                    mensaje = "Los parámetros del TEA tienen que ser números decimales entre 0,1 y 1.";
                    break;

                case (7):
                    mensaje = "Debe ingresar los parámetros del TEA o del TDS";
                    break;

                default: break;
                }
                MessageBox.Show(mensaje, "¡ Atención !", MessageBoxButtons.OK);
            }
        }
Beispiel #5
0
        private void btn_simular_Click(object sender, EventArgs e)
        {
            int msj = Validar(this.Controls);

            if (msj == 0)
            {
                String nom_graf = "Exponencial";

                c = form_cantidadservidores.nro + 1;

                cli_en_cola_s1.Series.Clear();
                cli_en_cola_s2.Series.Clear();
                cli_en_cola_s3.Series.Clear();
                cli_en_cola_s4.Series.Clear();

                dem_prom_cli_s1.Series.Clear();
                dem_prom_cli_s2.Series.Clear();
                dem_prom_cli_s3.Series.Clear();
                dem_prom_cli_s4.Series.Clear();

                utilizacion_serv1.Series.Clear();
                utilizacion_serv2.Series.Clear();
                utilizacion_serv3.Series.Clear();
                utilizacion_serv4.Series.Clear();

                cli_cola1    = new List <double>();
                dem_prom1    = new List <double>();
                utilizacion1 = new List <double>();

                cli_cola2    = new List <double>();
                dem_prom2    = new List <double>();
                utilizacion2 = new List <double>();

                cli_cola3    = new List <double>();
                dem_prom3    = new List <double>();
                utilizacion3 = new List <double>();

                cli_cola4    = new List <double>();
                dem_prom4    = new List <double>();
                utilizacion4 = new List <double>();

                cli_en_cola_s1.Series.Add(nom_graf);
                cli_en_cola_s1.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                cli_en_cola_s1.Series[nom_graf].Color       = Color.Green;
                cli_en_cola_s1.Series[nom_graf].BorderWidth = 3;

                cli_en_cola_s2.Series.Add(nom_graf);
                cli_en_cola_s2.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                cli_en_cola_s2.Series[nom_graf].Color       = Color.Green;
                cli_en_cola_s2.Series[nom_graf].BorderWidth = 3;

                cli_en_cola_s3.Series.Add(nom_graf);
                cli_en_cola_s3.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                cli_en_cola_s3.Series[nom_graf].Color       = Color.Green;
                cli_en_cola_s3.Series[nom_graf].BorderWidth = 3;

                cli_en_cola_s4.Series.Add(nom_graf);
                cli_en_cola_s4.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                cli_en_cola_s4.Series[nom_graf].Color       = Color.Green;
                cli_en_cola_s4.Series[nom_graf].BorderWidth = 3;

                dem_prom_cli_s1.Series.Add(nom_graf);
                dem_prom_cli_s1.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                dem_prom_cli_s1.Series[nom_graf].Color       = Color.Red;
                dem_prom_cli_s1.Series[nom_graf].BorderWidth = 3;

                dem_prom_cli_s2.Series.Add(nom_graf);
                dem_prom_cli_s2.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                dem_prom_cli_s2.Series[nom_graf].Color       = Color.Red;
                dem_prom_cli_s2.Series[nom_graf].BorderWidth = 3;

                dem_prom_cli_s3.Series.Add(nom_graf);
                dem_prom_cli_s3.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                dem_prom_cli_s3.Series[nom_graf].Color       = Color.Red;
                dem_prom_cli_s3.Series[nom_graf].BorderWidth = 3;

                dem_prom_cli_s4.Series.Add(nom_graf);
                dem_prom_cli_s4.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                dem_prom_cli_s4.Series[nom_graf].Color       = Color.Red;
                dem_prom_cli_s4.Series[nom_graf].BorderWidth = 3;

                utilizacion_serv1.Series.Add(nom_graf);
                utilizacion_serv1.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                utilizacion_serv1.Series[nom_graf].Color       = Color.Blue;
                utilizacion_serv1.Series[nom_graf].BorderWidth = 3;

                utilizacion_serv2.Series.Add(nom_graf);
                utilizacion_serv2.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                utilizacion_serv2.Series[nom_graf].Color       = Color.Blue;
                utilizacion_serv2.Series[nom_graf].BorderWidth = 3;

                utilizacion_serv3.Series.Add(nom_graf);
                utilizacion_serv3.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                utilizacion_serv3.Series[nom_graf].Color       = Color.Blue;
                utilizacion_serv3.Series[nom_graf].BorderWidth = 3;

                utilizacion_serv4.Series.Add(nom_graf);
                utilizacion_serv4.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                utilizacion_serv4.Series[nom_graf].Color       = Color.Blue;
                utilizacion_serv4.Series[nom_graf].BorderWidth = 3;

                NrosAleatorios.GenerarNros(Convert.ToInt32(txtHs.Text));

                for (int i = 0; i < tiempos.Length; i++)
                {
                    ServidoresSerie ServidoresSerie_Exp;
                    TDS = new List <double>();

                    if (arribo)
                    {
                        TDS.Add(tiempos[i]);
                        TDS.Add(tiempos[i]);
                        TDS.Add(tiempos[i]);
                        TDS.Add(tiempos[i]);
                        ServidoresSerie_Exp = new ServidoresSerie(c, Convert.ToDouble(txtTEA.Text), TDS);
                    }
                    else
                    {
                        TDS.Add(Convert.ToDouble(this.txtTDS1.Text));
                        TDS.Add(Convert.ToDouble(this.txtTDS2.Text));
                        TDS.Add(Convert.ToDouble(this.txtTDS3.Text));
                        TDS.Add(Convert.ToDouble(this.txtTDS4.Text));
                        ServidoresSerie_Exp = new ServidoresSerie(c, tiempos[i], TDS);
                    }

                    while (ServidoresSerie_Exp.reloj < Convert.ToDouble(txtHs.Text))
                    {
                        char proximo_evento = ServidoresSerie_Exp.rutinadetiempo();
                        if (proximo_evento == 'a')
                        {
                            ServidoresSerie_Exp.arribo();
                        }
                        else if (proximo_evento == 'b')
                        {
                            ServidoresSerie_Exp.partida_arribo(proximo_evento);
                        }
                        else if (proximo_evento == 'c')
                        {
                            ServidoresSerie_Exp.partida_arribo(proximo_evento);
                        }
                        else if (proximo_evento == 'd')
                        {
                            ServidoresSerie_Exp.partida_arribo(proximo_evento);
                        }
                        else
                        {
                            ServidoresSerie_Exp.partida();
                        }
                    }

                    cli_en_cola_s1.Series[nom_graf].Points.Add(new DataPoint(tiempos[i], ServidoresSerie_Exp.CantPromClientesColaS(0)));
                    cli_en_cola_s2.Series[nom_graf].Points.Add(new DataPoint(tiempos[i], ServidoresSerie_Exp.CantPromClientesColaS(1)));
                    cli_en_cola_s3.Series[nom_graf].Points.Add(new DataPoint(tiempos[i], ServidoresSerie_Exp.CantPromClientesColaS(2)));
                    cli_en_cola_s4.Series[nom_graf].Points.Add(new DataPoint(tiempos[i], ServidoresSerie_Exp.CantPromClientesColaS(3)));
                    cli_cola1.Add(ServidoresSerie_Exp.CantPromClientesColaS(0));
                    cli_cola2.Add(ServidoresSerie_Exp.CantPromClientesColaS(1));
                    cli_cola3.Add(ServidoresSerie_Exp.CantPromClientesColaS(2));
                    cli_cola4.Add(ServidoresSerie_Exp.CantPromClientesColaS(3));

                    dem_prom_cli_s1.Series[nom_graf].Points.Add(new DataPoint(tiempos[i], ServidoresSerie_Exp.DemPromedioS(0)));
                    dem_prom_cli_s2.Series[nom_graf].Points.Add(new DataPoint(tiempos[i], ServidoresSerie_Exp.DemPromedioS(1)));
                    dem_prom_cli_s3.Series[nom_graf].Points.Add(new DataPoint(tiempos[i], ServidoresSerie_Exp.DemPromedioS(2)));
                    dem_prom_cli_s4.Series[nom_graf].Points.Add(new DataPoint(tiempos[i], ServidoresSerie_Exp.DemPromedioS(3)));
                    dem_prom1.Add(ServidoresSerie_Exp.DemPromedioS(0));
                    dem_prom2.Add(ServidoresSerie_Exp.DemPromedioS(1));
                    dem_prom3.Add(ServidoresSerie_Exp.DemPromedioS(2));
                    dem_prom4.Add(ServidoresSerie_Exp.DemPromedioS(3));

                    utilizacion_serv1.Series[nom_graf].Points.Add(new DataPoint(tiempos[i], ServidoresSerie_Exp.UtilServidor(0)));
                    utilizacion_serv2.Series[nom_graf].Points.Add(new DataPoint(tiempos[i], ServidoresSerie_Exp.UtilServidor(1)));
                    utilizacion_serv3.Series[nom_graf].Points.Add(new DataPoint(tiempos[i], ServidoresSerie_Exp.UtilServidor(2)));
                    utilizacion_serv4.Series[nom_graf].Points.Add(new DataPoint(tiempos[i], ServidoresSerie_Exp.UtilServidor(3)));
                    utilizacion1.Add(ServidoresSerie_Exp.UtilServidor(0));
                    utilizacion2.Add(ServidoresSerie_Exp.UtilServidor(1));
                    utilizacion3.Add(ServidoresSerie_Exp.UtilServidor(2));
                    utilizacion4.Add(ServidoresSerie_Exp.UtilServidor(3));

                    NrosAleatorios.ReiniciarR();
                }

                cli_en_cola_s1.ChartAreas[0].AxisY.Maximum    = DameMaximo(cli_cola1) * 1.2;
                dem_prom_cli_s1.ChartAreas[0].AxisY.Maximum   = DameMaximo(dem_prom1) * 1.2;
                utilizacion_serv1.ChartAreas[0].AxisY.Maximum = DameMaximo(utilizacion1) * 1.2;

                cli_en_cola_s2.ChartAreas[0].AxisY.Maximum    = DameMaximo(cli_cola2) * 1.2;
                dem_prom_cli_s2.ChartAreas[0].AxisY.Maximum   = DameMaximo(dem_prom2) * 1.2;
                utilizacion_serv2.ChartAreas[0].AxisY.Maximum = DameMaximo(utilizacion2) * 1.2;

                cli_en_cola_s3.ChartAreas[0].AxisY.Maximum    = DameMaximo(cli_cola3) * 1.2;
                dem_prom_cli_s3.ChartAreas[0].AxisY.Maximum   = DameMaximo(dem_prom3) * 1.2;
                utilizacion_serv3.ChartAreas[0].AxisY.Maximum = DameMaximo(utilizacion3) * 1.2;

                cli_en_cola_s4.ChartAreas[0].AxisY.Maximum    = DameMaximo(cli_cola4) * 1.2;
                dem_prom_cli_s4.ChartAreas[0].AxisY.Maximum   = DameMaximo(dem_prom4) * 1.2;
                utilizacion_serv4.ChartAreas[0].AxisY.Maximum = DameMaximo(utilizacion4) * 1.2;

                NrosAleatorios.ReiniciarN();
            }
            else
            {
                string mensaje = null;
                switch (msj)
                {
                case (1):
                    mensaje = "Existen campos vacíos.";
                    break;

                case (2):
                    mensaje = "Verifique el formato las horas: deben ser enteras.";
                    break;

                case (3):
                    mensaje = "Los TDS tienen que ser números decimales entre 0,1 y 1.";
                    break;

                case (4):
                    mensaje = "El TEA tiene que ser un decimal entre 0,1 y 1.";
                    break;

                case (5):
                    mensaje = "Los TDS tienen que ser números decimales entre 0,1 y 1.";
                    break;

                case (6):
                    mensaje = "El TEA tiene que ser un decimal entre 0,1 y 1.";
                    break;

                default: break;
                }
                MessageBox.Show(mensaje, "¡ Atención !", MessageBoxButtons.OK);
            }
        }
        private void btn_simular_Click(object sender, EventArgs e)
        {
            int msj = Validar(this.Controls);

            if (msj == 0)
            {
                cli_en_cola_s1.Series.Clear();
                cli_en_cola_s2.Series.Clear();
                cli_en_cola_s3.Series.Clear();

                dem_prom_cli_s1.Series.Clear();
                dem_prom_cli_s2.Series.Clear();
                dem_prom_cli_s3.Series.Clear();

                utilizacion_serv1.Series.Clear();
                utilizacion_serv2.Series.Clear();
                utilizacion_serv3.Series.Clear();

                List <double> cli_cola1    = new List <double>();
                List <double> dem_prom1    = new List <double>();
                List <double> utilizacion1 = new List <double>();

                List <double> cli_cola2    = new List <double>();
                List <double> dem_prom2    = new List <double>();
                List <double> utilizacion2 = new List <double>();

                List <double> cli_cola3    = new List <double>();
                List <double> dem_prom3    = new List <double>();
                List <double> utilizacion3 = new List <double>();

                cli_en_cola_s1.Series.Add(nom_graf);
                cli_en_cola_s1.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                cli_en_cola_s1.Series[nom_graf].Color       = Color.Green;
                cli_en_cola_s1.Series[nom_graf].BorderWidth = 3;

                cli_en_cola_s2.Series.Add(nom_graf);
                cli_en_cola_s2.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                cli_en_cola_s2.Series[nom_graf].Color       = Color.Green;
                cli_en_cola_s2.Series[nom_graf].BorderWidth = 3;

                cli_en_cola_s3.Series.Add(nom_graf);
                cli_en_cola_s3.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                cli_en_cola_s3.Series[nom_graf].Color       = Color.Green;
                cli_en_cola_s3.Series[nom_graf].BorderWidth = 3;

                dem_prom_cli_s1.Series.Add(nom_graf);
                dem_prom_cli_s1.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                dem_prom_cli_s1.Series[nom_graf].Color       = Color.Red;
                dem_prom_cli_s1.Series[nom_graf].BorderWidth = 3;

                dem_prom_cli_s2.Series.Add(nom_graf);
                dem_prom_cli_s2.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                dem_prom_cli_s2.Series[nom_graf].Color       = Color.Red;
                dem_prom_cli_s2.Series[nom_graf].BorderWidth = 3;

                dem_prom_cli_s3.Series.Add(nom_graf);
                dem_prom_cli_s3.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                dem_prom_cli_s3.Series[nom_graf].Color       = Color.Red;
                dem_prom_cli_s3.Series[nom_graf].BorderWidth = 3;

                utilizacion_serv1.Series.Add(nom_graf);
                utilizacion_serv1.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                utilizacion_serv1.Series[nom_graf].Color       = Color.Blue;
                utilizacion_serv1.Series[nom_graf].BorderWidth = 3;

                utilizacion_serv2.Series.Add(nom_graf);
                utilizacion_serv2.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                utilizacion_serv2.Series[nom_graf].Color       = Color.Blue;
                utilizacion_serv2.Series[nom_graf].BorderWidth = 3;

                utilizacion_serv3.Series.Add(nom_graf);
                utilizacion_serv3.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                utilizacion_serv3.Series[nom_graf].Color       = Color.Blue;
                utilizacion_serv3.Series[nom_graf].BorderWidth = 3;

                NrosAleatorios.GenerarNros(Convert.ToInt32(txtHs.Text));

                double max = Convert.ToDouble(txtPmax.Text);

                for (double i = Convert.ToDouble(txtPmin.Text); i <= max; i = i + 0.05)
                {
                    Servidores_paralelos_con_colas_indep servidores = new Servidores_paralelos_con_colas_indep('u', 0.1, 0.4, 0.1, 0.4, int.Parse(txtNroMax.Text), i);

                    while (servidores.reloj < Convert.ToDouble(txtHs.Text))
                    {
                        char proximo_evento = servidores.rutinadetiempo();
                        if (proximo_evento == 'a')
                        {
                            servidores.arribo();
                            servidores.cambio();
                        }
                        else
                        {
                            servidores.partida();
                        }
                    }

                    cli_en_cola_s1.Series[nom_graf].Points.Add(new DataPoint(i, servidores.CantPromClientesColaS(0)));
                    cli_en_cola_s2.Series[nom_graf].Points.Add(new DataPoint(i, servidores.CantPromClientesColaS(1)));
                    cli_en_cola_s3.Series[nom_graf].Points.Add(new DataPoint(i, servidores.CantPromClientesColaS(2)));
                    cli_cola1.Add(servidores.CantPromClientesColaS(0));
                    cli_cola2.Add(servidores.CantPromClientesColaS(1));
                    cli_cola3.Add(servidores.CantPromClientesColaS(2));

                    dem_prom_cli_s1.Series[nom_graf].Points.Add(new DataPoint(i, servidores.DemPromedioS(0)));
                    dem_prom_cli_s2.Series[nom_graf].Points.Add(new DataPoint(i, servidores.DemPromedioS(1)));
                    dem_prom_cli_s3.Series[nom_graf].Points.Add(new DataPoint(i, servidores.DemPromedioS(2)));
                    dem_prom1.Add(servidores.DemPromedioS(0));
                    dem_prom2.Add(servidores.DemPromedioS(1));
                    dem_prom3.Add(servidores.DemPromedioS(2));

                    utilizacion_serv1.Series[nom_graf].Points.Add(new DataPoint(i, servidores.UtilServidor(0)));
                    utilizacion_serv2.Series[nom_graf].Points.Add(new DataPoint(i, servidores.UtilServidor(1)));
                    utilizacion_serv3.Series[nom_graf].Points.Add(new DataPoint(i, servidores.UtilServidor(2)));
                    utilizacion1.Add(servidores.UtilServidor(0));
                    utilizacion2.Add(servidores.UtilServidor(1));
                    utilizacion3.Add(servidores.UtilServidor(2));

                    NrosAleatorios.ReiniciarR();
                }


                cli_en_cola_s1.ChartAreas[0].AxisY.Maximum    = DameMaximo(cli_cola1) * 1.2;
                dem_prom_cli_s1.ChartAreas[0].AxisY.Maximum   = DameMaximo(dem_prom1) * 1.2;
                utilizacion_serv1.ChartAreas[0].AxisY.Maximum = DameMaximo(utilizacion1) * 1.2;

                cli_en_cola_s2.ChartAreas[0].AxisY.Maximum    = DameMaximo(cli_cola2) * 1.2;
                dem_prom_cli_s2.ChartAreas[0].AxisY.Maximum   = DameMaximo(dem_prom2) * 1.2;
                utilizacion_serv2.ChartAreas[0].AxisY.Maximum = DameMaximo(utilizacion2) * 1.2;

                cli_en_cola_s3.ChartAreas[0].AxisY.Maximum    = DameMaximo(cli_cola3) * 1.2;
                dem_prom_cli_s3.ChartAreas[0].AxisY.Maximum   = DameMaximo(dem_prom3) * 1.2;
                utilizacion_serv3.ChartAreas[0].AxisY.Maximum = DameMaximo(utilizacion3) * 1.2;

                NrosAleatorios.ReiniciarN();
            }
            else
            {
                string mensaje = null;
                switch (msj)
                {
                case (1):
                    mensaje = "Existen campos vacíos.";
                    break;

                case (2):
                    mensaje = "Verifique el formato las horas: deben ser enteras.";
                    break;

                case (3):
                    mensaje = "Las probabilidades deben ser números decimales menores a 1.";
                    break;

                case (4):
                    mensaje = "La probabilidad mínima debe ser menor a la probabilidad máxima.";
                    break;

                case (5):
                    mensaje = "Las probabilidades no deben ser mayores a 1.";
                    break;

                case (6):
                    mensaje = "El número máximo de clientes en cola debe ser un número entero positivo.";
                    break;

                default: break;
                }
                MessageBox.Show(mensaje, "¡ Atención !", MessageBoxButtons.OK);
            }
        }