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
Entrando em sites bloqueados
Instalar o Unity 3D Web Player no Linux
Como usar o apt-get em versões antigas do Ubuntu
Como criar um diretório em C/C++
Central de Programas do Ubuntu no Linux Mint
Leitura recomendada
SED - substituir apenas a ocorrência N de uma string
Executando comandos em looping no shell
Busca por string dentro dos arquivos
Screen (janelas) no modo shell?
Eliminando linhas de comentário ou linhas em branco no Linux
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