ProgramaciOn Modular EXCEL-VBA

El enfoque de la programación modular es organizar los cálculos de manera INDEPENDIENTE, más fáciles de CORREGIR, y ACTU

Views 225 Downloads 4 File size 1MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

El enfoque de la programación modular es organizar los cálculos de manera INDEPENDIENTE, más fáciles de CORREGIR, y ACTUALIZAR.



Subrutinas

( Usualmente usado para calcular un solo valor)



Funciones

(Calcula o retorna varios valores)

FUNCIONES: Es un procedimiento independiente que toma unos argumentos y realiza una serie de cálculos. Function name ([lista de argumentos]) [instrucciones de càlculo] [name= expresión] [Exit Function] End Function 20/09/16

Métodos Numéricos con EXCEL-VBA

Pueden integrarse Subrutinas y Funciones. El siguiente ejemplo lo muestra: Sub Sumasimple() ' asignando valores a = 15 b = 28 ' Haciendo la suma c = suma(a,b) ' mostrando los resultados MsgBox c End sub

Subrutina principal

Function suma (a,b) Suma = a+b End Function Los argumentos de una Function() pueden usarse en conjunto con hojas de EXCEL. 20/09/16

Métodos Numéricos con EXCEL-VBA

Integración de una función VBA con EXCEL.

20/09/16

Métodos Numéricos con EXCEL-VBA

En la primera columna se presenta la forma básica, con formula UNICA en la celda de trabajo. 20/09/16

En la segunda columna, los argumentos son “pasados” a una función en VBA.

Métodos Numéricos con EXCEL-VBA

20/09/16

Métodos Numéricos con EXCEL-VBA

Declarar una variable se refiere a especificar el tipo de estas explícitamente. En algunos lenguajes de programación, esto es obligatorio: en VBA no lo es. En VBA existe una tipo de variable espacial llamada: Vartype, esta función es como un camaleón, elige el tipo de variable automáticamente, según el contexto. Vartype (nombre_de_variable) Valor

Tipo

2

Integer ( Entero)

3

Long

4

Single

5

Double

8

String ( cadena)

11

Boolean

20/09/16

Sub BoolDemo() x = 32767 MsgBox Vartype (x) X = 32768 MsgBox Vartype (x) X = “I m a Student” MsgBox Vartype (x) X = True MsgBox Vartype (x) End Sub Métodos Numéricos con EXCEL-VBA

Cuando el código se ejecuta, despliega los valores 2, 3,5, 8 y 11. En otras palabras, la variable “x” cambia el tipo de Integer a Long,luego a Double, luego a String y por último a Boolean.

NOTA: no todo es felicidad. Esta actividad automática, ralentiza los programas, ya que se necesita más memoria para “pensar” y tomar la decisión. También se dificulta encontrar los errores, si escribes mal una variable, por ejemplos y usas la palabra “masa” para una variable y escribes “massa”..... La orden Dim ( Dimensión ó Tamaño) Dim Nombre variable [As Tipo], Nombre variable [As Tipo],..... Una buena practica de programación es declarar una variable y su tipo. 20/09/16

Métodos Numéricos con EXCEL-VBA

La orden Option Explicit obliga al programador a definir todos los tipos de variables explicitamente, esto es útil para programas grandes. Algunos editores de VBA, tienen una opción para exigir que todas las variables sean declaradas de manera explicita.

20/09/16

Métodos Numéricos con EXCEL-VBA

El método de Newton-Raphson (conocido también como método de Newton-Fourier) es un método iterativo que nos permite aproximar la solución de una ecuación del tipo f(x)=0. Partimos de una estimación inicial de la solución x0 y construimos una sucesión de aproximaciones de forma recurrente mediante la fórmula:

x j+1=x j −

f (x j) '

f (x j)

A diferencia de los métodos, el método de Newton-Raphson no trabaja sobre un intervalo sino que basa su fórmula en un proceso iterativo. El método de Newton es muy rápido y eficiente ya que la convergencia es de tipo cuadrático (el número de cifras significativas se duplica en cada iteración). Sin embargo, la convergencia depende en gran medida de la forma que adopta la función en las proximidades del punto de iteración.

f ( x j) f ( x j )= x j+1−x j '

20/09/16

Métodos Numéricos con EXCEL-VBA

20/09/16

Métodos Numéricos con EXCEL-VBA

Para hallar una solución aproximada de f(x) = 0, dada una aproximación inicial x0. Entrada: aproximación inicial x0 ; tolerancia TOL; cantidad máxima de iteraciones N; Salida: solución aproximada x j+1 , f ( x j+1 ) ó mensaje de fracaso. Paso 1: Tomar j = 1;

Ciclo de Cálculo

Paso 2: Mientras que j⩽N seguir pasos 3-6;

.

Paso 3: Tomar

x j+1=x j −

f (x j) f ( x j+1 )

(%Calculo del punto siguiente)

Paso 4: Si ∣x j+1 −x j∣