Trabajando con Funciones de la Hoja de Cálculo Excel

Una función es un bloque de código que ejecuta una tarea y devuelve un solo valor. Existen tres tipos de función:

  1. Funciones VBA
  2. Funciones de la Hoja de Cálculo Excel
  3. Funciones definidas por el Usuario (UDF) Leer más “Trabajando con Funciones de la Hoja de Cálculo Excel”
Anuncios

Latex – Mas Latex en WordPress

Esta es una segunda entrega de Latex en WordPress para compartir algunos comandos de utilidad para presentar fórmulas matemáticas en blogs.

Espacios

Para insertar espacios en blancos en expresiones matemáticas existen comandos especiales:

\,  para 3/18 quad

\: para 4/18 quad

\; para 5/18 quad

\[space] produce un espacio similar al espacio entre palabras

\quad

y \qquad

El tamaño de un \quad corresponde a el ancho del carácter M en la fuente utilizada.

Si se quiere añadir una línea se puede utilizar \\ o \newline.

Texto dentro de formulas

Se puede insertar texto dentro del modo de entrada de fórmula matemática utilizando \text{…….}. (Oetiker, Partl, Hyna, & Schlegl, 2015)

Vectores

Para colocar el símbolo de vector encima de una variable, se utiliza el comando \vec{..}, cuando se quiere colocar una flecha más larga que denote a un vector entre dos puntos se utilizan \overrightarrow y \overleftarrow.

Se debe colocar el código dentro de los símbolos $, luego del primer $ colocar el comando latex y luego el código de la formula.

\vec{a} \qquad \vec{AB} \qquad \overrightarrow{AB} &s=2

\vec a \qquad \vec{AB} \qquad \overrightarrow{AB}

Derivadas Parciales

Para derivadas parciales se utiliza el comando \partial en conjunción con \frac{..}{..}

\frac{\partial^nf}{\partial x^2}

$latex \frac{\partial^nf}{\partial x^2}$

\frac{\partial^nf}{\partial x^n}

Suma, Integrales y Productos

Para sumas utilizar el comando \sum en combinación con el guion bajo y el caret

\sum_{i=1}^n

$latex \sum_{i=1}^n &s=2$

\displaystyle \sum_{i=1} ^n

Para integrales \int en combinación con guion bajo y caret

\int_0^{\frac{\pi}{2}}

$latex \int_0^{\frac{\pi}{2}}$

\int_0^{\frac{\pi}{2}}

Para producto utilizar \prod

\prod_\epsilon

$latex \prod_\epsilon &s=2$

\prod_\epsilon

 

Referencias Bibliograficas

Oetiker, T., Partl, H., Hyna, I., & Schlegl, E. (2015). The Not So Short Introduction to Latex 2e.

 

Latex – Escribiendo Formulas Matematicas

Una fórmula matemática puede ser colocada en la línea dentro del párrafo (Text style), o el párrafo puede ser seccionado y la formula colocada separadamente (display style). Las ecuaciones matemáticas dentro de un párrafo se colocan entre $ <Ecuacion>$ Leer más “Latex – Escribiendo Formulas Matematicas”

Gases, Ley de los Gases Ideales

 

Estados de la materia

Bajo la mayor parte de las condiciones la materia existe en tres estados: Sólido, Liquido y Gaseoso, cada uno con sus características. Bajo condiciones extraordinarias, tales como el extremo calor y presión asociados con el interior del sol, la materia puede existir en estado de plasma, el cual constituye el cuarto estado fase de la materia. Leer más “Gases, Ley de los Gases Ideales”

Método de Mínimos Cuadrados

Cuando deseamos aproximaciones suaves, se necesitan algunos grados de libertad. Por ejemplo para ajustar una linea recta ( 2 parámetros) a 10 puntos, nos deja con 8 grados de libertad. Existe un numero infinito de lineas y se necesita un criterio para seleccionar una única linea. El criterio de los mínimos cuadrados es el mas popular. Leer más “Método de Mínimos Cuadrados”

