Funções Matemáticas - Visual Basic 6 e VB.NET    


A seguir vamos comparar as principais funções matemáticas presentes no VB6 e VB.NET. Quando a função não existir irei mostrar uma função que se aproxima do resultado da função implícita.

Para o VB.NET teremos que importar o namespace - System.Math usando a declaração imports ou acessar os métodos a partir da classe Math.

1 - ) Funções Gerais

Valor Absoluto - Absolute valor - Abs - Dado um número , a função valor absoluto retorna o valor positivo para este número. Ex: abs(-15) = 15

VB 6 VB .NET

abs(valor)

imports System.Math

Abs(valor)

ou se não desejar usar a declaração: imports System.Math

Math.Abs(numero)

Ceiling -Retorna o menor número inteiro maior que ou igual ao número especificado.

VB 6 VB .NET

VB 6 não possui esta função. Podemos usar o código a seguir:

public function Ceil(valor as double)

    Ceil = CDbl(CLng(valor + 0.5))

end function

Clng arredonda para o decimal mais próximo para forçar somarmos 0.5. Só funcionará para valores entre -2,147,483,648 e 2,147,483,647.

métdo Ceiling shared

imports System.Math

Ceiling(valor)

Esta função retorna um  double.

 

 

Exp - e elevado a potência de um número indicado

 

VB 6

VB .NET

Função exp  - Retorna um double.

 

exp(valor as number) 

 

métdo Exp shared - Retorna um double.

 

imports System.Math

 

Exp(valor)  

Exponenciação - Pow ( VB6 operador ^)

VB 6

VB .NET

Operador :  ^  =  base ^ power

x ^ y

Retorna um double .

métdo Pow shared - Retorna um double.

imports System.Math

Pow(base, power)  ou Math.Pow(base, power)

Floor  - Retorna o maior número inteiro menor que ou igual ao número especificado.

VB 6

VB .NET

VB 6 não possui esta função. Podemos uar o código abaixo:d

public function Floor(valor as double)

    Floor = CDbl(CLng(valor - 0.5))

end function

Só funciona na faixa de valores -2,147,483,648 e 2,147,483,647 .

métdo Floor shared

imports System.Math

Floor(valor)  ou Math.Floor(Valor)

Retorna um double.

Logaritimo

VB 6

função  log  - Retorna um double.

Log(valor as number)

VB .NET

 método Log shared , base e - Retorna um double.

imports System.Math

Log(valor)

ou

 método Log10 shared  - Retorna um double.

imports System.Math

Log10(valor)

ou

 método Log shared , qualquer base - Retorna um double.

imports System.Math

Log(valor, base)

Max - retorna o maior valor entre dois valores

VB 6

O VB 6 não possui esta função . Podemos usar o código abaixo:

Function Max(valor1 as Double, valor2 as Double) as Double

    if (valor1 > valor2 2) then
        Max = valor1

    else
        Max = valor2

    end if

End Function

VB .NET

 método Max shared

imports System.Math

Max(valor1, valor2)

valor1 e valor2 precisam ser do mesmo tipo.

Min - retorna o menor valor entre dois valores.

VB .NET

método Min shared

imports System.Math

Min(valor1, valor2)

valor1 e valor2 precisam ser do mesmo tipo.

VB

VB 6 não possui esta função . Podemos usar o código abaixo:

Function Min(valor1 as Double, valor2 as Double) as Double

    if (valor1 < valor2 2) then
        Min = valor1

    else
        Min = valor2

    end if

End Function

Gerar números aleatórios

VB

Função Rnd

Rnd([numero])

Função Randomize

Randomize([semente])

Retorna um valor double contendo um número aleatório entre 0 e 1 com até 7 casas decimais.

  • No VB, Rnd pode tomar um argumento opcional que determina o tipo de números aleatórios retornados:
  • Se numero < 0: o mesmo número usando o numero como semente
  • Se numero > 0: o próximo número aleatório na sequência.
  • Se numero = 0: o número mais recente gerado.
  • nenhum valor fornecido: o próximo número aleatório na sequência.

O VB possui a declaração Randomize que realimenta o gerador de números usando a semente para alimentar o gerador.

VB .NET

classe Random

A plataforma .NET fornece a classe  Random para gerar números aleatórios:

A classe Random fornece dois construtores:

  • Random(), cria uma instância da classe usando o valor da semente baseada na hora atual.
  • Random(semente), cria uma instância da classe usando um semente do tipo integer como valor da semente.

Um gerador de números randômicos usa o valor da semente para gerar uma sequência de números pseudo-randômicos. Quando você quer um novo número randômico , o gerador fornece o próximo número naquela sequência. É por isto que todos os métodos da classe Random começam com Next.

Método Next

O método Next retorna um inteiro randômico. Há três variações:

  • myRandom.Next(), retorna um inteiro positivo no intervalo de 0 a 2,147,483,646  
  • myRandom.Next(valor), retorna um inteiro positivo no intervalo de 0 até (valor - 1). valor precisa ser um interiro maior ou igual a zero.
  • myRandom.Next(MenorValor, MaiorValor), retorna um inteiro positivo no intervalo de MenorValor até (MaiorValor - 1). MenorValor e MaiorValor . Precisa ser inteiros e MaiorValor deve ser maior ou igual a  MenorValor.

Método NextDouble

myRandom.NextDouble()

Este método retorna um randômico do tipo double entre 0.0 e 1.0. 

método NextBytes

myRandom.NextBytes(myByteArray)

Este método preenche um dado array de bytes com valores randômicos.

Arredondar - Rounding - arredonda para o inteiro mais próximo

VB 6

CInt(valor as number or String)

CLng(valor as number or String)

As funções  CInt e CLng realizam um arredondamento  mas também retorna valores inteiros ou longos.

VB .NET

 método Round shared

imports System.Math

Round(valor)

valor precisa ser um  Decimal ou um double.

Round shared method, round with specified precision

imports System.Math

Round(valor, numerodeDecimais)

valor precisa ser um  Decimal ou um doublenumeroDeDecimais precisar ser do tipo int.

Sinal de um número

VB 6

função Sgn

Sgn(valor)

Retorna um númreo indicando o sinal de valor.

Se valor for Sgn retorna
maior que zero 1
zero 0
menor que zero -1

VB .NET

método Sign shared

imports System.Math

Sign(valor)

Retorna um valor do mesmo tipo de valor.

Raiz quadrada

VB 6

função Sqr

Sqr(valor as number)

Retorna um double.

VB .NET

método Sqrt shared

imports System.Math

Sqrt(valor)

Retorna um double.

Em um outro artigo ire abordar as funções booleanas. Aguarde ...

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

  Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

Referências:


José Carlos Macoratti