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

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

Calculando equação do 2 grau


From: Cláudio Caldas
Subject: Calculando equação do 2 grau
Date: Wed, 28 May 2014 17:42:27 -0300

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

reply via email to

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