Dando os primeiros passos - Escrevendo Código VB.NET - IV

 

Dando sequência aos artigos da série - Dando os primeiros passos - Escrevendo Código VB.NET -  neste artigo vou mostrar uma aplicação prática de toda a teoria vista até agora . Vamos criar uma aplicação no VB.NET usando alguns dos conceitos expostos e mostrar como podemos juntar as partes para criar algo de útil. Para que você se situe a série de artigos é :

  1. Dando os primeiros passos - Escrevendo Código VB.NET - I - variáveis e constantes

  2. Dando os primeiros passos - Escrevendo Código VB.NET - II - operadores e funções básicas

  3. Dando os primeiros passos - Escrevendo Código VB.NET - III - sub-rotinas e funções

Nossa aplicação irá realizar um cálculo matemático envolvendo valores monetários.

 

Vamos criar um programa para calcular o Valor Futuro de uma determinada aplicação financeira em um determinado período a uma taxa de juros definida.

 

O problema é básico ,  temos que criar uma função que receba como informação :

O resultado deve ser o Valor Futuro da aplicação para as condições definidas.

 

Se você nem sabe por onde começar eu vou lhe dar uma dica : felizmente o VB.NET já tem uma função para calcular o Valor Futuro : FV .

 

A sintaxe da função FV é a seguinte :

 

Function FV( _
   ByVal Rate As Double, _
   ByVal NPer As Double, _
   ByVal Pmt As Double, _
   Optional ByVal PV As Double = 0, _
   Optional ByVal Due As DueDate = DueDate.EndOfPeriod) As Double
Onde:
  • - Rate - a taxa do período - Double
  • - Nper - O total de pagamentos no período - Double
  • - Pmt - O pagamento feito em cada período - Double
  • - PV - O valor atual de  uma série de pagamentos futuros - Double
  • - Due - Define quando os pagamentos são devidos

 

Para ter uma visão da funcionalidade do aplicativo vamos escrever como deverá ser o fluxo de dados do aplicativo usando alguns dados como exemplo :

 

  1. Valor inicial - (R$) - 10000

  2. Taxa anual - (%) - 5

  3. Valor dos Depósitos mensais  - (R$) 200

  4. Período de investimento - (anos) - (tempo) 10

 

Se começarmos o investimento com R$ 10.000,00

       e investirmos R$ 200,00 por mês

            por 10 anos

                 a uma taxa de 5% ao ano

                       Iremos ter um valor futuro de : ?????

             

 

A fórmula usada por FV  é a seguinte :

 

FV  =  DepositoMensal * ((( 1 + TaxaMensal)  ^ Periodo -1 ) / TaxaMensal ) + ValorInicial * ( 1+ TaxaMensal) ^ Periodo

 

Perceba que a fórmula usa quatro variáveis que vamos ter que definir em nossa aplicação . Primeiro vamos criar uma aplicação do tipo Console por ser mais simples , depois iremos criar a mesma aplicação usando os Windows Forms. Vamos ao trabalho:

1 - Inicie um novo projeto no Visual Studio.NET com as seguintes características (sinta-se a vontade para alterar a seu gosto.)

  1. Project Types : Visual Basic Projects
  2. Templates : Console Application
  3. Name : ValorFuturo1
  4. Location : c:\vbnet\ValorFuturo1
2 - Altere o nome do modulo para ModVF.vb.(Clique com o botão direito do mouse sobre o nome e selecione Renomear)

Veja ao lado a janela - Solution Explorer - e o módulo preparado para receber o código da nossa aplicação - ValorFuturo1

 

Como já mostramos acima temos que definir quatro variáveis para armazenar os dados que vamos informar para a aplicação calcular o valor futuro usando a forma já descrita. 

 

Private  dbTaxaAnual As Double          = 0

Private  iAnos As Integer                   = 0

Private  decValorInicial  As Double       = 0

Private  decDepositoMensal AS Double  = 0

Declaramos as quatro variáveis como privadas (Private) desta forma elas serão visíveis somente dentro do módulo.

- No início de cada nome de cada uma das variáveis usei um prefixo para identificar qual o tipo da variável (esta é uma boa prática de programação), assim : 

  • db - Double   
  • i - Integer
  • dec - Decimal

Com exceção da variável iAnos que foi definida como sendo do tipo inteiro as demais foram definidas como sendo do tipo Double. Todas as variáveis foram iniciadas com valor igual a 0.

 

Eu poderia colocar todo o código da aplicação na rotina Main , mas isto não seria muito aconselhável  pois iríamos gerar um código difícil de ler e manter. Vamos criar sub-rotinas para cada uma das funcionalidades que vamos precisar na nossa aplicação.

 

Qual seriam elas ????

 

Você pode ter uma ideia melhor que a minha , mas eu dividi a aplicação em 3 partes, abaixo cada uma delas e a seguir uma sugestão de nome para a rotina associada:

  1. Entrada de dados - AlimentaVF

  2. Calculo do Valor Futuro - CalculaVF

  3. Exibição do resultado - MostraVF

Nosso código inicial teria então a seguinte estrutura :

 

