Para simular um programa no computador você deverá proceder da seguinte maneira:
Neste ponto, já se pode acionar o programa, que deverá ativar uma janela de depuração e parar no início da função/procedimento marcado.
Na simulação, o comando (linha) selecionado será aquele ainda por
executar. Após a execução de cada comando, o valor das variáveis
inspecionadas pode mudar. No término do programa, a janela de
depuração desaparece.
O Tipo de dados Boolean
O tipo de dados chamado de Booleano possui apenas dois valores: TRUE e FALSE. Uma variável pode ser declarada como booleana assim:
Dim Teste As Boolean
Esta variável pode receber um valor booleano:
Teste = True
Uma variável booleana pode aparecer em expressões nos lugares onde uma condição poderia aparecer. Por exemplo:
If Teste Then
Essa expressão equivale a:
If Teste = TRUE Then
Vejamos por exemplo uma função que executa o Teste de Uauá (ver exercícios do capítulo anterior). Este teste recebe como parâmetros um capital inicial, uma taxa de juros e um capital final. O teste retorna um valor booleano: Verdadeiro se é possivel que o capital final foi alcançado por meio de juros compostos aplicados ao capital inicial na taxa indicada; Falso em caso contrário.
Function TesteUaua(CapIni As Double,
Taxa As Double,
CapFim As Double) As Boolean
' Testa se é plausível que CapFim tenha sido obtido
' a partir de CapIni sob juros compostos com Taxa mensal
Dim CapAtual As Double 'Capital até o momento
Dim NMeses As Integer 'Número de meses
Dim Resultado As Boolean
'Inicialização
CapAtual = CapIni
NMeses = 1
Resultado = False 'Começa assumindo teste falso
'Principal
Do While CapAtual <= CapFim
'Testa o sucesso do resultado
If CapAtual = CapFim Then
Resultado = True
End If
'Prepara próxima iteração
CapAtual = CapAtual * (1 + Taxa)
NMeses = NMeses + 1
Loop
'Retorno
TesteUaua = Resultado
End Function
Podemos simular este programa no computador. Tente a seguinte chamada da planilha: =TesteUaua(1000;0,1;1331) e =TesteUaua(1000;0,1;1300).
Um segundo exemplo: vamos fazer uma macro que lê uma sequência de inteiros positivos e informa ao usuário se esta sequência está em ordem crescente. A seqüência é terminada por um número menor que zero.
Sub EmOrdem()
' Lê uma sequência de inteiros positivos e informa ao usuário
' se esta sequência está em ordem crescente
Dim Atual As Integer
Dim Velho As Integer
Dim AindaEmOrdem As Boolean
'Inicializações
AindaEmOrdem = True
Atual = CInt(InputBox(``Entre com um inteiro:''))
Velho = Atual 'Velho inicia com o mesmo valor que atual
'Principal
Do While Atual >= 0
If AindaEmOrdem And (Atual < Velho) Then
'Teste falhou
AindaEmOrdem = False
End If
'Prepara a próxima iteração
Velho = Atual
Atual = CInt(InputBox(``Entre com mais um inteiro:''))
Loop
If AindaEmOrdem Then
MsgBox(``Seqüência em ordem.'')
Else
MsgBox(``Desordenado.'')
End If
End Sub
Teste esse programa para as seqüências 1, 3, 7, 22, -1 e 1, 7, 2, 4, -23.
Exercícios
X MOD Y = 0Neste caso, também dizemos que X é um mútiplo de Y.
Pede-se construir uma função MaxMultiplo(MIN,MAX,DIV) que encontra o maior múltiplo de DIV entre MIN e MAX. Resolver este problema de duas maneiras:
Simular para MaxDivisor(5,10,3) e MaxDivisor(10,20,4).
Fazer uma planilha para MaxDivisor(0,100, X) onde X varia de 11 a 31, de 2 em 2.
Simular para 5 valores, 2 de crédito e 3 de débito.