Vamos escrever quatro funções, cada uma usando uma maneira diferente de determinar a paridade de um número.
Use a função Excel Even:
Function ÉPar(Number As Long) As Boolean ÉPar = (WorksheetFunction.Even(Number) = Number) End Function
A partir do último dígito (i) do número e com a ajuda da comparação binária:
- se i And 1 = 0 então i é par;
- se i And 1 = 1 então i é ímpar.
Function ÉPar2(Number As Long) As Boolean Dim lngTemp As Long lngTemp = CLng(Right(CStr(Number), 1)) ÉPar2 = (lngTemp And 1) = 0 End Function
Dividir por dois. A diferença entre a parte inteira e eventualmente decimal = 0 se i for par.
Function ÉPar3(Number As Long) As Boolean Dim sngTemp As Single sngTemp = Number / 2 ÉPar3 = ((Int(sngTemp) - sngTemp) = 0) End Function
Usando o módulo:
Function ÉPar4(Number As Long) As Boolean ÉPar4 = (Number Mod 2 = 0) End Function
Option Explicit Sub Main_Even_Odd() Dim i As Long For i = -50 To 48 Step 7 Debug.Print i & " : ÉPar ==> " & IIf(ÉPar(i), "is even", "is odd") _ & " " & Chr(124) & " ÉPar2 ==> " & IIf(ÉPar2(i), "is even", "is odd") _ & " " & Chr(124) & " ÉPar3 ==> " & IIf(ÉPar3(i), "is even", "is odd") _ & " " & Chr(124) & " ÉPar4 ==> " & IIf(ÉPar4(i), "is even", "is odd") Next End Sub
Foto: © dennizn - Shutterstock.com