hallar el arcocoseno de un numero en visual basic 6

AlpeoT
06 de Junio del 2004
dado que visual basic solo tiene Sin,Cos,Tan,Atn como funciones trigonometricas y me toca hallar el arco-coseno = inversa seno

como hago esa funcion en Visual Basic

muchas gracias por adelantado

LDU
06 de Junio del 2004
Yo tengo el mismo problema que tu y no tengo ni idea. El caso esk lo necesito ya para acabar con un programa para clase y me estoy desesperando.
Yo necesito tanto el arcoseno como el arcocoseno. Es decir sin(x)=numero, pues necesito el valor de x que seria x=arcsin(numero) donde numero es conocido.
Por favor que alguien nos ayude. Gracias

VOCA UNO
06 de Junio del 2004
¿Ya no se acuerdan de sus clases de Trigonometria?, ¡Mugres asnos!.

¿A que son iguales ArcSen y ArcCos en terminos de ArcTan?

¿No pueden ni realizar una busqueda completa en la ayuda de Visual Basic?, ¡Mugres huevones y pelotudos!

La ayuda del Visual Basic claramente indica, en el apartado de Funciones Matematicas Derivadas, que:

Inverse Sine Arcsin(X) = Atn(X / Sqr(-X * X + 1))
Inverse Cosine Arccos(X) = Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1)

Como pueden ver, la razon por la cual esas funciones no son funciones intrinsecas, es porque es muy facil implementarlas.

Aqui les dejo las dos funciones ya implementadas en codigo:

Function ArcSin(intNumero As Double) As Double
ArcSin = Atn(intNumero / Sqr(-intNumero * intNumero + 1))
End Function

Function ArcCos(intNumero As Double) As Double
ArcCos = Atn(-intNumero / Sqr(-intNumero * intNumero + 1)) + 2 * Atn(1)
End Function

Solo copien este codigo, peguenlo en su proyecto, y podran llamar a las funciones ArcSin y ArcCos, de la misma forma que si llamaran a las otras funciones (Sin y Cos). Ejemplo:

MsgBox ArcSin(Text1.Text)

LDU
06 de Junio del 2004
Que conste ke yo he mirado en la ayuda y he hecho lo ke decias y el resultado de esa función era el mismo numero ke yo metía asi que debo hacer otro fallo.
Asik x favor no nos llames asi, ke yo de trigonometría a lo mejor se + ke tu . gracias de todas formas

VOCA UNO
06 de Junio del 2004
¿Si copiaste este codigo?

Function ArcSin(intNumero As Double) As Double
ArcSin = Atn(intNumero / Sqr(-intNumero * intNumero + 1))
End Function

Function ArcCos(intNumero As Double) As Double
ArcCos = Atn(-intNumero / Sqr(-intNumero * intNumero + 1)) + 2 * Atn(1)
End Function

A mi me funciona bien. Cabe señalar que el valor lo devuelve en Radianes (no en Grados).

Para que devuelva el valor en grados, solo hay que hacer la conversion utilizando la regla de tres. Aqui les dejo el codigo modificado para que devuelva el valor en grados:

Function ArcSin(intNumero As Double) As Double
Dim intTemporal As Double
intTemporal = Atn(intNumero / Sqr(-intNumero * intNumero + 1))
ArcSin = (intTemporal * 180) / 3.14159265358979
End Function

Function ArcCos(intNumero As Double) As Double
Dim intTemporal As Double
intTemporal = Atn(-intNumero / Sqr(-intNumero * intNumero + 1)) + 2 * Atn(1)
ArcCos = (intTemporal * 180) / 3.14159265358979
End Function

LDU
06 de Junio del 2004
Ok, ya tenia en cuenta que lo devolvía en radianes, era problema del valor que metía, ya lo he arreglado. De todas formas habría que hacer una pequeña modificación al código cuando se quiere calcular el arcoseno 1 pues se divide entre 0 y no es posible. Habría que hacer esto:
if num=1 then
arcSin=Pi/2
elseif num=-1 then
arcSin=-Pi/2
else
arcSin=Atn(num/sqr(-num*num+1))
end if

VOCA UNO
06 de Junio del 2004
Para Pepito:

Eres un ¡Mugre ignorante!, ¿Nunca cursaste bachillerato o una carrera profesional?

El codigo que pones Nombre_Variable=1/Sin(x), es para calcular la "Funcion Inversa del Seno", o sea, ¡La Cosecante!.

No confundas "Inversa del Seno", con "Funcion Inversa del Seno", porque son distintos.

Aqui te pongo las funciones para refrescar tu miserable cerebro:

Funcion Inversa Funcion Inversa

Seno ArcSen Cosecante
Coseno ArcCos Secante
Tangente ArcTan Cotangente
Cosecante ArcCsc Seno
Secante ArcSec Coseno
Cotangente ArcCtg Tangente

pepito
06 de Junio del 2004
A ver,si por ejemplo arcocoseno es la inversa del seno,eso quiere decir que arcocoseno(x)=1/seno(x) si no me equivoco no?.¿Has probado a poner nombre_variable=1/sen(x)?.No se si seria asi,tengo algo abandonadas las mates,pero prueba a ver si te funciona.

LDU
06 de Junio del 2004
Mira x ejemplo sin90º=1 y arcsin1=90º no se si asi lo entiendes. Yo lo ke tengo es el valor de 1 y necesito los 90º, no sé si me explico. Es decir no es como tu dices, eso es la cosecante. Estas son las inversas (k no me sirven pa lo ke yo quiero):
Cosecante(x)=1/sin(x)
Secante(x)=1/cos(x)
cotangente(x)=1/tan(x)
Buaaaa me estoy volviendo loca!!!!!