private void button1_Click(object sender, EventArgs e) { string str_nro1 = numero1.Text.Trim(); string str_nro2 = numero2.Text.Trim(); NumeroComplejoBinomico binomico1; NumeroComplejoBinomico binomico2; NumeroComplejoPolar polar1; NumeroComplejoPolar polar2; if (!numeroValido(str_nro1) || !numeroValido(str_nro2)) { MessageBox.Show("Los números ingresados no cumplen con el formato establecido. \nFormatos: (a,b) o [a;b].", null, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } if (str_nro1.Substring(0, 1).Equals("(")) { binomico1 = getBinomico(str_nro1); polar1 = OperadorDeComplejos.BinomicoAPolar(binomico1); NumeroComplejoBinomico aux = OperadorDeComplejos.PolarABinomico(polar1); } else { polar1 = getPolar(str_nro1); binomico1 = OperadorDeComplejos.PolarABinomico(polar1); } if (str_nro2.Substring(0, 1).Equals("(")) { binomico2 = getBinomico(str_nro2); polar2 = OperadorDeComplejos.BinomicoAPolar(binomico2); } else { polar2 = getPolar(str_nro2); binomico2 = OperadorDeComplejos.PolarABinomico(polar2); } binomico2.setParteReal(binomico2.ParteReal * -1); binomico2.setParteImaginaria(binomico2.ParteImaginaria * -1); NumeroComplejoBinomico sumadobinomico = OperadorDeComplejos.Sumar(binomico1, binomico2); NumeroComplejoPolar sumadopolar = OperadorDeComplejos.BinomicoAPolar(sumadobinomico); string str_sumadopolar = sumadopolar.ObtenerPolar(); label_resul.Text = str_sumadopolar; string str_sumadobinomico = sumadobinomico.ObtenerBinomica(); label7.Text = str_sumadobinomico; }
private void button1_Click(object sender, EventArgs e) { int tipoOperacion; int tipoFuncion1, tipoFuncion2; Double amplitud1 = 0; Double amplitud2 = 0; Double fase1 = 0; Double fase2 = 0; Double frecuencia1 = 0; Double frecuencia2 = 0; NumeroComplejoBinomico fasor1B; NumeroComplejoBinomico fasor2B; NumeroComplejoBinomico resultadoOperacionB; NumeroComplejoPolar resultadoOperacionP; // Valido que se ingresen solo números try { amplitud1 = Convert.ToDouble(numero1.Text.Trim()); amplitud2 = Convert.ToDouble(textBox4.Text.Trim()); fase1 = Convert.ToDouble(numero2.Text.Trim()); fase2 = Convert.ToDouble(textBox3.Text.Trim()); frecuencia1 = Convert.ToDouble(textBox1.Text.Trim()); frecuencia2 = Convert.ToDouble(textBox2.Text.Trim()); } catch { MessageBox.Show("Solo puede ingresar números.", null, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } // Valido que se indique si es SUMA o RESTA if (radioButton5.Checked) { tipoOperacion = 1; // SUMA es 1 y RESTA es 2 } else { if (radioButton6.Checked) { tipoOperacion = 2; } else { MessageBox.Show("Debe especificar si desea SUMAR o RESTAR.", null, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } // Valido que se indique si la primer función es COSENO o SENO if (radioButton1.Checked) { tipoFuncion1 = 1; // COSENO es 1 y SENO es 2 } else { if (radioButton2.Checked) { tipoFuncion1 = 2; } else { MessageBox.Show("Debe especificar si la primer función es SENO o COSENO.", null, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } // Valido que se indique si la segunda función es COSENO o SENO if (radioButton3.Checked) { tipoFuncion2 = 1; // COSENO es 1 y SENO es 2 } else { if (radioButton4.Checked) { tipoFuncion2 = 2; } else { MessageBox.Show("Debe especificar si la segunda función es SENO o COSENO.", null, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } // Valido que las frecuencias de las dos funciones sean iguales (así se puede aplicar fasores) if (!(frecuencia1 == frecuencia2)) { MessageBox.Show("Las frecuencias de ambas funciones deben ser iguales.", null, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } // Valido que ambas funciones sean SENO o COSENO if (radioButton1.Checked && radioButton4.Checked) { // Transformar la segunda función fase2 = fase2 - (1 / 2); } if (radioButton2.Checked && radioButton3.Checked) { // Transformar la primer función fase1 = fase1 + (1 / 2); } NumeroComplejoPolar fasor1p = new NumeroComplejoPolar(amplitud1, fase1); NumeroComplejoPolar fasor2p = new NumeroComplejoPolar(amplitud2, fase2); fasor1B = OperadorDeComplejos.PolarABinomico(fasor1p); fasor2B = OperadorDeComplejos.PolarABinomico(fasor2p); // Sumo o resto según la operación indicada if (radioButton5.Checked) { resultadoOperacionB = OperadorDeComplejos.Sumar(fasor1B, fasor2B); } else { fasor2B.setParteReal(fasor2B.ParteReal * -1); fasor2B.setParteImaginaria(fasor2B.ParteImaginaria * -1); resultadoOperacionB = OperadorDeComplejos.Sumar(fasor1B, fasor2B); } resultadoOperacionP = OperadorDeComplejos.BinomicoAPolar(resultadoOperacionB); string str_resultado = resultadoOperacionP.Modulo + "cos(" + frecuencia1 + "t+" + resultadoOperacionP.Angulo + "π)"; label11.Text = str_resultado; /* - validar que las frecuencias de ambas funciones son iguales * - ambas frecuencias son iguales SI, validar si ambas son senos o cosenos * NO, informar que ambas frecuencias deben ser iguales * * - ambas son senos o cosenos SI, armar fasor * NO, transformar a todo coseno o todo seno * * - armar fasor es obtener módulo y argumento (amplitud y fase) * - pasar a forma canónica * - sumar o restar (según la variable OPERACION) * - pasar a forma exponencial * - imprimir por pantalla */ }