Pasando Argumentos a Procedimientos. ByRef y ByVal

Pasando Argumentos a Procedimientos

Los argumentos de un procedimiento proporcionan datos que son utilizados en sus instrucciones. Los datos que son pasados por un argumento pueden ser alguno de los siguientes:

·        Una variable

·        Una constante

·        Un arreglo

·        Un Objeto

Con respecto a los argumentos, los procedimientos son muy similares a las funciones de las hojas en los siguientes aspectos:

·        Un procedimiento puede no requerir ningún argumento.

·        Un procedimiento puede requerir un número fijo de argumentos.

·        Un procedimiento puede aceptar un número indefinido de argumentos.

·        Un procedimiento puede requerir algunos argumentos, dejando otros opcionales.

·        Un procedimiento puede tener todos los argumentos opcionales.

Se puede pasar un argumento a un procedimiento de dos formas: ByRef y ByVal. Pasar un argumento por referencia (ByRef, el método por defecto) simplemente pasa la dirección de la memoria de la variable. Al pasar un argumento por valor (ByVal), por otro lado pasa una copia de la variable original. Consecuentemente, cambios al argumento dentro del procedimiento no se reflejaran en la variable original.

 

Pasando un Parámetro por Referencia

Cuando un parámetro es pasado por referencia, una referencia al argumento original es pasada al procedimiento que hace la llamada. El resultado es que si un cambio es hecho al parámetro en el procedimiento llamado, el cambio es pasado de vuelta al procedimiento que efectúa el llamado.

Debido a que ByRef es el método por defecto para pasar parámetros, se puede omitir el comando ByRef cuando se declare por referencia. (Darlington, 2004). Es decir si no se especifica ya sea ByRef o ByVal, ByRef es asumido. La sintaxis es colocar el comando ByRef antes del nombre del parámetro, dentro del paréntesis que sigue al nombre de la función. (Walkenbach, 2004)

Ejemplo:

Function ThisFunction(ByRef myStr as String)

 

Pasando un Parámetro por Valor

Cuando un parámetro es pasado por valor usando ByVal, el parámetro llamado obtiene su propia copia de la variable. El valor de la variable puede por lo tanto ser cambiado in el procedimiento llamado, sin afectar su valor en el procedimiento que hace la llamada.

 

Parámetros y Argumentos cual es la Diferencia

Los argumentos son los valores que son pasados desde el procedimiento que hace el llamado y los parámetros son definidos como los valores que son procesados en el procedimiento que es llamado. Por lo general estos términos son intercambiables. (Pearson, 2013)

Sub Procedimiento_Que_Llama()

Dim Arg1 as Long

Dim Arg2 as Long

Arg1=12

Arg2=45

Call Procedimiento_Llamado(Par1:=Arg1, Par2:= Arg2)

MsgBox “El Valor de Arg1= “ & Arg1 & “El Valor de Arg2= “ & Arg2

End Sub

 

 

Sub Procedimiento_Llamado(ByRef Par1 as Long, ByRef Par2 as Long)

Par1=120

Par2=450

End Sub

En el ejemplo se puede observar que los parámetros están definidos en el procedimiento que es llamado, y los argumentos son los que se pasan a los parámetros desde el procedimiento que hace el llamado.

PasarArg-1

Cuando se hace el llamado del procedimiento se puede utilizar el nombre del parámetro y la asignación de su argumento utilizando el nombre del parámetro seguido del símbolo dos puntos igual y luego el nombre del argumento como en el ejemplo mostrado. También se puede utilizar los nombres de los argumentos separados por comas.

Call Procedimiento_Llamado(Par1:=Arg1, Par2:= Arg2)

Call Procedimiento_Llamado(Arg1, Arg2)

Ambos métodos de llamar a un procedimiento son válidas. Aún más se puede omitir el comando Call y los paréntesis.

