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

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

Re: [shell-script] Re: Calculando equação do 2 grau


From: Ernander (Nander)
Subject: Re: [shell-script] Re: Calculando equação do 2 grau
Date: Fri, 30 May 2014 23:05:44 -0300

CORREÇÃO

Havia copiado e colado o Códiogo Original, segue o código com a Correção:
====================== INICIO ==============================
#!/bin/bash

read -p "A equação do 2º grau é da forma
ax2 + bx + c. Informe o valor de a: " a
read -p "Informe b: " b
read -p "Informe c: " c
let Delta=b**2-4*a*c
echo "Delta vale $Delta"
((Delta < 0)) && {
    echo Valores inválidos. Não posso extrair raiz quadrada de número negativo >&2
    exit 1
    }
a1=$(bc <<< "scale=2; (($b*-1)+sqrt($Delta))/(2*$a)")
a2=$(bc <<< "scale=2; (($b*-1)-sqrt($Delta))/(2*$a)")
echo -e "a1=$a1\na2=$a2"

====================== FIM ==============================






Em 30 de maio de 2014 23:03, Ernander (Nander) <address@hidden> escreveu:
Graaaaaaaaaaande Mestre Júlio  ( UAAAAAAAALAAAAAAAAAAAAAAA)

É incrível a sua capacidade de abstração de um problema em Shell.


Seu código da FORMULA DE BHASKARA está impecável, porem o BC  ( de alguma forma ) nao estava calculando o 2.a corretamente.

O que eu fiz foi simplesmente colocar (2*$a) entre parenteses.

Ta impecável!!!!!

Sou seu humilde discípulo (UAAAAAAAAAAAAALAAAAAAAAAAAAAA)

====================== INICIO =======================================



read -p "A equação do 2º grau é da forma
ax2 + bx + c. Informe o valor de a: " a
read -p "Informe b: " b
read -p "Informe c: " c
let Delta=b**2-4*a*c
((Delta < 0)) && {
    echo Valores inválidos. Não posso extrair raiz quadrada de número negativo >&2
    exit 1
    }
a1=$(bc <<< "scale=2; ($b*-1+sqrt($Delta))/2*$a")
a2=$(bc <<< "scale=2; ($b*-1-sqrt($Delta))/2*$a")
echo -e "a1=$a1\na2=$a2"

====================== FIM==========================================

100% funcional!





Em 30 de maio de 2014 21:29, 'Julio C. Neves' address@hidden [shell-script] <address@hidden> escreveu:

 

Boa noite Claudio,
Eu te mandei a seguinte sugestão:

==========================================
Se tiver algum erro avise. Não testei e não uso sqrt há um bom tempo.

read -p "A equação do 2º grau é da forma
ax2 + bx + c. Informe o valor de a: " a
read -p "Informe b: " b
read -p "Informe c: " c
let Delta=b**2-4*a*c
((Delta < 0)) && {
    echo Valores inválidos. Não posso extrair raiz quadrada de número negativo >&2
    exit 1
    }
a1=$(bc <<< "scale=2; ($b*-1+sqrt($Delta))/2*$a")
a2=$(bc <<< "scale=2; ($b*-1-sqrt($Delta))/2*$a")
echo -e "a1=$a1\na2=$a2"
==========================================

Repare que comecei o e-mail dizendo "se tiver algum erro avise". Vc não avisou nada, não disse se funcionava, pediu explicação (pelo menos não li nada a respeito) e agora vc quer voltar à solução anterior?

Vc testou a minha solução? Funcionou? Qual foi o erro que deu ou o que vc não entendeu?

Abcs,
Julio
@juliobash
Próximos cursos de Shell
Cidade         Local Período
Rio de Janeiro EDX 02 a 06/06
São Paulo 4Linux 21 a 25/07
Dou treinamento de Shell em qualquer cidade.
Para mais detalhes, me mande um e-mail.



Em 30 de maio de 2014 17:59, address@hidden [shell-script] <address@hidden> escreveu:

 

#!/bin/bash


echo " "
echo "###################################"
echo "######### Cálculo de ##############"
echo "#######  uma equação do ###########"
echo "######### segundo grau ############"
echo "###################################"
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 " "


delta=`echo "scale=2;$(($b**2))-((4*$a*$c))" | bc`


if [ "$a" -eq "0" ] ; then

echo "Não é Equação do 2° Grau"
echo " " 

fi

exit

if [ "$delta" -gt "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`


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

elif [ "$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

Olá amigos!
Cá estou eu novamente com o mesmo problema...
Não consegui entender , como eram aplicadas, as sugestões do mestre JCNeves. Então, voltei à minha antiga estrutura, porém, está modificada. 
O programa mostra corretamente as alternativas, porém não calcula x. Por que???
Desde já agradeço a atenção.





reply via email to

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