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

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

Re: [shell-script] Re: Calculando equação do 2 grau


From: Julio C. Neves
Subject: Re: [shell-script] Re: Calculando equação do 2 grau
Date: Sat, 31 May 2014 18:55:25 -0300

Claudio,
eu tenho um cacoete danado desde os tempos que desenvolvia drivers em assembler que é criar o código mais veloz possível. Por exemplo eu não faria:
echo ""
echo "aaaaaaaaaaaaaaaaaaaaaaaa"
echo "bbbbbbbbbbbbbbbbbbbbbbbb"
echo ""
prefiro fazer:
echo "
aaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbb
"
por isso usei o
((Delta < 0)) && {
}
isso é um builtin super otimizado. Se eu tivesse que fazer um para igual, faria:
((Delta == 0)) && {
}
mesmo usando os 2, pode ter certeza que fica muito mais veloz que o if pois usa somente interpretador aritmético do bash.
Foi exatamente por isso que só usei o bc para trabalhar com reais (na raíz) antes, estava usando o let e o ((...)) ambos chamam o referido interpretador aritmético.

Abcs,
Julio
@juliobash
Próximos cursos de Shell
Cidade         Local Período
Rio de Janeiro EDX 02 a 06/06
São Paulo 4Linux 21 a 25/07
Dou treinamento de Shell em qualquer cidade.
Para mais detalhes, me mande um e-mail.



Em 31 de maio de 2014 17:42, address@hidden [shell-script] <address@hidden> escreveu:
 

Olá, Julio!

Agradeço a sua atenção! :)
Primeiramente, não tinha visto esta sua mensagem, porque não costumo usar o yahoo grupos e, também, fiquei envergonhado da dificuldade que estava tendo com uma questão tão simples.
Fiquei imerso em estudos, tendo como base o seu papo de botequim.
A sua sugestão, obviamente, estava perfeita para o cálculo da equação.
O seu único pequeno esquecimento foram os parênteses, como citou o outro membro do grupo (esqueci o nome dele...).
O que gostaria de colocar no algoritmo é mais a alternativa de 
delta=0
x= (-b)/(2*a)
e não consegui usando a sua estrutura do 
((Delta < 0)) && {
}
, pois não compreendi direito. Não entendi o porquê da não opção pela estrutura if then else fi. 
O meu código, com if then else fi, está funcional. O único problema, que não consigo resolver, é a saída que informa sobre os números negativos
##############################################
######### Cálculo de uma equação #############
############ do segundo grau #################
##############################################
Digite o termo A da equação de 2º grau :-9
Digite o termo B da equação de 2º grau :-9
Digite o termo C da equação de 2º grau :-9
Runtime error (func=(main), adr=21): Square root of a negative number
Runtime error (func=(main), adr=21): Square root of a negative number
##############################################
Delta: -243
Não posso extrair raiz de número negativo
##############################################
Tem como resolver essa saída?

Desde já agradeço a sua atenção e a todos que contrubuíram.



reply via email to

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