[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Re: [Novato/Dúvidas] Iniciante em shell script, calcu
From: |
Enio Onodera |
Subject: |
Re: [shell-script] Re: [Novato/Dúvidas] Iniciante em shell script, calculadoras... |
Date: |
Fri, 29 Apr 2011 08:17:44 -0700 (PDT) |
Chico,
eu faria uma calculadora simples, usando o que você usou, desse modo:
#!/bin/bash
[ -z $1 ] && echo "Utilize 'script valores'. Por exemplo: ./script.sh 2+2" &&
exit
echo $(($1))
Abs,Enio Onodera
--- Em sex, 29/4/11, Julio C. Neves <address@hidden> escreveu:
De: Julio C. Neves <address@hidden>
Assunto: Re: [shell-script] Re: [Novato/Dúvidas] Iniciante em shell script,
calculadoras...
Para: address@hidden
Data: Sexta-feira, 29 de Abril de 2011, 10:46
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 <address@hidden> 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]
[As partes desta mensagem que não continham texto foram removidas]