Calcula o valor do seno de um ângulo (em radianos).

Sintaxe

Sin( < nAngle > )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

nAngle

numérico

Indica o valor do ângulo em radianos.

X

 

Retorno

Nome

Tipo

Descrição

nRet

numérico

Retorna o valor do seno de acordo com o ângulo informado.

Observações

  • Atenção ao utilizar como parâmetro valores maiores que 2^63 ou menores que -2^63, pois ocorrerá uma perda significante na chamada da função.

    Entrada

    SEH Exception

    Matherr Exception

    ±∞

    INVALID

    Sem domínio

    ±QNAN,IND

    None

    Sem domínio

    x ≥ 7.104760e+002

    INEXACT+OVERFLOW

    OVERFLOW

  • Os resultados "-0" são retornados devido à precisão de retorno das funções trigonométricas trabalhando em cima de PI com 8 casas decimais. Caso o resultado da função seja um valor negativo muito próximo de zero, porém algo menor que 0.00000001, a função retornará "-0", e a comparação com 0 irá retornar .T..

Exemplos

Exemplo 1
#DEFINE CRLF Chr(13)+Chr(10)
#DEFINE PI 3.14159265 // ACos(-1)
user function sin1()
  Local cMensagem := ""
  //+----------------------------------------------------------------------------+
  //|Exemplifica o uso da função Sin                                             |
  //+----------------------------------------------------------------------------+
  
  cMensagem += "Sin(  0) = " + cValToChar(Sin(0))           + CRLF
  cMensagem += "Sin( 30) = " + cValToChar(Sin(PI / 6))      + CRLF
  cMensagem += "Sin( 45) = " + cValToChar(Sin(PI / 4))      + CRLF
  cMensagem += "Sin( 60) = " + cValToChar(Sin(PI / 3))      + CRLF
  cMensagem += "Sin( 90) = " + cValToChar(Sin(PI / 2))      + CRLF
  cMensagem += "Sin(120) = " + cValToChar(Sin(2 * PI / 3))  + CRLF
  cMensagem += "Sin(135) = " + cValToChar(Sin(3 * PI / 4))  + CRLF
  cMensagem += "Sin(150) = " + cValToChar(Sin(5 * PI / 6))  + CRLF
  cMensagem += "Sin(180) = " + cValToChar(Sin(PI))          + CRLF
  cMensagem += "Sin(210) = " + cValToChar(Sin(7 * PI / 6))  + CRLF
  cMensagem += "Sin(225) = " + cValToChar(Sin(5 * PI / 4))  + CRLF
  cMensagem += "Sin(240) = " + cValToChar(Sin(4 * PI / 3))  + CRLF
  cMensagem += "Sin(270) = " + cValToChar(Sin(3 * PI / 2))  + CRLF
  cMensagem += "Sin(300) = " + cValToChar(Sin(5 * PI / 3))  + CRLF
  cMensagem += "Sin(315) = " + cValToChar(Sin(7 * PI / 4))  + CRLF
  cMensagem += "Sin(330) = " + cValToChar(Sin(11 * PI / 6)) + CRLF
  cMensagem += "Sin(360) = " + cValToChar(Sin(2 * PI))
  //+----------------------------------------------------------------------------+
  //|Apresenta uma mensagem com os resultados obtidos                            |
  //+----------------------------------------------------------------------------+
Return MsgInfo(cMensagem, "Exemplo do Sin")

Resultado do Exemplo

Abrangência

Microsiga Protheus 8.11, Protheus 10, Protheus 11

Veja também

 

  • Sem rótulos