Prácticas de Visual Basic aplicado al Cálculo Actuarial
ÍNDICE
1. Introducción
2. Práctica 1: Rentas financieras
2.1. Enunciado
2.2. Carátula
2.3. Controles
2.4. Código
2.5. Ejemplos numéricos
3. Práctica 2: Rentas de supervivencia
3.1. Enunciado
3.2. Carátula
3.3. Controles
3.4. Código
3.5. Ejemplos numéricos
4. Práctica 3: Seguro mixto
4.1. Enunciado
4.2. Carátula
4.3. Controles
4.4. Código
4.5. Ejemplos numéricos
2
3
4
4
5
6
8
11
13
13
14
15
17
21
22
22
23
24
26
29
Eva Boj del Val, Mª Mercè Claramunt Bielsa e Isabel Morillo López
1. Introducción
Esta publicación
programación Visual Basic al cálculo financiero y actuarial.
tres ejemplos de aplicación del
incluye
lenguaje de
Constituye el material de las clases prácticas utilizado en el curso de extensión
universitaria Visual Basic aplicat al càlcul actuarial organizado por el
Departamento de matemática económica,
la
Universidad de Barcelona y que viene realizándose desde el curso 1999-2000.
El objetivo de este material es, pues, docente; por ello los programas aquí
incluidos están realizados de manera didáctica con la finalidad de aplicar los
conocimientos estudiados en la parte teórica de este curso introductorio a la
programación en Visual Basic.
financiera y actuarial de
Organizamos un proyecto de nombre “Cálculo Actuarial” dentro del cual
incluimos tres formularios que se corresponden con cada práctica. La práctica 1
hace referencia a rentas financieras, la práctica 2 a rentas de supervivencia y la
práctica 3 a seguros mixtos.
Prácticas de Visual Basic aplicado al Cálculo Actuarial
2. Práctica 1: Rentas financieras
2.1. Enunciado
Realizar un programa que calcule el valor actual de una renta financiera anual,
en el que podamos elegir el tipo de cuantía: constante, variable linealmente o
variable geométricamente.
Datos a entrar por pantalla:
1. Tanto de valoración en tanto por uno (se solicita el efectivo anual)
2. Respecto a la renta:
− Diferimiento (en años)
− Si es anticipada o vencida
− Si es temporal o perpetua.
En el caso de ser temporal: Número de términos
− Cuantía de la renta:
− Constante: cuantía en euros
− Variable linealmente: cuantía del primer término en euros y razón de
variación lineal
− Variable geométricamente: cuantía del primer término en euros y
razón de variación geométrica
Resultados a presentar por pantalla:
− Valor Actual de la Renta
− Valor Final de la Renta
El formulario debe incluir los botones: CALCULAR, OTRO y SALIR.
4
2.2. Carátula
Eva Boj del Val, Mª Mercè Claramunt Bielsa e Isabel Morillo López
Sin ejecutar
Ejecutada
5
Prácticas de Visual Basic aplicado al Cálculo Actuarial
Combo Box
2.3. Controles
CONTROL
CAPTION
TEXT
(NOMBRE)
frmPractica1
frDatos
frResultados
frCuantia
cmdCALCULAR
cmdOTRO
cmdSALIR
lblInteres
txtInteres
Valor Actual Renta Anual
Datos
Resultados
Cuantía de los términos
CALCULAR
OTRO
SALIR
Interés Efectivo Anual
(en tanto por uno)
lblDiferimiento
txtDiferimiento
Diferimiento en años
6
Formulario
Frame
Frame
Frame
Command
Button
Command
Button
Command
Button
Label
Text Box
Label
Text Box
En blanco
En blanco
Eva Boj del Val, Mª Mercè Claramunt Bielsa e Isabel Morillo López
Inicio pagos
Por anticipado
Por vencido
Temporalidad
Perpetua
Temporal
Número de términos anuales
En blanco
En blanco
frInicioPagos
opbAnticipada
opbVencida
frTemporalidad
opbPerpetua
opbTemporal
lblTerminos
txtTerminos
lblCuantia
txtCuantia
lblValorActual
lblValorFinal
lblResultado1
lblResultado2
lblTipoRenta
lblRazon
txtRazon
Frame
Option
Button
Option
Button
Frame
Option
Button
Option
Button
Label
Text Box
Label
Text Box
Label
Label
Label
Label
Label
Label
Text Box
Cuantía del primer término
en euros
Valor Actual en euros
Valor Final en euros
En blanco
En blanco
Tipo de variación de la renta:
Razón de variación
En blanco
7
En blanco
Prácticas de Visual Basic aplicado al Cálculo Actuarial
Combo Box
cmbCuantia
2.4. Código
'Definición de Variables en (General) (Declaraciones)
Dim Razon As Double
Dim Interes As Double
Dim NuevoInteres As String
Dim Diferimiento As Double
Dim Terminos As Integer
Dim Cuantia As Double
Dim ValorActual As Double
Dim ValorFinal As Double
Private Sub cmbCuantia_Change()
If cmbCuantia.Text = "Lineal" Or cmbCuantia.Text = "Geométrica" Then
lblCuantia.Visible = True
txtCuantia.Visible = True
lblRazon.Visible = True
txtRazon.Visible = True
ElseIf cmbCuantia.Text = "Constante" Then
lblCuantia.Visible = True
txtCuantia.Visible = True
lblRazon.Visible = False
txtRazon.Visible = False
Else
lblCuantia.Visible = False
txtCuantia.Visible = False
lblRazon.Visible = False
txtRazon.Visible = False
End If
End Sub
Private Sub cmbCuantia_Click()
lblCuantia.Visible = True
txtCuantia.Visible = True
If cmbCuantia.ListIndex = 1 Or cmbCuantia.ListIndex = 2 Then
lblRazon.Visible = True
txtRazon.Visible = True
Else
lblRazon.Visible = False
txtRazon.Visible = False
End If
End Sub
Eva Boj del Val, Mª Mercè Claramunt Bielsa e Isabel Morillo López
Cuantia = Val(txtCuantia.Text)
Razon = Val(txtRazon.Text)
Interes = Val(txtInteres.Text)
' InputBox para controlar que el interés sea positivo
If Interes < 0 Then
NuevoInteres = InputBox("El Interés debe ser estrictamente positivo." & vbCrLf & "Introduzca de nuevo el
Interés.", "ERROR")
If NuevoInteres = "" Then
cmdOTRO_Click
Exit Sub
End If
Interes = Val(NuevoInteres)
txtInteres.Text = Str(Interes)
End If
'Cálculos
If opbPerpetua.Value = True Then
If (cmbCuantia.ListIndex = 0 Or cmbCuantia.Text = "Constante") Then
ValorActual = Cuantia * (1 / Interes) * ((1 + Interes) ^ (-Diferimiento - opbAnticipada.Value))
ElseIf (cmbCuantia.ListIndex = 1 Or cmbCuantia.Text = "Lineal") Then
ValorActual = ((Cuantia / Interes) + (Razon / (Interes ^ 2))) * ((1 + Interes) ^ (-Diferimiento -
opbAnticipada.Value))
ElseIf (cmbCuantia.ListIndex = 2 Or cmbCuantia.Text = "Geométrica") Then
'Control sobre la razón
If Razon >= 1 + Interes Then
Res = MsgBox("La Razón debe ser menor que 1+Interés." & vbCrLf & "Introduzca de nuevo la Razón.",
vbOKCancel + vbExclamation + vbDefaultButton1, "ERROR")
If Res = vbOK Then
txtRazon.Text = " "
txtRazon.SetFocus
Exit Sub
Else
cmdOTRO_Click
Exit Sub
End If
End If
ValorActual = (Cuantia / (1 + Interes - Razon)) * ((1 + Interes) ^ (-Diferimiento - opbAnticipada.Value))
End If
Else
ValorActual = 0
i = Diferimiento + opbAnticipada.Value
If (cmbCuantia.ListIndex = 0 Or cmbCuantia.Text = "Constante") Then
For J = 1 To Terminos
ValorActual = ValorActual + Cuantia * ((1 + Interes) ^ (-(J + i)))
Next J
ElseIf (cmbCuantia.ListIndex = 1 Or cmbCuantia.Text = "Lineal") Then
For J = 1 To Terminos
ValorActual = ValorActual + (Cuantia + (J - 1) * Razon) * ((1 + Interes) ^ (-(J + i)))
Next J
ElseIf (cmbCuantia.ListIndex = 2 Or cmbCuantia.Text = "Geométrica") Then
Links de descarga
http://lwp-l.com/pdf11610
Comentarios de: Prácticas de Visual Basic aplicado al cálculo actuarial (0)
Comentarios de: Prácticas de Visual Basic aplicado al cálculo actuarial (0)
No hay comentarios