[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Novato/Dúvidas] Iniciante em shell script, calculadoras...
From: |
fampower |
Subject: |
Re: [Novato/Dúvidas] Iniciante em shell script, calculadoras... |
Date: |
Fri, 29 Apr 2011 14:33:23 -0000 |
User-agent: |
eGroups-EW/0.82 |
Bom dia, Julio.
Primeiro lugar é uma honra receber dicas de uma referencia em codigo aberto.
Vou estudar com calmar os comandos que passou e em breve posto aqui as
novidades. Segue como prometido a outra versão da Calculadora Simples com uso
de FUNCÕES. Já tenho também uma outra com uso do GetOpts que ficou legal tbem.
Lembrando que estou iniciando e que estou trabalhando conceitos separados e
aplicando na calculadora e depois misturando tudo..rsrs OK
Valeu Julio e abs a todos....
#!/bin/bash
#
#calculadora002.sh - Realiza calculo simples -
#
######################################
#Autor: Francisco A. de Moraes #
#Mail: address@hidden #
#Area: DCPS - Monitoracao - Logica. #
######################################
#
#
#
#----------------------------------------------------
#Licenca Livre - Normas GPL
#----------------------------------------------------
#
#
#----------------------------------------------------
#Descricao: O programa realiza calculo simples. (adicao, multiplicacao,
subtracao e divisao)
#
#
#----------------------------------------------------
#Historico de Desenvolvimento:
#----------------------------------------------------
#-v1.0 - 06/04/2011 - Francisco A. de Moraes
#-Desafio Calculadora/Operadores
#Variavel / Estrutura Logica / Pesquisa INTERNET - www.google.com.br
#
#-v1.1 - 07/04/2011 - Francisco A. de Moraes
#-Uso de Select
#
#-v1.2 - 08/04/2011 - Francisco A. de Moraes
#-Uso IF/then/else
#-Correcao do erro divisao por zero
#
#-v1.3 - 11/04/2011 - Francisco A. de Moraes
#-Uso de FUNCAO
#-Uso de FUNCAO - OPERADORES
#####################################################
################DECLARANDO FUNCAO####################
#####################################################
clear
valor1 (){ echo -n "Escreva o Primeiro Valor: "
}
valor2 (){ echo -n "Escreva o Segundo Valor: "
}
f_soma () { echo "$num1+$num2 = $[num1+num2]"
}
f_sub () { echo "$num1-$num2 = $[num1-num2]"
}
f_mult () { echo "$num1*$num2 = $[num1*num2]"
}
f_div () { echo "$num1/$num2 = $[num1/num2]"
}
echo " ######################### CALCULO SIMPLES ############################# "
echo "O que deseja (1)soma (2)subtrair (3)multiplicar (4)dividir (5)sair"
echo " ####################################################################### "
select opcaox in soma sub mult div sair; do
echo ""
clear
#############################################################
####################INICIO DO PROGRAMA#######################
#############################################################
case "$opcaox" in
'soma')
valor1
read num1
valor2
read num2
f_soma
;;
'sub') #Declarando select subtrair
valor1 #Uso da Funcao valor1
read num1 #recebe dados em memoria
valor2 #Uso da Funcao valor2
read num2 #recebe dados em memoria
f_sub #Uso da funcao subtracao
;; #fim caso subtrair
'mult')
valor1
read num1
valor2
read num2
f_mult
;;
'div')
valor1
read num1
valor2
read num2
if [ $num2 -eq "0" ] #Se valor igual a 0 - corrigir
divisao por Zero
then #Entao
echo "impossivel dividir por zero"
else #Senao
f_div
fi #Fim do if ou se
;;
'sair')
break
;;
*)
echo "opcao invalida"
;;
esac
done;
--- Em address@hidden, "Julio C. Neves" <julio.neves@...> escreveu
>
> Fala Chico,
> uma sugestão para vc implementar a versão 2.0
>
> ###########################
> Elem=$(yad --form --image gnome-calculator --text "Bem vindo a Calculadora -
> <big><b>by CHICO</b></big>" --field "Primeiro Número:" --field "Segundo
> Número:" --field "Operação:CB" 0 0 'Soma!Subtração!Multiplicação!Divisão')
> || exit 1
> ###########################
> IFS='|' read Num1 Num2 Opcao <<< "$Elem"
> ###########################
>
> Usei as separações com jogo da velha, só para dizer que são somente duas
> linhas de código, já que o e-mail vai quebrar tudo.
>
> Nesse ponto vc já terá as variáveis Num1 Num2 Opcao com seus valores. Isso
> significa que vc poderia trocar todo o código até o ninho de if's (que eu
> trocaria por um case) por essas 2 linhas somente.
>
> Alguém da lista me mandou um e-mail em pvt me falando do YAD. Testei o sw e
> achei simplesmente revolucionário. Aconselho a todos o instalarem pois é um
> fork do zenity com inúmeras facilidades a mais como o diálogo --form que
> usei.
>
> Falando em --form, poderíamos até esnobar usando SpinButtons para capturar
> os números. Basta trocar a primeira linha por:
>
> Elem=$(yad --form --image gnome-calculator --text "Bem vindo a Calculadora -
> <big><b>by CHICO</b></big>" --field "Primeiro Número:NUM" --field "Segundo
> Número:NUM" --field "Operação:CB" '0!0..100!1'
> '0!0..100!1''Soma!Subtração!Multiplicação!Divisão') || exit 1
>
> Se vcs instalarem, vão se surpreender inclusive com a qualidade da
> apresentação. Já mandei um artigo para o Cantinho do Shell das dicas-l mas
> não sei se foi publicado. se não foi, em breve o será.
>
> Estou com mais um livro pronto e, entre outros temas, abordo o YAD, sobre o
> qual escrevi mais de 70 páginas A4 de forma a explorar todos os seus
> recursos.
>
> OBS:
> 1 - O YAD já está com essa bola toda e ainda está na versão 0.10.1. Imagine
> o que vem por aí.
> 2 - O autor do sw é um ucraniano, Victor Ananjevsky, que já convidei a dar
> uma palestra na LatinoWare 2011.
>
> Cordialmente,
>
> Julio Neves
>
> *Quer programar bem em Shell?*
>
> *Use este endereço de e-mail, o Skype ou â (21)8112-9988 â*
> My profiles: [image: Twitter] <http://twitter.com/juliobash>
> Contact me: [image: Skype/] julioneves1
>
>
> Em 28 de abril de 2011 15:07, fampower <powerfam@...> escreveu:
>
> >
> >
> > Enilton, Boa tarde.
> >
> > Por esses dias fiz 2 calculadoras uma mais simples ou outra mais completa
> > no sentindo de uso de comandos.
> >
> > Enviando a CALCULADORA SIMPLES AGORA, e no outra mensagem vou te enviar,
> > com o tratamento da divisão de por ZERO e o uso de funçao.
> >
> > Lembrando se Copiar e COLAR devido os comentários em um editor VI, VIM,ou
> > bloco de notas que seja já fica mais limpo o codigo.
> >
> > #!/bin/bash
> > #
> > #calculadora001.sh - Calculadora Simples -
> > #
> > ######################################
> > #Autor: Francisco A. de Moraes #
> > ######################################
> > #
> > #
> > #
> > #----------------------------------------------------
> > #Licenca Livre - Normas GPL
> > #----------------------------------------------------
> > #
> > #
> > #----------------------------------------------------
> > #Descricao: O programa realiza calculo simples. (adicao, multiplicacao,
> > subtracao e divisao)
> > #----------------------------------------------------
> > #
> > #
> > #----------------------------------------------------
> > #Historico de Desenvolvimento
> > #-v1.0 - 07/04/2011 - Francisco A. de Moraes
> > # - Tratando Parametros para receber valores e operadores
> > #-v1.1 - 08/04/2011 - Francisco A. de Moraes
> > #-Corrigindo parametro e trabalhando com o IF
> > #----------------------------------------------------
> > #
> > clear
> > echo ""
> > echo "----------------------------------------------------------"
> > echo " Bem vindo a Calculadora - by CHICO "
> > echo ""
> > echo ""
> > echo ""
> > echo "----------------------------------------------------------"
> > echo
> > "##############################################################################################"
> > echo ""
> > echo " Versao 1.1a - GPL - "
> > echo ""
> > echo ""
> > echo
> > "###############################################################################################"
> > sleep 2
> >
> > echo ""
> > echo "Digite o primeiro valor: "
> > read NUM1
> > echo "Digite o segundo valor: "
> > read NUM2
> >
> > clear
> >
> > echo ""
> > echo "----------------------------------------------------------"
> > echo " Bem vindo a Calculadora - by CHICO "
> > echo "----------------------------------------------------------"
> >
> > echo "
> > 1 - SOMAR
> > 2 - SUBTRAIR
> > 3 - MULTIPLICAR
> > 4 - DIVIDIR
> > "
> >
> > echo ""
> > read OPCAO
> >
> > if [ "$OPCAO" = '1' ]
> > then
> > RESU=$((NUM1+NUM2))
> > echo "$RESU"
> >
> > elif [ "$OPCAO" = '2' ]
> > then
> > RESU=$((NUM1-NUM2))
> > echo "$RESU"
> >
> > elif [ "$OPCAO" = '3' ]
> > then
> > RESU=$((NUM1*NUM2))
> > echo "$RESU"
> >
> > elif [ "$OPCAO" = '4' ]
> > then
> > RESU=$((NUM1/NUM2))
> > echo "$RESU"
> > fi
> >
> > echo "Finalizado, deseja utilizar novamente.? [s/n]"
> > read OPCAO1
> >
> > if [ "$OPCAO1" = 's' ]
> > then
> > ./calculadora001
> > else
> > exit
> > fi
> >
> > --- Em address@hidden, "enilton1sh" <binbash.sh@>
> > escreveu
> >
> > >
> > > Hmm então terei que mudar todas as minhas calculadoras tirando a função
> > do bash e passar para o bc. rsrs
> > >
> > > Obrigado por responder. o/
> > >
> > > --- Em address@hidden, Tiago Peczenyj <tiago.peczenyj@>
> > escreveu
> > > >
> > > > Com bash suporta apenas aritmetica de inteiros. Se quiser algo alem use
> > o bc
> > > > ou o dc, inclusive eles tem boas features (como o bc que suporta
> > numeros
> > > > incrivelmente grantes).
> > > >
> > > >
> > > > 2011/3/9 enilton1sh <binbash.sh@>
> > > >
> > > > >
> > > > >
> > > > > Oi pessoal, Me chamo Enilton e sou novato na programação shell script
> > e no
> > > > > momento só sei fazer calculadoras. @_@
> > > > >
> > > > > Antes de tudo estava pesquisando no google calculadoras em shell
> > script e
> > > > > achei duas interessante no site "viva o linux", mais aqui irei falar
> > somente
> > > > > sobre uma, já que procuro nas duas a mesma resposta para o meu
> > "problema".
> > > > > obs: Nas minhas calc eu uso os parâmetros "case $opcao in ... esac",
> > "$((
> > > > > ))", para realizar as funções.
> > > > >
> > > > > Calculadora-para-eletrodomesticos : Lucas Villela Canôas
> > > > > Bom aqui ele usa um método diferente do meu usando a calculadora bc,
> > o
> > > > > ponto que quero
> > > > > chegar é que assim desse modo ele aceita "." e ",".
> > > > >
> > > > > echo "scale=3; $ptnc/1000" | bc`
> > > > >
> > > > > exemplo: echo "scale=3; 8000/1000" | bc`
> > > > > > 8,000
> > > > >
> > > > > uso: echo $((8000/1000))
> > > > > >8
> > > > >
> > > > > Tem como eu utilizar a opção "scale" junto com '$(())'?
> > > > > Logo abaixo irei postar minhas calculadoras.
> > > > > Obs.: Um script foi usado para "laçar" as calculadoras atráves da
> > escolha
> > > > > por opção, executando-as.
> > > > > Eu poderia ter criado todos em um só script, seria muito fácil e sem
> > graça
> > > > > e com pouco aprendizado.
> > > > >
> > > > > Google Doc's
> > > > > Estudo.sh: http://va.mu/Ag2
> > > > > soma.sh: http://va.mu/Ag3
> > > > > subtrair.sh: http://va.mu/Ag6
> > > > > multiplicar.sh: http://va.mu/Ag7
> > > > > dividir.sh: http://va.mu/Ag8
> > > > > expo.sh: http://va.mu/Ag9
> > > > > mult_soma.sh: http://va.mu/AhA
> > > > > %.sh: http://va.mu/AhB
> > > > >
> > > > > Não reparem em algum erro de digitação!
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > Tiago B. Peczenyj
> > > > Linux User #405772
> > > >
> > > > http://pacman.blog.br
> > > >
> > > >
> > > > [As partes desta mensagem que não continham texto foram removidas]
> > > >
> > >
> >
> >
> >
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>