domingo, 20 de outubro de 2013

OPERADORES DE COMPARAÇÃO

Operadores de comparação


    São operadores empregados para comparar duas expressões distintas, retornando True (Verdadeiro) ou False (Falso), de acordo com o resultado da comparação, utilizando a seguinte sintaxe:

Resultado = Expressão1  Operador Expressão2

    Onde Operador pode ser =, <>, <, >, >=, <=, Is e Like.
  • O valor resultante será sempre Null se uma das expressões for Null;
  • Se ambas ou uma das expressões forem tipos de dados numéricos ou uma Variant contendo um tipo de dado numérico, a comparação efetuada será numérica;
  • Se ambas as expressões forem stings, a comparação será string (caractere a caractere);
  • Se uma das expressões for um tipo de dado numérico e a outra for uma String ou Variant, contendo String não numérica, ocorrerá um erro do Type Mismatch (tipo sem equivalência);
  • Se uma das expressões for uma Variant contendo Empty e a outra for um número, ocorrerá uma comparação numérica empregando-se zero (0) no lugar do valor Empty;
  • Se uma das expressões for uma Variant contendo Empty e a outra for uma String, ocorrerá uma comparação String empregando-se uma String de comprimento zero0 (“”) no lugar do valor Empty;
  • Quando uma expressão Single é comparada com uma expressão Double, o valor Double é arredondado para um Single antes de efetuar a comparação;
  • Se uma expressão Currency é comparada com uma expressão Single ou Double, o valor Single ou Double é arredondado para um Decimal antes de efetuar a comparação;
  • Se uma expressão Decimal é comparada com uma expressão Single ou Double, o valor Single ou Double é arredondado para um Decimal antes de efetuar a comparação;
  • Para valores do tipo Currency, partes fracionárias menores que 0.0001 podem ser perdidas durante o arredondamento;
  • Para valores do tipo Decimal, partes fracionárias menores que 1E-28  podem ser perdidas durante o arredondamento ou pode ocorrer um erro de estouro de capacidade (overflow) ;
  • Os arredondamentos ocorridos ao se comparar tipos de variáveis diferentes podem indicar que dois valores sejam considerados iguais quando são diferentes nas sua casa decimais.
Até a Próxima!!

OPERADOR &

Operador &


    Empregado para concatenar duas expressões, empregando esta sintaxe:

Resultado = Número1 & Número2
  • Se uma das expressões não for String, ela será primeiro convertida para uma Variant do tipo String;
  • Se ambas as expressões forem do tipo String, o valor resultante será uma String;
  • Se ambas as expressões forem Null, o valor resultante será Null;
  • Se uma das expressões for Null ou Empty, ela será considerada como uma Strung de comprimento zero (“”).

Exemplo: Estes exemplos empregam o operador & para forçar a concatenação de valores:

Dim Resultado as variant
Resultado = “Gutemberg “ & “Silveira ‘Retorna “Gutemberg Silveira”
Resultado = “Lotus” & 123 ‘Retorna “Lotus123”
Resultado = “12” & “12” ‘Retorna “1212”

Até a Próxima!!

OPERADOR MOD

Operador Mod


    Empregado para retornar o resto da divisão de dois números, utilizando a seguinte sintaxe:

Resultado = Número1 Mod Número2

    O tipo de dados retornado pelo operador Mod é normalmente um valor arredondado para  Byte, Integer, Long ou uma variável Variant contendo Byte,  Integer ou Long, quer a variável seja ou não um número inteiro.
  • Ambas as expressões são arredondadas para um número inteiro antes de se efetuar o cálculo do resto;
  • Se uma das expressões for Null, o valor resultante será Null (propagação do Null);
  • Se uma das expressões for Empty, o valor resultante será sempre zero (0).

Exemplo: Os exemplos a seguir demonstram como utilizar o operador Mod para obter o resto da divisão de um número por outro:

Dim Resultado as variant
Resultado = 10 Mod 5 ‘Retorna 0
Resultado = 10 Mod 3 ‘Retorna 1
Resultado = 12.8 Mod 5 ‘Retorna 3

