Oi!
Desculpem-me pela pelas questões banais...
Consegui escrever o código em C e funcionou direito.
Já no shell script...
Segue o código.
#!/bin/bash
echo " "
echo "|--------Cálculo de uma equação do 2º grau--------|"
echo " "
echo "Digite o termo A da equação de 2º grau : "
read a
echo "Digite o termo B da equação de 2º grau : "
read b
echo "Digite o termo C da equação de 2º grau : "
read c
echo " "
if [ $a = 0 ] ; then
echo "O elemento a não pode ser zero!!!"
echo " "
exit
else
echo "O valor de delta é: `bc<<<"scale=2;($b ^ 2) - 4 * ($a * $c)"`"
echo " "
fi
echo "Insira o valor de delta: "
read delta
if [ $delta = 0 ] ; then
echo "O valor de x é: `bc<<<"scale=2;- $b / (2 * $a)"`"
echo " "
else
if [ $delta > 0 ] ; then
echo "O valor de x1 é: `bc<<<"scale=2;(- $b + sqrt($delta)) / (2 * $a)"`"
echo "O valor de x2 é: `bc<<<"scale=2;(- $b - sqrt($delta)) / (2 * $a)"`"
echo " "
else
echo "Não existe raiz real."
echo " "
fi
fi
Quando o delta é negativo, dois tipos de erro são gerados.
O primeiro, quando junto o sinal para o valor negativo na entrada de dados:
|--------Cálculo de uma equação do 2º grau--------|
Digite o termo A da equação de 2º grau :
-6
Digite o termo B da equação de 2º grau :
-6
Digite o termo C da equação de 2º grau :
-6
O valor de delta é: -108
Insira o valor de delta:
-108
Runtime error (func=(main), adr=19): Square root of a negative number
O valor de x1 é:
Runtime error (func=(main), adr=19): Square root of a negative number
O valor de x2 é:
O segundo, afastando o sinal de negativo...
|--------Cálculo de uma equação do 2º grau--------|
Digite o termo A da equação de 2º grau :
-6
Digite o termo B da equação de 2º grau :
-6
Digite o termo C da equação de 2º grau :
-6
O valor de delta é: -108
Insira o valor de delta:
- 108
../Eq_2G_Delta.sh: linha 36: [: número excessivo de argumentos
../Eq_2G_Delta.sh: linha 45: [: -: esperado operador unário
Não existe raiz real.
Alguém poderia ajudar? Já revisei o código e não consigo achar o erro...
Uma outra pergunta, se permitirem...
Como gero uma variável a partir da entrada do valor de delta?
Desde já agradeço.
Att.
--
Cláudio Caldas
(21)98351-7523