# Ecuación de 2º grado
ec2g<-function(a, b, c) {
disc<- b^2 - 4 * a * c
if (disc < 0 || a == 0) return(NaN) # Sin solución real
x <- c(0, 0)
x[1] <- (-b-sqrt(disc)) / (2 * a)
x[2] <- (-b+sqrt(disc))/ (2 * a)
return(x)
}
# resec2g llama a ec2g y muestra los resultados
resec2g <- function(a, b, c) {
x <- ec2g(a, b, c)
if (length(x) == 1) {
cat("La ecuación no tiene solución\n")
return(invisible(NaN))
}
cat("X1=",x[1],"\nX2=",x[2])
}
Compara la salida de las dos funciones
ec2g(1,1,1)
## [1] NaN
resec2g(1,1,1)
## La ecuación no tiene solución
ec2g(1,1,-1)
## [1] -1.618 0.618
resec2g(1,1,-1)
## X1= -1.618
## X2= 0.618