shell-script-pt
[Top][All Lists]
Advanced

[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: Tiago Peczenyj
Subject: Re: [shell-script] Re: [Novato/Dúvidas] Iniciante em shell script, calculadoras...
Date: Thu, 10 Mar 2011 12:45:00 -0300

Ola

Enilton, isso foi uma desisão de projeto do Bash, afinal para as tarefas
administrativas do dia a dia vc geralmente trabalha apenas com inteiros (e
isso simplifica as coisas dentro do interpretador, evitando ter que lidar
com erros de arredondamento, etc).

O Zsh suporta aritmetica de numeros reais. Porem veja só:

pacman% echo $(( 2+2 ))
4
pacman% echo $(( 2+2.2 ))
4.2000000000000002

Percebeu o 2 ali no final? Um problema bobo que provavelmente vc consegue
evitar usando coisa como printf para pegar a parte que interessa, etc.
Entretanto não imagino as consequencias disso em um script, digamos,
critico.

Quando existe alguma limitação do Bash geralmente eu penso em 2 coisas:

1) procurar algum utilitario que faça o que eu quero (como o bc nesse caso).
2) utilizar alguma linguagem de programação pois eu posso estar querendo
forçar a barra. Entretanto o awk ou sed geralmente resolvem.

Tudo depende do que eu quero fazer E qual o ciclo de vida do meu script. Se
quero fazer algo que dure varios anos vou tomar atitudes mais conservadoras
do que algo que preciso AGORA e depois "nunca mais"

2011/3/10 enilton1sh <address@hidden>

>
>
> hmm,, então a única saída é usar o bc? okay.
> Mais não tem como usar 'scale=' junto com '$(( ))'?
> Obrigado por responder!
>
> --- Em address@hidden, "Julio C. Neves" <julio.neves@...>
> escreveu
>
> >
> > O Tiago disse: o bc que suporta numeros incrivelmente grantes
> >
> > E eu complemento: e precisão arbitrária. Assim sendo, se vc for mandar
> uma
> > nave tripulada a Alpha de Centuro, use o bc ou dc para dar precisão aos
> seus
> > cálculos. ;)
> >
> > echo 33479433734423888712451711169292291632394P | dc
> >
> > Abraços,
> >
> > Julio
> >
> > *Cursos de Shell ou Zenity em fins de semana?*
> >
> > *☎ Ligue (21) 8112-9988* ☎
>
> > Contacte-me [image: Twitter] <http://twitter.com/#%21/juliobash/>
> >
> >
> > Em 9 de março de 2011 20:38, 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]
> > >
> > >
> > >
> > > ------------------------------------
> > >
> > > ----------------------------------------------------------
> > > Esta lista não admite a abordagem de outras liguagens de programação,
> como
> > > perl, C etc. Quem insistir em não seguir esta regra será moderado sem
> prévio
> > > aviso.
> > > ----------------------------------------------------------
> > > Sair da lista: address@hidden
> > > ----------------------------------------------------------
> > > Esta lista é moderada de acordo com o previsto em
> > > http://www.listas-discussao.cjb.net
> > > ----------------------------------------------------------
> > > Servidor Newsgroup da lista: news.gmane.org
> > > Grupo: gmane.org.user-groups.programming.shell.brazil
> > >
> > > Links do Yahoo! Grupos
> > >
> > >
> > >
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
>
>  
>



-- 
Tiago B. Peczenyj
Linux User #405772

http://pacman.blog.br


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]