Sie sind auf Seite 1von 9

1

Maestría en Finanzas

Curso: Informática & Finanzas

Docente: Alexandra Málaga

Sesión N° 4: Programación modular

2019
2

Programación Modular

• Funciones Function | End Function | Exit Function


IsMissing() | As

• Subrutinas con argumentos Sub| End Sub | Call

• s
PROGRAMACIÓN MODULAR
4

Funciones vs Subrutinas con argumento


Estructuras que agrupan comandos que dependen de argumentos. Los argumentos pueden ser
variables de algún tipo (double, long, integer, etc.) u objetos (range, etc.)
FUNCIONES SUBRUTINAS CON ARGUMENTOS
Diferencias Siempre devuelven un valor Pueden como no devolver un valor
No pueden modificar objetos Pueden modificar objetos
Similitudes No se ejecutan por si mismas, se usan No se ejecutan por si mismas, se llaman
Declaración Function nfunc(arg1 as type, arg2, …, argN) Sub nsub(arg1 as type, arg2, …, argN)
comandos f(arg1,…,argN) comandos f(arg1,…,argN)
nfunc=#valor
End Function End Sub
Uso En celda =nfunc(#1,#2) En subrutina, forma1 Call nsub(#1,#2)
En subrutina [a1]=nfunc(#1,#2) En subrutina, forma2 nsub #1 #2
5

Funciones
Los argumentos en las funciones pueden ser opcionales. En ese caso se debe definir qué valor toman
por defecto (cuando el usuario no define su valor)
Forma 1
Function nfunc(Optional arg1=#valor_por_defecto)
End Function

Forma 2
Function nfunc(Optional arg1)
If IsMissing(arg1) Then
arg1=#valor_por_defecto
End If
End Function

Para detener la función antes de tiempo (de End Function) Exit Function
Para mostrar los argumentos al usar la función en Excel Ctrl + Shift + a
EJERCICIOS
7

Ejercicio 1: Funciones Simples


Cree las siguientes funciones y pruebe su ejecución.
– Fun_soles y la subrutina con argumento Sub_soles. Ambas dependen de un número que
es un monto en dólares. La función devuelve el monto en soles. La subrutina guarda en
la celda activa el monto en soles. Asuma T.C.=3.3.
– MediaPon depende de dos rangos. Si cualquier rango tiene más de una columna, o
ambos rangos no tienen el mismo número de filas, la función devuelve “Error” y detiene
la función. Caso contrario, la función devuelve el promedio del primera rango ponderado
por el segundo rango.
– TasaPromedio depende de un rango que contiene tasas de crecimiento de período
homogéneo (ej. mensual). La función devuelve la tasa de crecimiento promedio.
– EsPrimo depende de un número. La función devuelve: “Incorrecto” si el número es cero
o negativo, “Verdadero” si es primo, y “Falso” de lo contrario.
– Aleatorio1 depende de dos valores opcionales que por defecto son 0 y 3. La función
devuelve un número aleatorio entre el primer y el segundo argumento.
8

Ejercicio 2: Función BuscaInterpola


Rango de ejemplo
B C =BuscaInterpola( 2,B5:C8)=40
5 -2.00 70.00 =BuscaInterpola( 3,B5:C8)=45
6 2.00 40.00 =BuscaInterpola(-4,B5:C8)=“Fuera de rango”
7 4.00 50.00
=BuscaInterpola(12,B5:C8)=“Fuera de rango”
8 11.95 1.00

Cree la función BuscaInterpola que depende de dos argumentos, un


número y un rango de dos columnas que contiene una tabla de
correspondencias. Asuma que los valores del rango estarán
ordenados según la primera columna.
9

Ejercicio 3: Función SemiDesvest


Cree la función SemiDesvest que dependa de dos argumentos: un
rango y un número.
– El número guarda un benchmark y es un argumento opcional que por
defecto es el promedio de los valores en el rango.
– Si todos los valores en el rango superan el benchmark (están por encima
del número), la función devuelve “Sin observaciones”
– Si todos los valores en el rango no superan el benchmark, la función
devuelve la desviación estándar de todos los valores en el rango.
– Si algunos valores del rango superan el benchmark y otros no, la función
devuelve la desviación estándar de los valores que no superan el
benchmark

Das könnte Ihnen auch gefallen