Programación Visual Basic (VBA) para Excel y Análisis ... - TEC-Digital
Programación Visual Basic (VBA) para Excel y Análisis ... - TEC-Digital
Programación Visual Basic (VBA) para Excel y Análisis ... - TEC-Digital
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>VBA</strong> <strong>para</strong> <strong>Excel</strong> M.Sc. Walter Mora F., M.Sc. José Luis Espinoza B. 38<br />
Nota: Para una aproximación inicial U0 se podría usar ⌊ √ U⌋ usando la solución del problema anterior.<br />
En la práctica se usa una aproximación inicial basada en la representación binaria del número.<br />
4. Números primos. Obtenga un programa <strong>para</strong> hallar el número primo más cercano a un número N,<br />
siendo N un número entero positivo mayor que uno. 3<br />
Por ejemplo, los números primos menores que 50 son:<br />
2, 3, 5, 7, 19, 23, 29, 31, 37, 41, 43.<br />
Si N = 50 , el programa debería retornar el número 43.<br />
Un procedimiento clásico <strong>para</strong> hallar todos los números primos menores que un entero positivo N, es la<br />
llamada criba de Eratóstenes. Lo que se hace es colocar en una lista todos los números del 2 al N e ir<br />
eliminando de esta lista todos los múltiplos de 2 (4, 6, 8, ...), todos los múltiplos de 3 (6, 9, 12, ...), y así<br />
sucesivamente, hasta eliminar todos los múltiplos de los primos que han ido quedando en la lista menores<br />
o iguales que √ N. Para decidir si un número es múltiplo de otro, usamos la función mod. Esta función<br />
devuelve el resto de una división (entera). Así, si un número es múltiplo de otro, la división es exacta, o<br />
sea, el resto es cero. En código sería así<br />
If m mod n = 0 Then ’si m es múltiplo de n .... End If<br />
1.6 Evaluando expresiones matemáticas escritas en lenguaje matemático<br />
común<br />
Un evaluador de expresiones matemáticas o un “parser”, es un programa que determina la estructura gramatical<br />
de una frase en un lenguaje. Este es el primer paso <strong>para</strong> determinar el significado de una frase tal como<br />
"x^2+y", que <strong>para</strong> un lenguaje de programación significa traducirla en lenguaje de máquina.<br />
En [9] encontrará un “parser” <strong>para</strong> evaluar expresiones matemática en <strong>Visual</strong> <strong>Basic</strong>. Sin embargo funciona bien<br />
con <strong>Excel</strong>. Además nos da la posibilidad de agregar funciones propias más complejas además de la que el parser<br />
trae implementadas tales como BesselJ(x,n), HypGeom(x,a,b,c) o WAVE_RING(). Por ejemplo, la función a<br />
trozos. Este parser fue desarrollado por Leonardo Volpi [9].<br />
1.6.1 Usando clsMathParser. Sintaxis<br />
Primero descargamos clsMathParser.zip. En la carpeta clsMathParser, además de la documentación en pdf,<br />
vienen dos archivos: clsMathParser.cls y mMathSpecFun.bas. El primero es el parser y el segundo es una<br />
biblioteca con funciones especiales ya implementadas.<br />
Para implementar un ejemplo de uso del parser, implementamos una hoja excel como la que se ve en la figura<br />
3 Un número natural p > 1, es primo si sus únicos divisores positivos son 1 y p. En caso contrario, es un número compuesto.