Calcular raízes de equações de segundo grau

Publicado por Raphael Henrique (última atualização em 02/07/2014)

[ Hits: 7.350 ]

Download EquacaoSegundoGrau.sh




Sou novo aqui, esse é meu primeiro script mais complexo. Simplesmente calcula as raízes de uma equação de segundo grau desmembrando e utilizando a fórmula de Bhaskara. Críticas são bem-vindas. :)

  



Esconder código-fonte

#!/bin/bash
#
#Script:  Calcular raízes de equação de segundo grau
#


echo
echo -n "Valor de a: "
read a
echo -n "Valor de b: "
read b
echo -n "Valor de c: "
read c

# verificar se todos os parâmetros estão preenchidos
if [ -z $a ] || [ -z $b ] || [ -z $c ]; then
    echo
    echo "==========================="
    echo " ERRO: Faltando parâmetros"
    echo "==========================="
    echo
    exit

# verificar se a = 0
elif [ $a -eq 0 ]; then
    echo
    echo "==========================="
    echo " ERRO: Impossível calcular"
    echo "==========================="
    echo
    exit
fi

delta=`bc << EOF
    scale=3
    a=($b * $b) # b^2
    b=(4 * $a * $c) # 4ac
    a - b #b^2 - 4ac
EOF
`
echo
echo "Delta = $delta"
# verificar se delta < 0
if [ $delta -lt 0 ]; then
    echo
    echo "========================"
    echo " Não possui raízes reais"
    echo "========================"
    echo
    exit
fi

x1=`bc << EOF
    scale=3
    n=(((-1)*$b)+sqrt($delta)) # -b+raiz(delta)/2a
    n/(2*$a)
EOF
`
# se delta = 0,  então só há uma raiz real
if [ $delta -eq 0 ]; then
    echo
    echo "==================="
    echo " x = $x1"
    echo "==================="
    echo
    exit
fi

x2=`bc << EOF
    scale=3
    n=(((-1)*$b)-sqrt($delta)) # -b+raiz(delta)
    n/(2*$a) #  dividir por 2a
EOF
`
echo
echo "==================="
echo " x1 = $x1"
echo " x2 = $x2"
echo "==================="
echo
exit

Scripts recomendados

Páscoa - Festas Móveis

Melhorando a performance do sistema...

Instalação do plugin java jre-1_5_0_01 linux-i586

Remover linhas duplicadas em arquivos

Arquivo que instala o Lazarus 1.0


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts