Escriba un algoritmo que imprima las raíces ya sea real o compleja, de una ecuación cuadrática ax 2 + bx + c = 0 donde a, b, c son coeficientes reales. Desarrolle ese algoritmo de tal forma que se considere todas posibles contingencias que pueda ocurrir en el cálculo. 2
− b + − b − 4ac x= 2a ALGORITMO Inicio Paso 1º Paso 2º Paso 3º Paso 4º Paso 5º Paso 6º
hacer leer (a, b, c) Verificar que a sea diferente de cero Realizar los procedimientos de algoritmo Verificar que los elementos que se encuentran dentro de la raíz sean mayor a cero. Resolver el algoritmo Mostrar los valores resultantes.
DIAGRAMA DE FLUJO
INICIO
a
a! =0 b,c k=b*(-1) d=b*b e=4*a*c f=2*a g=d-e g< 0
h=sqrt (g) i=k+h
No existe raíz de número negativo.
j=k-h l=i/j m=j/f l, FIN
PSEUDOCODIGO Inicio Leer (a, b, c) Logaritmo (a, b, c) Mostrar (x, y) Fin Inicio Procedimiento leer (Ref: a<entero>Ref: b<entero>Ref: c <entero>) Inicio Hacer Leer a Hasta (a!=0) Leer b Leer c Fin Inicio Función Logaritmo (val...) Dim k, d, e, f, g, h, i, l, m; Inicio k= b+(*1); d= b*b; e= 4*a*c; f= 2*a; g= d - e; Si (g<0) entonces Mensaje (“No existe raiz de numero negativo”) Caso contrario h=sqrt (g); i=k+h; j=k-h; l=i/j; m=j/f; Retornar (l, m); Fin Inicio Procedimiento Mostrar (val: x:; y:) Inicio Imprimir (“Resultado uno” +x); Imprimir (“Resultado dos” +y); Fin Inicio
CODIGO EN VISUAL.NET
Private Sub btn_cuadratica_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_cuadratica.Click Dim a, b, c As Double Dim k, d, n, f, g, h, i, j, l, m, z, y, p As Double a = CInt(Me.txt_1.Text) b = CInt(Me.txt_2.Text) c = CInt(Me.txt_3.Text) If (a = 0) Then y = c * (-1) z = y / b MessageBox.Show(CStr(z)) Else k = b * (-1) d = b * b n = 4 * a * c f = 2 * a g = d - n If (g < 0) Then p = g * (-1) h = Math.Sqrt(p) i = k + h j = k - h l = i / f m = j / f MessageBox.Show(CStr(l) + "->>*(-1)" + "RAIZ IMAGINARIA") MessageBox.Show(CStr(m) + "->>*(-1)" + "RAIZ IMAGINARIA") Else h = Math.Sqrt(g) i = k + h j = k - h l = i / f m = j / f MessageBox.Show(CStr(l)) MessageBox.Show(CStr(m)) End If End If End Sub End Class