es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.

Tags:  ,

Answer

  1. Avatar for 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 comando bc para operaciones matemáticas, incluyendo raíces cuadradas. Puede instalarlo en su Mac escribiendo brew 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:

    "1")
    root1=$(echo "scale=2; (-$b - sqrt($Dis)) / (2*$a)" | bc)
    root2=$(echo "scale=2; (-$b + sqrt($Dis)) / (2*$a)" | bc)
    echo "Las raíces son:"
    echo $root1
    echo $root2
    ;;
    

    Finalmente, para la cuenta igual a 3, también puede modificar el código para usar el comando bc:

    "3")
    root=$(echo "scale=2; -$b / (2*$a)" | bc)
    echo "La raíz singular es:"
    echo $root
    ;;
    

Comments are closed.