Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

System

Ouvi falar de que existem métodos matemáticos para chutar equações. Qu

Recommended Posts

Olá!Preciso fazer uma função que calcule equações.Ouvi falar que existem métodos matemáticos para fazer isso "chutando" as variáveis, mas qual método usar e como ele funciona?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo,Depende de qual tipo de equação você quer resolver. Se for uma equação de 2º grau por exemplo o algoritimo seria assim:1- Pergar os coeficientes da equação:2- calcular o delta a partir dos valores recebidos3- Se o delta for positivo calcular as raizes da equação;4- Se o delta for negativo não existe raizes reaist+

Compartilhar este post


Link para o post
Compartilhar em outros sites

o melhor metodo para resolver este tipo de problema seria usando pilhas.

 

a estrutura PILHA funciona da seguinte maneira..

imagine uma pilha de pratos..

se você quer utilizar um prato, logicamente você vai pegar o ultimo que foi empilhado..

entao, pilha trabalha com o ultimo valor armazenado em um vetor..

 

como eu poderia relacionar isso com meu problema de expressoes ? :(

nao eh tao facil se você naum tiver noçao sobre o assunto...

mas aqui vai a relação.. ^_^

por exemplo, você tem uma expressao, tipow:

5+3*2-4/6
a primeira coisa a fazer é separar as operações com parenteses respeitando a ordem de prioridades (*,/,+,-)

ficaria assim:

((5+(3*2))-(4/6))
ta bom.. e agora?!!

eh soh seguir a logica

[*]caso o caractere for numero ('0'..'9'), eu o guardo em uma string..

[*]caso for ('+','-','*','/') eu aguardo ele na pilha (em um vetor)

[*]caso for ')' eu o retiro da pilha e o guardo na string que esta armazenando as letras

seguindo essas condiçoes, ficaria assim nossa expressão:

5 3 2 * + 4 6/-

meio feia, naum?!! rsrs :D

 

agora eh soh jogar essa expressao posfixa numa funçao para ser trabalhada...

 

como? :(

 

acompanhe a logica:

os a expressao posfixa ("5 3 2 *+4 6/-") eh uma string..

eh soh correr os seus caracteres 1 a 1

quando achar um operador(caractere == '+','-','*','/') eu faço a operação correspondente com os dois ultimos numeros passados...

 

eh soh isso...

 

espero ter lhe ajudado

 

este site da USP esta dando um exemplo em C...

..Veja aqui

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo,Depende de qual tipo de equação você quer resolver. Se for uma equação de 2º grau por exemplo o algoritimo seria assim:1- Pergar os coeficientes da equação:2- calcular o delta a partir dos valores recebidos3- Se o delta for positivo calcular as raizes da equação;4- Se o delta for negativo não existe raizes reaist+

Poderia me mostrar em algoritmo, porque não lembro muita coisa sobre isso.Abraços...System

Compartilhar este post


Link para o post
Compartilhar em outros sites

Existem vários tipos de função, aki só foram citados a equção de 2° grau.você poderia específicar qual você gostaria de saber, aquela q você tem mais dificuldades

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.