Saltar al contenido
EjemplosEnglishEspacio →

Ecuación cuadrática

Resuelve ax² + bx + c = 0, con raíces reales o complejas.

Nivel
Intermedio
Conceptos:
Entrada y salida
Si
Matemáticas
Abrir en Codoritmo

Ejecuta, modifica y depura este ejemplo en el navegador.

Lo que aprenderás

El discriminante decide entre tres casos con Si anidados. Raiz calcula la raíz cuadrada, y una primera validación evita dividir cuando a = 0.

Código

quadratic.psc · 26 líneas
Algoritmo EcuacionCuadratica    Definir a, b, c, discriminante, x1, x2 Como Real    Escribir "Coeficientes de ax² + bx + c = 0"    Escribir "a:"    Leer a    Escribir "b:"    Leer b    Escribir "c:"    Leer c    Si a = 0 Entonces        Escribir "Con a = 0 no es una ecuación cuadrática."    SiNo        discriminante <- b ^ 2 - 4 * a * c        Si discriminante > 0 Entonces            x1 <- (-b + Raiz(discriminante)) / (2 * a)            x2 <- (-b - Raiz(discriminante)) / (2 * a)            Escribir "Dos raíces reales: x1 = ", x1, ", x2 = ", x2        SiNo            Si discriminante = 0 Entonces                Escribir "Una raíz doble: x = ", -b / (2 * a)            SiNo                Escribir "Raíces complejas: ", -b / (2 * a), " ± ", Raiz(-discriminante) / (2 * a), "i"            FinSi        FinSi    FinSiFinAlgoritmo

Diagrama de flujo

Cada bloque del diagrama corresponde a una instrucción del código.

Algoritmo EcuacionCuadraticaSíNoSíNoSíNoAlgoritmo EcuacionCuadraticaAlgoritmo EcuacionCuadraticaDefinir a, b, c, discriminante, x1, x2 Como RealDefinir a, b, c,discriminante, x1, x2 ComoRealEscribir "Coeficientes de ax² + bx + c = 0"Escribir "Coeficientes de ax²+ bx + c = 0"Escribir "a:"Escribir "a:"Leer aLeer aEscribir "b:"Escribir "b:"Leer bLeer bEscribir "c:"Escribir "c:"Leer cLeer cSi a = 0 Entoncesa = 0Escribir "Con a = 0 no es una ecuación cuadrática."Escribir "Con a = 0 no es unaecuación cuadrática."discriminante <- b ^ 2 - 4 * a * cdiscriminante <- b ^ 2 - 4 * a* cSi discriminante > 0 Entoncesdiscriminante > 0x1 <- (-b + Raiz(discriminante)) / (2 * a)x1 <- (-b +Raiz(discriminante)) / (2 * a)x2 <- (-b - Raiz(discriminante)) / (2 * a)x2 <- (-b -Raiz(discriminante)) / (2 * a)Escribir "Dos raíces reales: x1 = ", x1, ", x2 = ", x2Escribir "Dos raíces reales:x1 = ", x1, ", x2 = ", x2Si discriminante = 0 Entoncesdiscriminante = 0Escribir "Una raíz doble: x = ", -b / (2 * a)Escribir "Una raíz doble: x =", -b / (2 * a)Escribir "Raíces complejas: ", -b / (2 * a), " ± ", Raiz(-discriminante) / (2 * a), "i"Escribir "Raíces complejas: ",-b / (2 * a), " ± ",Raiz(-discriminante) / (2 *…FinAlgoritmoFinAlgoritmo

Ejemplo de ejecución

Esto muestra el programa al ejecutarlo. Las respuestas escritas por el usuario aparecen resaltadas.

Coeficientes de ax² + bx + c = 0a:Respuesta del usuario: 1b:Respuesta del usuario: -3c:Respuesta del usuario: 2Dos raíces reales: x1 = 2, x2 = 1

Desafío

Cuando a = 0, resuelve la ecuación lineal bx + c = 0 en lugar de solo avisar.

Ver pista

La solución es x = -c / b, pero revisa antes que b no sea 0.

Abrir en Codoritmo