Neste artigo vou abordar alguns cálculos que utilizamos na matemática pura e aplicada. Esses cálculo são essenciais para a criação de sistema na área da engenharia. A idéia é transformar os cálculos mais conhecidos, em cálculos voltados para o VB6.
Acho que todo mundo lembra um pouco das famosas fórmulas da trigonométrica que quebrava nossas cabeças no ensino médio e no superior para quem precisou.
Como já abordei em outros artigos a respeito das funções internas do VB6, hoje não vai ser diferente! Teremos que aprender outros tipos de funções, que vão ser as funções matemáticas do VB6. Vamos ver algumas delas agora:
Sin
Finalidade: Calcula o seno de um número.
Sintaxe: Sin(Número)
Obs.: Número - Qualquer expressão numérica válida que expresse um ângulo em radianos.
Exemplo:
Msgbox Sin(1.25) ‘Teste = 0.948984619355586
Msgbox Sin(.79) ‘Teste = 0.710353272417608
Cos
Finalidade: Calcula o cosseno de um ângulo.
Sintaxe: Cos(Número)
Obs.: Número - Pode ser qualquer expressão numérica válida que expresse um ângulo em radianos.
Exemplo:
Const PI = 3.14159265
Msgbox Cos(PI) ‘Teste = -1
Msgbox Cos(PI/2) ‘Teste = 1.79489651491878E-09
Atn
Finalidade: Calcula o Arco Tangente de um número.
Sintaxe: Atn(Número)
Obs.: A função Atn retorna o número de radianos referentes ao arco tangente do ângulo
Exemplo:
Msgbox Atn(30) ‘Teste = 1.53747533091665
Msgbox Atn(45) ‘Teste = 1.54857776146818
Tan
Finalidade: Calcula a tangente de um número.
Sintaxe: Tan(Número)
Obs.: Número - Qualquer expressão numérica válida que expresse um ângulo em radianos note que utilizamos um ponto antes do numero para expressar esse valor que simboliza 0.79
Exemplo:
Msgbox Tan(.79) ‘Teste = 1.00924628838275
Exp
Finalidade: Retorna o valor de e (base de um logaritmo natural) elevado a uma potência qualquer.
Sintaxe: Exp(Número)
Obs.: Número - Qualquer expressão numérica válida.
Exemplo:
Msgbox Exp(1) ‘Teste = 2.71828182845905
Msgbox Exp(2) ‘Teste = 7.38905609893065
Msgbox Exp(-2) ‘Teste = 0.13533528323661
O valor é aproximadamente 2,718282. Se o valor do número for superior a 709,782712893, ocorrerá um erro de overflow.
Log
Finalidade: Calcula o logaritmo natural de um número.
Sintaxe: Log(Número)
Obs.: Número - Qualquer expressão numérica válida maior que zero.
Exemplo:
Msgbox Log(0) ‘Teste = 1
Msgbox Log(5) ‘Teste = 1.6094379124341
Sqr
Finalidade: Calcula a raiz quadrada de um número.
Sintaxe: Sqr(Número)
Obs.: Qualquer expressão numérica válida maior ou igual a zero.
Exemplo:
Msgbox Sqr(16) ‘Teste = 4
Fix
Finalidade: Retorna a parte inteira de um número.
Sintaxe: Fix(Número)
Obs.: Número - Qualquer expressão numérica válida. Se número contém Null, o valor de retorno será Null também.
Exemplo:
Msgbox Fix(12.556) ‘Teste = 12
Msgbox Fix(-12.556) ‘Teste = -12
Msgbox Fix(1.6) ‘Teste = 1
Int
Finalidade: Retorna a parte inteira de um número.
Sintaxe: Int(Número)
Obs.: Número - Qualquer expressão numérica válida. Se número contém Null, o valor de retorno será Null também.
Exemplo:
Esta função opera de forma idêntica à função Fix.
Rnd
Finalidade: Retorna um número aleatório (randômico).
Sintaxe: Rnd[(Número)]
Obs.: Número - Qualquer expressão numérica válida.
Esta função retorna um valor menor que 1 e maior ou igual a zero.
Exemplo:
Msgbox Rnd
Sgn
Finalidade: Retorna um inteiro conforme o sinal do número.
Sintaxe: Sgn(Número)
Obs.: Número - Qualquer expressão numérica válida.
Ajustes:
Se Número: Sgn Retorna:
Maior que zero 1
Igual a zero 0
menor que zero -1
Exemplo:
Msgbox Sgn(12) ' Teste = 1
Msgbox Sgn(-2.4) ' Teste = -1
Msgbox Sgn(0) ' Teste = 0
Agora com essas funções que acabamos de aprender, iremos criar para o VB6 as fórmulas matemáticas em questão. Vamos começar?
Secante
Sintaxe: Sec(X) = 1 / Cos(X)
Fórmula:
Dim X, Sec
X = 45
Sec = 1 / Cos(X)
MsgBox Sec ‘1,9035....
Cosecante
Sintaxe: Cosec(X) = 1 / Sin(X)
Fórmula:
Dim X, Cosec
X = 45
Cosec = 1 / sin(X)
MsgBox Cosec ‘1,1752….
Cotangente
Sintaxe: Cotan(X) = 1 / Tan(X)
Fórmula:
Dim X, Cotan
X = 45
Cotan = 1 / Tan(X)
MsgBox Cotan ‘1,6173….
Arcoseno
Sintaxe: Arcsin(X) = Atn(X / Sqr(-X * X + 1))
Fórmula:
Dim X, Arcsin
X = 0.45
Arcsin = Atn(X / Sqr(-X * X + 1))
MsgBox Arcsin ‘0,4667…
Arcocoseno
Sintaxe: Arccos(X) = Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1)
Fórmula:
Dim X, Arccos
X = 0.35
Arccos = Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1)
MsgBox Arccos ‘1,21....
Não se assustem, mas as fórmulas estão aumentando mesmo!
Arcosecante
Sintaxe: Arcsec(X) = Atn(X / Sqr(X * X – 1)) + Sgn((X) -1) * (2 * Atn(1))
Fórmula:
Dim X, Arcsec
X = 90
Arcsec = Atn(X / Sqr(X * X - 1)) + Sgn((X) - 1) * (2 * Atn(1))
MsgBox Arcsec ‘2,35...
Arcocosecante
Sintaxe: Arccosec(X) = Atn(X / Sqr(X * X - 1)) + (Sgn(X) - 1) * (2 * Atn(1))
Fórmula:
Dim X, Arccosec
X = 60
Arccosec = Atn(X / Sqr(X * X - 1)) + (Sgn(X) - 1) * (2 * Atn(1))
MsgBox Arccosec ‘0,7854…
Arcocotangente
Sintaxe: Arccotan(X) = Atn(X) + 2 * Atn(1)
Fórmula:
Dim X, Arccotan
X = 36
Arccotan = Atn(X) + 2 * Atn(1)
MsgBox Arccotan '3,11...
Seno Hiperbólico
Sintaxe: HSin(X) = (Exp(X) - Exp(-X)) / 2
Fórmula:
Dim X, HSin
X = 75
HSin = (Exp(X) - Exp(-X)) / 2
MsgBox HSin '1,86...
Coseno Hiperbólico
Sintaxe: Hcos(X) = (Exp(X) + Exp(-X)) / 2
Fórmula:
Dim X, Hcos
X = 45
Hcos = (Exp(X) - Exp(-X)) / 2
MsgBox Hcos '1,74...
Tangente Hiperbólica
Sintaxe: Htan(X) = (Exp(X) - Exp(-X)) / (Exp(X) + Exp(-X))
Fórmula:
Dim X, Htan
X = 45
Htan = (Exp(X) - Exp(-X)) / (Exp(X) + Exp(-X))
MsgBox Htan '1
Secante Hiperbólica
Sintaxe: HSec(X) = 2 / (Exp(X) + Exp(-X))
Fórmula:
Dim X, HSec
X = 45
HSec = 2 / (Exp(X) + Exp(-X))
MsgBox HSec '5,72...
Cosecante Hiperbólica
Sintaxe: Hcosec(X) = 2 / (Exp(X) - Exp(-X))
Fórmula:
Dim X, Hcosec
X = 75
Hcosec = 2 / (Exp(X) - Exp(-X))
MsgBox Hcosec '5,35...
Cotangente Hiperbólica
Sintaxe: Hcotan(X) = (Exp(X) + Exp(-X)) / (Exp(X) - Exp(-X))
Fórmula:
Dim X, Hcotan
X = 0.9
Hcotan = (Exp(X) + Exp(-X)) / (Exp(X) - Exp(-X))
MsgBox Hcotan '1,39…
Arcoseno Hiperbólico
Sintaxe: Harcsin(X) = Log(X + Sqr(X * X + 1))
Fórmula:
Dim X, Harcsin
X = 10
Harcsin = Log(X + Sqr(X * X + 1))
MsgBox Harcsin '2,99...
Arcocoseno Hiperbólico
Sintaxe: Harccos(X) = Log(X + Sqr(X * X - 1))
Fórmula:
Dim X, Harccos
X = 20
Harccos = Log(X + Sqr(X * X - 1))
MsgBox Harccos '3,68...
Arcotangente Hiperbólica
Sintaxe: Harctan(X) = Log((1 + X) / (1 - X)) / 2
Fórmula:
Dim X, Harctan
X = 0.35
Harctan = Log((1 + X) / (1 - X)) / 2
MsgBox Harctan '0,36...
Arcosecante Hiperbólica
Sintaxe: Harcsec(X) = Log((Sqr(-X * X + 1) + 1) / X)
Fórmula:
Dim X, Harcsec
X = 0.75
Harcsec = Log((Sqr(-X * X + 1) + 1) / X)
MsgBox Harcsec '0,79...
Arcocosecante Hiperbólica
Sintaxe: Harccosec(X) = Log((Sgn(X) * Sqr(X * X + 1) +1) / X)
Fórmula:
Dim X, Harccosec
X = 1
Harccosec = Log((Sgn(X) * Sqr(X * X + 1) + 1) / X)
MsgBox Harccosec '0,88...
Arcocotangente Hiperbólica
Sintaxe: Harccotan(X) = Log((X + 1) / (X – 1)) / 2
Fórmula:
Dim X, Harccotan
X = 45
Harccotan = Log((X + 1) / (X - 1)) / 2
MsgBox Harccotan '0,22...
Logaritmo em base N
Sintaxe: LogN(X) = Log(X) / Log(N)
Fórmula:
Dim X, N, LogN
X = 1
N = 10
LogN = Log(X) / Log(N)
MsgBox LogN '0
Então é isso! Essas fórmula foram todas testadas, mas caso fique alguma dúvida, por favor entre em contato. Espero que essas fórmulas sejam bem-vindas para quem está precisando programar cálculos matemático no VB6. O VB6 é FASCINANTE.
Até a próxima com certeza!
Fonte: Imasters
Por: R. Alexandre