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(); }
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); } }
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); } }