Procedimiento_Llamado Par1:=Arg1, Par2:= Arg2

Procedimiento_Llamado  Arg1, Arg2

Comparación de ByRef y ByVal

Cuando se pasan parámetros a un procedimiento ByRef es más rápido que ByVal porque al pasar por referencia da acceso inmediato al valor del parámetro. Sin embargo el programador de VBA tiene que decidir si el pasar el parámetro por referencia, probablemente, tendrá algún efecto negativo en el parámetro en el procedimiento que hace el llamado. Si existe esta posibilidad entonces el pasar el parámetro por valor seria la opción más recomendable.

El siguiente ejemplo muestra dos procedimientos. Un procedimiento desde el que se hace el llamado Sub CalcR y desde donde se pasan los parámetros a un procedimiento que es llamado Sub Raiz. Como en el Sub Raiz no se especifica si los parámetros son pasados ByRef o ByVal, se sobre entiende que los parámetros son pasados por referencia.

 

Sub CalcR()     ‘ Procedimiento desde el que se hace el llamado

Dim q As Double

Dim r As Double

q = Worksheets(“hoja1”).Range(“A11”)

Call Raiz(q, r)    ‘ Llamada al procedimiento Raiz , pasar los argumentos q y r

Worksheets(“hoja1”).Range(“B11”) = r

End Sub

 

Sub Raiz(N As Double, F As Double)     ‘ Procedimiento llamado

If N < 0 Then

Exit Sub

Else

F = Sqr(N)

End If

End Sub

Notar que el nombre de las variables no tiene que ser igual en el procedimiento que hace el llamado y el procedimiento que recibe el llamado. En el Sub Raiz se utilizan los parametros N y F. Y cuando se hace la llamada desde el Sub CalcR el llamado se hace con las variables q y r. Lo que sí es importante es que las variables que se pasan como argumento deben ser del mismo tipo que los parámetros. En el procedimiento Sub Raiz los parámetros N y F se definen como Double.  En el procedimiento Sub CalcR, las variables que se pasan están definidas como Double. Si se omite la declaración de estas variables como Double el procedimiento daría error.

PasarArg-2

Otro aspecto muy importante que hay que considerar es si se realizan cambios a las variables en el procedimiento que se llama, esta se refleja en el procedimiento que hace la llamada, y esto puede que no sea lo que se quiera.

PasarArg-3

En el Sub Principal (Procedimiento que hace el llamado se declara la variable MiValor como integer y se le asigna un valor de 100. Este valor se pasa al Sub Procesar y el valor de la variable que se pasa cambia a 10000. Esto es cuando el valor de la variable regresa al procedimiento que hace la llamada, ya MiValor no es igual al valor original de 100, sino que ahora tiene un valor de 10000.

PasarArg-4

También es importante notar que los nombres de las variables no tienen por qué ser iguales. En el procedimiento que es llamado Sub Procesar el nombre del parametro es TuValor, cuando se llama a este procedimiento desde el Sub Principal el nombre del argumento es MiValor.

 

En el siguiente ejemplo se pasa el argumento por valor (ByVal), y en este caso no se afecta el valor de la variable MiValor.

 

 

Sub Principal()

Dim MiValor As Integer

MiValor = 100

Call Procesar(MiValor)

MsgBox MiValor

End Sub

 

Sub Procesar(ByVal TuValor)

TuValor = TuValor * 100

End Sub

 

El mensaje que se obtiene indica que la variable MiValor mantiene el valor de 100.

PasarArg-5

 

 

 

 

 

 

 

Darlington, K. (2004). Vba for Excel Made Simple. Burlington: Made Simple Books, Elsevier.

Pearson, C. (05 de 11 de 2013). Pearson Software Consulting. Obtenido de Passing Variables By Reference And By Value: http://www.cpearson.com/excel/byrefbyval.aspx

Walkenbach, J. (2004). Excel 2003 Power Programming With VBA. Indianapolis: Wiley Publishing, Inc.