Até a Próxima!!

OPERADOR /

Operador /


    Empregado para dividir dois números, retornando um valor numérico de ponto flutuante de dupla precisão (Double) utilizando a seguinte sintaxe:

Resultado = Número1 / Número2

    O valor resultante deixará de ser um Double:
  • Se ambas as expressões forem do tipo Byte, Interger ou Single, o resultado será Single, a menos que ocorra um erro de estouro de capacidade (overflow), provocando um erro em tempo de execução;
  • Se ambas as expressões forem uma variável Variant contendo um valor Byte, Integer ou Single, o resultado será uma Variant contendo um Single a menos que ocorra um erro de estouro de capacidade (overflow), provocando a conversão para uma Variant contendo um valor Double;
  • Se a divisão envolver um valor Decimal e qualquer outro tipo de dados, o resultado será sempre Decimal;
  • Se uma ou outra expressão for uma Variant contendo Nnull, o resultado será sempre Null (propagação do Null);
  • Se o denominador for zero (0), ocorrerá um erro por estouro de capacidada (overflow);

Exemplo: Os seguintes exemplos demonstram o emprego do operador / para efetuar divisão em ponto flutuante:

Dim Valor as variant
Valor = 5/2 ‘Retorna 2.5
Valor = 1/3 ‘Retorna 0.333333

Até a Próxima!!

OPERADOR \

Operador \


    Empregado para dividir dois números e retornar a parte inteira da divisão, desprezando a parte fracionária, utilizando a seguinte sintaxe:

Resultado = Número1 \ Número2
  • Antes da divisão ser efetuada, ambas as expressões são arredondadas para Byte, Integer ou Long. O valor resultante será do tipo Byte, Integer, Long ou uma Variant contendo o tipo Byte, Integer, Long , independentemente do resultado ser ou não um número inteiro;
  • Se uma das expressões for Null, o resultado será sempre Null (propagação do Null).
  • Se uma das expressões for uma Variant contendo Empty, o resultado será zero;
  • Se o denominador for zero (0), ocorrerá um erro por estouro de capacidade (overflow).

Exemplo: O exemplo que se segue indica como empregar o operador \ para efetuar uma divisão inteira:

Dim Valor as variant
Valor = 11\4 ‘Retorna 2
Valor = 12\4 ‘Retorna 3
Valor = 10\3 ‘Retorna 3

Até a Próxima!!

OPERADOR –

Operador –


    Empregado para encontrar a diferença entre dois números ou para indicar um valor negativo, utilizando a seguinte sintaxe:

    Resultado = Número1 – Número2

    Observação: A operação de subtração emprega as mesmas regras de precisão utilizadas para o operador de adição.

Exemplo: Os seguintes exemplos são válidos para o uso do operador “-“ no cálculo da diferença dos números ou datas:

Resultado = 2 – 2 ‘Retorna 0
Resultado = 123.45 – 100 ‘Retorna –22.45
Exp = 10: Exp2 = 20/01/2003  ‘Inicialização das variáveis
Resultado = Exp1 + Exp2 ‘Retorna 10/01/2003 – subtrai 10 dias da data 

Até a Próxima!!

OPERADOR *

Operador *


    Utilizado para multiplicar dois números, empregando a seguinte sintaxe:

Resultado = Número1 * Número2

    Ardem de precisão do operador de multiplicação não é a mesma empregada na adição e subtração. Tipo  de dado resultante é sempre aquela da expressão de maior precisão, sando obedecida a seguinte ordem de ascendência na precisão: Byte, Integer, Long, Single, Currency, Double e Decimal, exceto quando:
  • A multiplicação envolve um Single com um Long, resultando em um Double;
  • Se uma ou ambas as expressões forem Null, o resultado será sempre Null.
  • Se uma ou ambas as expressões forem Empty, o resultado será 0.

Exemplo: O exemplo a seguir demonstra o emprego do operador * para multiplicar duas expressões válidas:

Dim Valor as variant
Valor = 3*4 ‘Retorna 12

Valor = 123.45 * 100 ‘Retorna 12345

Até a Próxima!!