private void btnGenerar1Mas_Click(object sender, EventArgs e) { try { if (btnGenerar.Enabled) { generador.agregar_fila_dgv(dgvNumeros); } dgvNumeros.FirstDisplayedScrollingRowIndex = dgvNumeros.RowCount - 1; } catch { IOException ex = new IOException(); ex.validar_Carga(txtC, txtG, txtK, txtXo, txtNumerosAGenerar, null, btnGenerar1Mas); } }
private void btnGenerar_Click(object sender, EventArgs e) { try { btnGenerar1Mas.Enabled = false; btnGenerar1Mas.Enabled = true; //X0 float Xo = float.Parse(txtXo.Text); float k = float.Parse(txtK.Text); //m periodo float g = float.Parse(txtG.Text); //Cantidad de n° a generar int cant = Convert.ToInt32(txtNumerosAGenerar.Text); // este if asegura que si o si un solo radiobutton esté seleccionado if ((rbtMixto.Checked && !rbtMultiplicativo.Checked) || (!rbtMixto.Checked && rbtMultiplicativo.Checked)) { if (rbtMixto.Checked) { //c cte aditiva float c = float.Parse(txtC.Text); dgvNumeros.Columns[1].HeaderText = "a.Xi + c"; generador = new GeneradorLineal(Xo, k, c, g); } else { dgvNumeros.Columns[1].HeaderText = "a.Xi"; generador = new GeneradorMultiplicativo(Xo, k, g); } // llena la datagriedview con los n° pseudoaleatorios generador.llenar_dgv(dgvNumeros, cant); } } catch { IOException ex = new IOException(); ex.validar_Carga(txtC, txtG, txtK, txtXo, txtNumerosAGenerar, null, btnGenerar1Mas); } }
private void btnRealizarPrueba_Click(object sender, EventArgs e) { try { generar_Histograma.Enabled = true; txtNumerosAGenerar.Focus(); int nroIntervalos; int cant_numeros = Convert.ToInt32(txtNumerosAGenerar.Text); int cant_minima; if (rdb_Intervalo5.Checked) { cant_minima = 30; nroIntervalos = 5; } else if (rdb_Intervalo10.Checked) { cant_minima = 5 * 10; nroIntervalos = 10; } else if (rdb_Intervalo15.Checked) { cant_minima = 5 * 15; nroIntervalos = 15; } else if (rbtOtro.Checked) { int otroNum = int.Parse(txtOtro.Text); cant_minima = 5 * otroNum; nroIntervalos = otroNum; } else { return; } float[] listaNumeros; if (cant_numeros >= cant_minima) { if (rbtMetLeng.Checked) { generador = new GeneradorLenguaje(); listaNumeros = generador.generarPseudoaleatorios(cant_numeros); } else if (rbtMetMixto.Checked) { float k = float.Parse(txtK.Text); float g = float.Parse(txtG.Text); float Xo = float.Parse(txtXo.Text); float c = float.Parse(txtC.Text); generador = new GeneradorLineal(Xo, k, c, g); listaNumeros = generador.generarPseudoaleatorios(cant_numeros); } else { return; } dgvTabla.Rows.Clear(); for (int i = 0; i < cant_numeros; i++) { dgvTabla.Rows.Add(i + 1, string.Format("{0:N4}", listaNumeros[i])); } //determinación de intervalos y de frecuencias esperadas float fe = cant_numeros / nroIntervalos; float[] fe_array = new float[nroIntervalos]; fe_array[0] = fe; float tamañoIntervalo = (float)1 / nroIntervalos; float[] desde = new float[nroIntervalos]; float[] hasta = new float[nroIntervalos]; desde[0] = 0; hasta[0] = tamañoIntervalo; for (int i = 1; i < nroIntervalos; i++) { fe_array[i] = fe; desde[i] = hasta[i - 1]; hasta[i] = hasta[i - 1] + tamañoIntervalo; } //determinación de frecuencias observadas float[] fo_array = new float[nroIntervalos]; for (int i = 0; i < cant_numeros; i++) { for (int j = 0; j < nroIntervalos; j++) { if (listaNumeros[i] < hasta[j]) { fo_array[j] += 1; break; } } } //prueba de bondad de ajuste prueba = new JICuadrada(); prueba.realizar_prueba_en_dgv(dgvTablaChi, desde, hasta, fo_array, fe_array); // Cargamos el histograma int[,] matrizFrecuencias = new int[2, nroIntervalos]; for (int i = 0; i < nroIntervalos; i++) { matrizFrecuencias[1, i] = Convert.ToInt32(fo_array[i]); matrizFrecuencias[0, i] = Convert.ToInt32(fe_array[i]); } histograma1 = new Histograma(); histograma1.cargarHistograma(nroIntervalos, matrizFrecuencias, cant_numeros); } else { MessageBox.Show("Debe solicitar al menos " + cant_minima.ToString() + " números.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); txtNumerosAGenerar.Clear(); txtNumerosAGenerar.Focus(); } } catch { IOException ex = new IOException(); if (rbtMetLeng.Checked) { if (txtNumerosAGenerar.Text == "") { MessageBox.Show("Cargue todos los casilleros por favor", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning); } if (rbtOtro.Checked && txtOtro.Text == "") { MessageBox.Show("Cargue todos los casilleros por favor", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } if (rbtMetMixto.Checked) { if (rbtOtro.Checked && txtOtro.Text == "") { MessageBox.Show("Cargue todos los casilleros por favor", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { ex.validar_Carga(txtNumerosAGenerar, txtXo, txtK, txtG, txtC, txtOtro, null); } } } }