Equação de 2° Grau Shell Script - Zenity
Está cansado de ter que fazer aquelas contas enormes para chegar ao resultado?
Se sim, esse dica é para você.
Você precisa ter o
Zenity instalado para funcionar.
No Ubuntu, digite no terminal:
sudo apt-get install zenity
Depois, salve o script e torne ele executável. Para isso, entre na pasta que o arquivo se encontra e digite:
chmod 777 Equação2Grau.sh
Pronto, o mais difícil já foi feito.
Agora, dê um clique duplo no arquivo onde foi salvo e clique em:
Executar
Pronto, agora é só digitar o valor de
a,
b e
c, e você terá o Delta, a raiz 1 e a raiz 2.
Caso contrário, se a conta não tiver raiz real (ou não for de 2 grau), irá aparecer um aviso. :D
Script
Segue script:
#!/bin/bash
clear
echo "###################################"
echo "######### Equação de #########"
echo "######### Segundo Grau #########"
echo "######### By Thihup #########"
echo "###################################"
a=`zenity --entry --text "Digite o Valor A" --entry-text "Valor" --title "Equação do 2° Grau"`
b=`zenity --entry --text "Digite o Valor B" --entry-text "Valor" --title "Equação do 2° Grau"`
c=`zenity --entry --text "Digite o Valor C" --entry-text "Valor" --title "Equação do 2° Grau"`
delta=`echo "scale=1;$(( $b**2 )) - (( 4 * $a * $c ))" | bc`
#Comente esta linha, caso esteja em uma distro que não utilize o APT
apt-get moo
if [ "$a" -eq "0" ] ; then
zenity --warning --text "Não é Equação do 2° Grau" --title "Equação do 2° Grau"
exit
fi
if [ "$delta" -ge "0" ] ; then
s1=$(echo "scale=1;(-($b)+sqrt($delta))/(2*$a)" | bc)
s2=$(echo "scale=1;(-($b)-sqrt($delta))/(2*$a)" | bc)
zenity --info --text "Delta : $delta \n Raiz 1 : $s1 \n Raiz 2 :$s2" --title "Equação do 2° Grau"
fi
if [ "$delta" -lt "0" ]; then
zenity --warning --text "Nenhuma Raiz Real !" --title "Equação do 2° Grau"
exit
fi
clear
Outras dicas deste autor
Matrix no terminal Linux
Instalar o Unity 3D Web Player no Linux
Como usar o apt-get em versões antigas do Ubuntu
Programe em Ada, C, C++, Java, JavaScript e outras sem instalar nada em seu computador
Como criar um diretório em C/C++
Leitura recomendada
Ações condicionais no SED
Como renomear arquivos de letras maiúsculas para minúsculas
Redirecionamento no Shell
Introdução ao awk
Sed - como salvar alterações no arquivo
Comentários
Galera, Eu Criei com um loop infinito e com 2 casas apos a virgula
#!/bin/bash
clear
echo " ###################################"
echo " ######### Equação de #########"
echo " ######### Segundo Grau #########"
echo " ######### By Thihup #########"
echo " ###################################"
valor () {
a=`zenity --entry --text "Digite o Valor A" --entry-text "Valor" --title "Equação do 2° Grau"`
b=`zenity --entry --text "Digite o Valor B" --entry-text "Valor" --title "Equação do 2° Grau"`
c=`zenity --entry --text "Digite o Valor C" --entry-text "Valor" --title "Equação do 2° Grau"`
delta=`echo "scale=2;$(( $b**2 )) - (( 4 * $a * $c ))" | bc`
if [ "$a" -eq "0" ] ; then
zenity --warning --text "Não é Equação do 2° Grau" --title "Equação do 2° Grau"
exit
fi
if [ "$delta" -ge "0" ] ; then
s1=$(echo "scale=2;(-($b)+sqrt($delta))/(2*$a)" | bc)
s2=$(echo "scale=2;(-($b)-sqrt($delta))/(2*$a)" | bc)
zenity --info --text "Delta : $delta \n Raiz 1 : $s1 \n Raiz 2 :$s2" --title "Equação do 2° Grau"
fi
if [ "$delta" -lt "0" ]; then
zenity --warning --text "Nenhuma Raiz Real !" --title "Equação do 2° Grau"
fi
}
clear
valor
clear
while true
do
zenity --question --text "Deseja Calcular Novamente ?"
if [ $? == 0 ] ; then
valor
else
clear
exit
fi
done