Raciocinio logico erroneo, preciso arrumar a conta

Delphi

30/07/2004

olá, eu estou com uma divida na sequencia logica desse calculo abaixo!

IA:=strtofloat(E1.text);
AR:=strtofloat(E2.text);
AI:=strtofloat(E3.text);
IA * sen(AI) = x * sen(AR);
x := IA * sen(IA) / Sen(AR);
E4.text:=floattostr(X);

este raciocinio, da um resultado diferente de meu esboço no carderno...

no caderno é assim:

IA * Sen AI = x * sen(AR)
1 * sen 60º = x * sen 45º
1 * Raiz3/2 = x * Raiz 2/2
x = raiz3/2 / raiz2/2
x = raiz6/2

Como posso resolver está conta, no delphi?
Pesso ajuda pois tentei varios metodos, mais nenhum chegou perto.
os resultados deram -3,20...
E isso eu não quero...

variaveis todas reais...


Gollum

Gollum

Curtidas 0

Respostas

Paulo_amorim

Paulo_amorim

30/07/2004

IA:=strtofloat(E1.text); AR:=strtofloat(E2.text); AI:=strtofloat(E3.text); IA * sen(AI) = x * sen(AR); <--- essa x := IA * sen(IA) / Sen(AR); E4.text:=floattostr(X);


Olá

Só pra efeito de confirmação, vc escreveu essa linha no Delphi? (a que eu coloquei com seta)
pois ela é dispensavel, logo se vê
Não eh necessario vc coloca-la já que vc soh quer atribuir o valor de x...

Espero que ajude
Até+


GOSTEI 0
Persist

Persist

30/07/2004

Caro amigo, acho que seu caderno está errado.
IA * Sen AI = x * sen(AR) 1 * sen 60º = x * sen 45º 1 * Raiz3/2 = x * Raiz 2/2 x = raiz3/2 / raiz2/2 ==> raiz2/2 = 1 x = raiz6/2


Então a última linha ficaria:
x = raiz6/4 ou x = raiz3/2



GOSTEI 0
Paulo_amorim

Paulo_amorim

30/07/2004

Caro amigo, acho que seu caderno está errado. [quote:19eb0b04a7] IA * Sen AI = x * sen(AR) 1 * sen 60º = x * sen 45º 1 * Raiz3/2 = x * Raiz 2/2 x = raiz3/2 / raiz2/2 ==> raiz2/2 = 1 x = raiz6/2


Então a última linha ficaria:
x = raiz6/4 ou x = raiz3/2
[/quote:19eb0b04a7]

Olá

Não, não... por raiz3/2 ele quis dizer (raiz3)/2 e (raiz2)/2, que são os valores do seno de 60 e 45, respec. :wink:

Até+


GOSTEI 0
Gollum

Gollum

30/07/2004

Gostaria de dizer obrigado ao tentar..
mais eu quero fazer uma conta assim:

IA * sen(AI) = x * Sen(AR);
onde eu quero isolar o termo nb.
por isso pesso ajuda no quesito
IA:=strtofloat(E1.text);
AR:=strtofloat(E2.text);
AI:=strtofloat(E3.text);
IA * sen(AI) = x * sen(AR);
x := IA * sen(IA) / Sen(AR);
E4.text:=floattostr(X);


GOSTEI 0
Gollum

Gollum

30/07/2004

vc saberia usar a formula de Snell descartes
na * sen i = nb * sen r

eu preciso achar um valor para nb


GOSTEI 0
Paulo_amorim

Paulo_amorim

30/07/2004

x := [b:42a7f84e36]IA[/b:42a7f84e36] * sen([b:42a7f84e36]IA[/b:42a7f84e36]) / Sen(AR);


Olá

Creio que vc trocou AI por IA...

Só pra lembrar, eh sempre bom deixar as variaveis bem explicitas (com significado claro) pra esses casos...

Espero que ajude
Até+


GOSTEI 0
Persist

Persist

30/07/2004

Desculpe, entendí errado.
Mas ainda estou com uma dúvida:
x = raiz3/2 / raiz2/2 
x = raiz6/2 
=================
se x = ((raiz3)/2) / ((raiz2)/2)
então x = 2(raiz3) / 2(raiz2) = raiz3 / raiz2


É isso mesmo ?


GOSTEI 0
Gollum

Gollum

30/07/2004

Gollum diz que seu raciocinio está errado....

O que é para ser feito é:

na * sen i = nb * sen r

dados de entrada :
na, sen i , sen r : real;

dados de saida:
nb: real;

nb := na * sen i / sen r;
e1.text:=floattostr(nb);

está rotina que eu tenho que fazer mais não esta dando certo...


GOSTEI 0
Persist

Persist

30/07/2004

Pq não dá certo?
Debugue cada variável da instrução antes de executá-la e o resultado depois de executar com ShowMessage(FloatToStr(variavel)).
Ou então, rode pelo F9 e coloque o cursor na variável que ele mostra o valor; ou então Ctrl+F7 e digite a variável.
Creio que seja simples pegar um erro destes.


GOSTEI 0
POSTAR