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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Re: Equação Segundo Grau - Shell Script


From: Julio C. Neves
Subject: Re: [shell-script] Re: Equação Segundo Grau - Shell Script
Date: Thu, 11 Mar 2010 12:12:13 -0300

Fala MrBiTs,
Shell rb é cultura!!! ;) Qdo o nosso colega falou em Bhaskara, pensei que
ele estivesse fazendo algum trocadilho nerd com Bash, até que vc contrapôs:
"O hábito de dar nome de Bhaskara para a fórmula de resolução da equação de
2º grau se estabeleceu no Brasil por volta de 1960."

Aí eu entendi tudo! Apesar de ser engenheiro por formação, não conhecia esta
termo pq em 1960 a equação do 2o. grau já estava no meu dia a dia. Já lidava
com cálculo diferencial/integral. Valeu pelo incremento na minha cultura
matemática.

Na cultura "Bashistica" (de Johann Sebastian Bash ;), grande programador
alienígena que compôs o Bash), o correto seria proteger os asteriscos (que
odeiam ser chamados de asterísticos), para evitar a expansão de arquivos.
Assim, eu faria:

s1=$(bc <<< "scale=2;(-($B)+sqrt($delta))/2\*$A")
s2=$(bc <<< "scale=2;(-($B)-sqrt($delta))/2\*$A")

Aproveitei para tirar o pipe e alguns parênteses desnecessários.

OBS: meu 3o. parágrafo poderia ser chamado de "Ode ao Delírio". Que tal? ;)

Abraços,
Julio
Cursos de Shell e Zenity em 2 fins de semana?
- SP turma de Shell em 29/03 - ligue (11)2125-4747;
- Floripa turma Shell 12/04 http://www.seventreinamentos.com.br;
- DF turma de Shell em 17/04 - ligue (61) 3223-3000;
- Aracaju turma de Shell em 12/05 - address@hidden;
- RJ turma de Shell em 14/06 - ligue (21)2210-6061;
- Turmas fechadas em outras cidades ligue (21)  8112-9988.


Em 11 de março de 2010 09:33, MrBiTs <address@hidden> escreveu:

>
>
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
>
> > Bom dia!
> > Desculpa a falta de atenção por nao ter explicado exatamente a minha
> duvida.
> > O valor de delta esta ok.
> > O problema estao em s1 e s2.
> > A formula baskara é a seguinte:
> > -b + raiz quadrada de delta / 2*A
> > O meu codigo esta assim:
> > s1=$(echo "scale=2;-$B+$(($delta**0,5))/(2*$A)" | bc)
> > E isso nao esta dando certo, como q eu faço a operação matematica -$B por
> exemplo?
>
> Acho que todos conhecemos Bhaskara. E tem mais.
>
> O hábito de dar nome de Bhaskara para a fórmula de resolução da equação de
> 2º grau se estabeleceu no Brasil por volta de 1960. Esse
> costume, aparentemente só brasileiro ( não se encontra o nome de Bhaskara
> para essa fórmula na literatura internacional), não é
> adquado pois :
>
> * Problemas que recaem numa equação de 2º grau já apareciam, há quase 4.000
> anos atrás, em textos escritos pelos babilônicos. Nestes
> textos o que se tinha era uma receita ( escrita em prosa, sem uso de
> símbolos) que ensinava como proceder para determinar as raízes
> em exemplos concretos com coeficiêntes numéricos
> * Bhaskara Acharya, que nasceu na Índia em 1.114 e viveu até cerca de
> 1.185, foi um dos mais importantes matemáticos do século 12.
> As duas coleções de seus trabalhos mais conhecidas são Lilavati ( "bela") e
> Vijaganita ("extração de raízes"), que tratam de
> aritmética e álgebra respectivamente, e contêm numerosos problemas sobre
> equações de lineares e quadráticas ( resolvidas também com
> receiras em prosa ) , prograssões aritméticas e geométricas, radicais,
> tríadas pitagóricas e outros.
> * Ela já era do conhecimento de, no mínimo, o matemático Sridara, que viveu
> há mais de 100 anos antes de Bhaskara Acharya.
> * Até o fim do século 16 não se usava uma fórmula para obter as raízes de
> uma equação do 2º grau, simplesmente porque não se
> representavam por letras os coeficientes de uma equação. Isso só começou a
> ser feito a partir da François Viéte, matemático francês
> que viveu de 1540 a 1603
>
> Logo, embora não se deva negar a importância e a riqueza da obra de
> Bhaskara, não é correto atribuir a ele a conhecida fórmula de
> resolução da equação de 2º grau.
>
> Isto posto, vamos ao seu problema:
>
> Seu erro está nesse $delta**0,5. Veja o que acontece:
>
> $ echo "scale=2;4**0.5" | bc
> (standard_in) 1: syntax error
> $ echo "scale=2;4**0,5" | bc
> (standard_in) 1: syntax error
>
> GNU bc tem uma função sqrt que você pode usar. Além disso, B pode ter um
> valor negativo, e o bc não gosta da construção --4, por
> exemplo. Lembre-se também que multiplicação e divisão tem precedência sobre
> adição e subtração. Então você está gerando a raiz
> quadrada do seu determinante (o delta) e dividindo-o por 2A e, só então,
> somando-o a B. Então eu mudaria a expressão para algo assim:
>
> s1=$(echo "scale=2;(-($B)+sqrt($delta))/(2*$A)" | bc)
> s2=$(echo "scale=2;(-($B)-sqrt($delta))/(2*$A)" | bc)
>
>
> - --
>
> Um abraço
>
> .0. MrBiTs - address@hidden <mrbits.dcf%40gmail.com>
> ..0 GnuPG -
> http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x6EC818FC2B3CA5AB
> 000 http://www.mrbits.com.br
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.9 (GNU/Linux)
>
> iQEcBAEBCAAGBQJLmOMhAAoJEG7IGPwrPKWrZa4H/07K5WOyMSMXRywhXDfm1h5v
> xb1GJY8Oz5yPaJlNvTvGQ8k1TVV/jCPNQuzkEy67b5sBvk727RKfH8lAsEg8E3/J
> wToGYwvOAY+kCrRu0MihkTHDH5QwK4MUi/K6jZh/A8jkqelzOEp6roQFFsKpqKBI
> vfRRsPpKLmRLz4cI5IedY0rp38vlYdet2iPSP3JgD4qSIQLCrcYifRDFLVZSrTZW
> wzJPiRlxDkUyHrWe4W9PfnBGAvLWimcRdun1bElAas7DbWuO64UzLwM06+3DifLl
> zUSBTH831C3fW3quUxd3/UMBiJ3+VkKmORVKyHFLJ4xnfyx4pXRFdgLnhMkYYJ8=
> =Vf30
> -----END PGP SIGNATURE-----
>  
>


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



reply via email to

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