Back-End

16 jan, 2007

Fórmulas matemáticas para o VB6

Publicidade

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!