public NumeroComplejo DividirComplejos(NumeroComplejo z2) { NumeroComplejo z3 = new NumeroComplejo(0, 0, Forma.Binomica); NumeroComplejo z = new NumeroComplejo(0, 0, Forma.Binomica); z = this.formaBinomica(); z2 = z2.formaBinomica(); z3.a = ((z.a * z2.a) + (z.b * z2.b)) / (Math.Pow(z2.a, 2) + Math.Pow(z2.b, 2)); z3.b = ((z.b * z2.a) - (z.a * z2.b)) / (Math.Pow(z2.a, 2) + Math.Pow(z2.b, 2)); return(z3); }
public NumeroComplejo multiplicarComplejos(NumeroComplejo z2) { NumeroComplejo z3 = new NumeroComplejo(0, 0, Forma.Binomica); NumeroComplejo z = new NumeroComplejo(0, 0, Forma.Binomica); z = this.formaBinomica(); z2 = z2.formaBinomica(); z3.a = (z.a * z2.a) - (z.b * z2.b); z3.b = (z.a * z2.b) + (z2.a * z.b); return(z3); }
private void buttonOperar_Click(object sender, EventArgs e) { if (textBoxComplejo.Text == "" || textBoxIndice.Text == "") { MessageBox.Show("Debe Ingresar los 2 campos para operar!"); } else { OperacionesBasicas OB = new OperacionesBasicas(); if (!OB.esComplejoValido(this.textBoxComplejo.Text) || !this.esIndiceValido(textBoxIndice.Text)) // || !OperacionesBasicas.esComplejoValido(textBoxIndice.Text) { MessageBox.Show("Debe ingresar el número complejo de la siguiente manera: forma binómica (a;b) o forma polar [a;b] - El índice debe ser un entero"); } else { int n; NumeroComplejo z1 = OB.parsearComplejo(textBoxComplejo.Text); Int32.TryParse(textBoxIndice.Text, out n); if (comboBoxOperaciones.SelectedIndex == -1) { MessageBox.Show("Debe seleccionar una operación!"); } else { switch (comboBoxOperaciones.SelectedIndex) { case 0: //Potenciación NumeroComplejo zres = new NumeroComplejo(0, 0, NumeroComplejo.Forma.Binomica); zres = z1.potencia(n); comboBox1.Items.Clear(); comboBox1.Items.Add("(" + Math.Round(zres.formaBinomica().a, 3) + " ; " + Math.Round(zres.formaBinomica().b, 3) + ")" + " - [" + Math.Round(zres.formaPolar().a, 3) + " ; " + Math.Round(zres.formaPolar().b, 3) + " rad]"); comboBox1.SelectedIndex = 0; break; case 1: //Radicación List <NumeroComplejo> listaResultados = z1.raiz(n); int k = 0; comboBox1.Items.Clear(); listaResultados.ForEach(delegate(NumeroComplejo Z) { comboBox1.Items.Add("K=" + k + "-> (" + Math.Round(Z.formaBinomica().a, 3) + " ; " + Math.Round(Z.formaBinomica().b, 3) + ")" + " - [" + Math.Round(Z.formaPolar().a, 3) + " ; " + Math.Round(Z.formaPolar().b, 3) + " rad]"); k++; }); comboBox1.SelectedIndex = 0; break; } } } } }
public NumeroComplejo restarComplejos(NumeroComplejo z2) { NumeroComplejo z3 = new NumeroComplejo(0, 0, Forma.Binomica); if (this.forma == Forma.Binomica) { if (z2.forma == Forma.Binomica) { z3.a = this.a - z2.a; z3.b = this.b - z2.b; return(z3); } else { z2 = z2.formaBinomica(); z3.a = this.a - z2.a; z3.b = this.b - z2.b; return(z3); } } else //this en forma polar { NumeroComplejo z = new NumeroComplejo(0, 0, Forma.Binomica); z = this.formaBinomica(); //lo que tngo en this, lo paso a binomica y lo asigno a z if (z2.forma == Forma.Binomica) { z3.a = z.a - z2.a; z3.b = z.b - z2.b; return(z3.formaPolar()); } else { z2 = z2.formaBinomica(); z3.a = z.a - z2.a; z3.b = z.b - z2.b; return(z3.formaPolar()); } } }
private void buttonTransformar_Click(object sender, EventArgs e) { OperacionesBasicas OB = new OperacionesBasicas(); if (!OB.esComplejoValido(this.textBoxComplejo.Text)) { MessageBox.Show("Debe ingresar el número complejo de la siguiente manera: forma binómica (a;b) o forma polar [a;b]"); } else { NumeroComplejo z1 = OB.parsearComplejo(textBoxComplejo.Text); if (z1.forma == NumeroComplejo.Forma.Binomica) { NumeroComplejo zRes = z1.formaPolar(); labelResultado.Text = "[" + Math.Round(zRes.a, 3) + ";" + Math.Round(zRes.b, 3) + "]"; } else { NumeroComplejo zRes = z1.formaBinomica(); labelResultado.Text = "(" + Math.Round(zRes.a, 3) + ";" + Math.Round(zRes.b, 3) + ")"; } } }
private void buttonOperar_Click(object sender, EventArgs e) { if (textBoxComplejo1.Text == "" || textBoxComplejo2.Text == "") { MessageBox.Show("Debe Ingresar los 2 números complejos para operar!"); } else { if (!this.esComplejoValido(textBoxComplejo1.Text) || !this.esComplejoValido(textBoxComplejo2.Text)) { MessageBox.Show("Debe Ingresar los números complejos de la siguiente manera: forma binómica (a;b) o forma polar [a;b]"); //MessageBox.Show(textBoxComplejo1.Text, textBoxComplejo2.Text); } else { //aca se sacarian los numeros de cada textbox, de su expresion regular, se crean los complejos y se ejecuta la operacion correspondiente //luego opero //por ahora los hardcodeo... //NumeroComplejo z1 = new NumeroComplejo(2, 3, NumeroComplejo.Forma.Binomica); //algo asi NumeroComplejo z1 = this.parsearComplejo(textBoxComplejo1.Text); NumeroComplejo z2 = this.parsearComplejo(textBoxComplejo2.Text); NumeroComplejo zres = new NumeroComplejo(0, 0, NumeroComplejo.Forma.Binomica); if (comboBoxOperaciones.SelectedIndex == -1) { MessageBox.Show("Debe seleccionar una operación!"); } else { switch (comboBoxOperaciones.SelectedIndex) { case 0: //sumar zres = z1.sumarComplejos(z2); break; case 1: //restar zres = z1.restarComplejos(z2); break; case 2: //mult zres = z1.multiplicarComplejos(z2); break; case 3: //dividir zres = z1.DividirComplejos(z2); break; } //Despues distinguir si imprimir [a,b] o (a,b) labelResultado.Text = "(" + Math.Round(zres.formaBinomica().a, 3) + " ; " + Math.Round(zres.formaBinomica().b, 3) + ")" + " - [" + Math.Round(zres.formaPolar().a, 3) + " ; " + Math.Round(zres.formaPolar().b, 3) + " rad]"; //armo un case con todas las posibles operaciones seleccionadas //por cada operacion, opero con los complejos } } } }