-----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 - mrbits....@gmail.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-----