shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Calculando equação do 2 grau


From: itamarnet
Subject: Re: Calculando equação do 2 grau
Date: 31 May 2014 03:33:45 -0700

A linhas em negrito reclamam da operação de cálculo de raiz quadrada de um número negativo.
Algo que não existe no campo dos números racionais.
Para isso é preciso verificar se "$delta" é maior ou igual a zero antes de prosseguir com o programa.

Dentro de um "if" acho que seria o suficiente, como segue:

if [ "$delta" -ge "0" ] 

then
x1=`echo "scale=2;(-($b)+sqrt($delta))/(2*$a)" | bc`
x2=`echo "scale=2;(-($b)-sqrt($delta))/(2*$a)" | bc`
x=`echo "scale=2;(-($b)/(2*$a))" | bc`


if [ "$delta" -gt "0" ] 

then 

echo "Delta : $delta" 
echo "Raiz 1: $x1"
echo "Raiz 2: $x2"
echo " " 

else

if [ "$delta" -eq "0" ] 

then 

echo "Delta: $delta" 
echo "As duas raizes tem o mesmo valor, que é: $x" 
echo " "
else
echo "Delta: $delta" 
echo "Nenhuma Raiz Real!"
echo " "

fi
fi


if [ "$?" -eq "0" ]

then

echo -e '\033[42;1;1m ######################################### \033[m'
echo -e '\033[42;1;1m     O programa funcionou corretamente.    \033[m'
echo -e '\033[42;1;1m ######################################### \033[m'

else

echo -e '\033[42;1;1m ######################################### \033[m'
echo -e '\033[42;1;1m        Aconteceu algum problema...        \033[m'
echo -e '\033[42;1;1m ######################################### \033[m'
fi
 else
echo -e '\033[42;1;1m ######################################### \033[m'
echo -e '\033[42;1;1m                Não existem raízes reais. \033[m'
echo -e '\033[42;1;1m ######################################### \033[m'
 fi

reply via email to

[Prev in Thread] Current Thread [Next in Thread]