Pesquisar este blog

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!!