Explicando o código acima:

  1. Estamos usando uma variável do tipo Double - decResultado - que irá armazenar o resultado

  2. Criamos duas sub-rotinas : AlimentaVF() que irá receber os valores  e MostraVF() que irá exibir o resultado

  3. Criamos a função CalculaVF(dbTaxaAnual, iAnos, decDepositoMensal, decValorInicial)  que irá calcular o Valor Futuro. Perceba que a função usa quatro parâmetros que serão usados no calculo da operação.

2- A próxima etapa será criar o código para cada uma das sub-rotinas e da função usada na aplicação. Vamos começar com a sub-rotina AlimentaVF() :

 

- Vamos definir a rotina AlimetaVF() como sendo private ; como ela é uma sub-rotina nenhum valor será retornado. Abaixo temos uma sugestão para o código desta sub-rotina:

 

Private Sub AlimentaVF()

    'escreve uma linha no console

   Console.WriteLine()

 

   'recebe os valores e armazena em cada variável

   decValorInicial = CDec(ObtemDados("Valor Inicial = "))

   dbTaxaAnual = CDbl(ObtemDados("Taxa Anual = "))

   decDepositoMensal = CDec(ObtemDados("Deposito Mensal = "))

   iAnos = CInt(ObtemDados("Periodo do Investimento = "))

 

End Sub

 

Explicação do código:

- Criamos a função - ObtemDados(msg) -  que irá receber o valor informado pelo usuário. O valor retornado será armazenado em cada variável já definida no início do módulo.  O parâmetro passado para a função é a mensagem que irá aparecer para usuário ao digitar o valor. A seguir o código da função ObtemDados(msg) :

 

Private Function ObtemDados(ByVal msg As String) As String

    Console.WriteLine(msg)

       Return Console.ReadLine

End Function

 

A função ObtemDados recebe o parâmetro - msg - e exibe a mensagem usando a método - Console.Writeline.

 

Após informar o valor e teclar ENTER o valor é retornado via método Console.Readline. Observe que definimos o tipo de retorno da função ObtemDados como String.

 

3- Vamos agora ao código da função - CalculaVF() -. Esta função usa 4 parâmetros e devolve o resultado do Valor Futuro. Abaixo o código:

 

Private Function CalculaVF(ByVal TaxaAnual As Double, ByVal Anos As IntegerByVal DepositoMensal As Double, ByVal ValorInicial As Double) As Double

 

   'Vamos pegar a taxa anual e dividir por 1200 para obtermos o percentual mensal

   Dim decTaxaMensal As Double = CDec(TaxaAnual / 1200)

 

  'Vamos calcular o numero de meses

   Dim iMeses As Integer = (Anos * 12)

 

   'A seguir vamos declarar uma variável temporária e a variável que vai armazenar o valor de retorno

     Dim decTemp As Double

   Dim decRetorno As Double

 

   'vamos usar a variável temporaria e a variavel de retorno

   decTemp = CDec((1 + decTaxaMensal) ^ iMeses)

   decRetorno = CDec(DepositoMensal * ((decTemp - 1) / decTaxaMensal) + (ValorInicial * decTemp))

     Return decRetorno

 

End Function

 

Na função CalculaVF() usamos os parâmetros recebidos para efetuar os cálculos e retorna o valor futuro. O retorno da função é do tipo Double. A seguir vamos exibir o valor do resultado usando a função : MostraVF(decResultado) :

 

Private Sub MostraVF(ByVal resultado As Double)

Console.WriteLine()

Console.WriteLine(" Com um valor incial de {0:c} ", decValorInicial)

Console.WriteLine(" e depositos mensais de {0:c} ", decDepositoMensal)

Console.WriteLine(" por um periodo de {0} anos ", iAnos)

Console.WriteLine(" a uma taxa de {0}% no período ", dbTaxaAnual)

Console.WriteLine()

Console.WriteLine(" Você terá como um valor futuro de : {0:c}", resultado)

Console.ReadLine()

End Sub

 

A função recebe o resultado e usando o método Console.Writeline , exibe o resultado no console . Perceba que formatamos a saída usando os parâmetros de formatação para o console. (Leia o artigo : VB.NET - Formatando a saída do console. ). O valor das variáveis irá substituir os parâmetros {0:c} e {0} em cada posição. ( {0:c} significa : formato de moeda local)

 

Vamos executar a aplicação para ver o resultado final :

 

 

Gostou ???

 

Embora muito simples, você já usou muitos dos conceitos explanados nos artigos anteriores. 

 

Não perca a continuação dos artigos da série - VB.NET - Primeiros passos -  onde iremos falar de orientação a objetos, classes, e as características OOP presentes  no VB.NET, tudo isto em VB.NET - Primeiros passos - Conceitos - V ,  até lá... !!!

 


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

Quer migrar para o VB .NET ?

Veja mais sistemas completos para a plataforma .NET no Super DVD .NET , confira...

Quer aprender C# ??

Chegou o Super DVD C# com exclusivo material de suporte e vídeo aulas com curso básico sobre C#

Veja também os cursos em Vídeo Aulas :

  Gostou ?   Compartilhe no Facebook    Compartilhe no Twitter

Referências:


José Carlos Macoratti