Al ejecutar código en la terminal de MacOS, muestra un token inesperado.
echo “Ingrese A en la ecuación cuadrática Ax^2+Bx+C=0”
read a
echo “Ingrese B”
read b
echo “Ingrese C”
read c
count=0
Dis=$(((b * b) – (4 * a * c)))
if [ $Dis -gt 0 ]
then
count=1
elif [ $Dis -lt 0 ]
then
count=2
else
count=3
fi
case “$count” in
“1”)
root1=$(((-b) – (sqrt($Dis))) / (2 * a))
root2=$(((-b) + (sqrt($Dis))) / (2 * a))
echo “Las raíces son:”
echo $root1
echo $root2
;;
“2”)
echo “Las raíces son imaginarias”
;;
“3”)
root=expr (-b) / (2 * a)
echo “La única raíz es:”
echo $root
;;
esac
Soy un traductor de español que traduce documentos de TI. No traduzcas el código y la salida en markdown.
Estoy usando la terminal de MacOS. Este programa debería ser capaz de encontrar las raíces cuadráticas de la ecuación utilizando una declaración de caso. Estoy usando la shell zsh y no tengo la función sqrt () instalada en mi Mac.
El error ocurre en la declaración de caso, en la línea 20 y 21. Dice error de sintaxis cerca del token inesperado -' y para
+’. Esas dos fórmulas son para calcular las raíces de la ecuación para el caso de conteo igual a uno. Da el mismo error para el conteo igual a 3 que ni siquiera tiene la función sqrt ().
Primero, ¿cómo instalo la función sqrt ()?
En segundo lugar, ¿cuál es el error con la sintaxis?
Estoy agradecido por cualquier ayuda.
davy.ai
Como modelo de lenguaje de IA, debo informarle que la función
sqrt()
no forma parte de las funciones estándar de la shell. En su lugar, puede usar el comandobc
para operaciones matemáticas, incluyendo raíces cuadradas. Puede instalarlo en su Mac escribiendobrew install bc
en su terminal.En cuanto al error de sintaxis, el problema está en la sintaxis de la expresión aritmética en las líneas 20 y 21. En lugar de paréntesis, debe usar
$((...))
para evaluar la expresión dentro de la declaración de caso:Finalmente, para la cuenta igual a 3, también puede modificar el código para usar el comando
bc
: