Programacion función
Enviado por esemelme • 5 de Marzo de 2014 • 620 Palabras (3 Páginas) • 183 Visitas
Si una función devuelve un objeto de número entero sin signo (UnsignedInteger) o un objeto largo sin
signo (UnsignedLong), el primer comando de la función debe ser un comando tipo Set.
Ejemplo:
Function F() As UnsignedInteger
Set F = New UnsignedInteger
Referencia del Lenguaje 8
[...]
End Function
¿Cómo se pasan parámetros a subprogramas?
Es posible pasar parámetros a un subprograma a través de la referencia (ByRef) o del valor (ByVal).
Paso por referencia – si pasa un parámetro por referencia, cualquier cambio realizado al parámetro
se volverá a transmitir a la persona que llama. El paso por referencia está definido por defecto.
Paso por valor – si pasa un parámetro por valor, no se permitirán que los cambios se transmitan a la
persona que llama. Con algunas excepciones, si un argumento se pasa por valor, se hace una copia
del argumento, y el subprograma llamado operará en la copia. Los cambios realizados a la copia no
afectan a la llamada.
Una excepción son los parámetros de cadena pasados por valor. Para obtener una mayor eficiencia
no se hace la copia de la cadena. En su lugar, la cadena está protegida contra escritura en el
subprograma llamado, lo que implica que no se puede ni asignar la cadena ni pasarla a otro
subprograma. Sin embargo, está permitido pasarla por valor a otro subprograma.
La otra excepción es para los tipos de variables de entero sin signo (UnsignedInteger) y largo sin
signo (UnsignedLong), que son tratados de la misma manera – estos parámetros están protegidos
contra escritura en los subprogramas llamados.
Parámetros reales y parámetros formales –el tipo y el número de los parámetros reales deben
coincidir con el tipo y el número de los parámetros “formales” (éstos aparecerán en la declaración del
subprograma). Si se produce alguna falta de coincidencia, el compilador advertirá un error. No
realizará conversiones implícitas de los tipos.
Ejemplo de sintaxis:
Sub Collate(ByVal I As Integer, ByRef X As Single, ByVal B As Byte)
En el ejemplo siguiente, SortList es una matriz:
Function MaxValue(ByVal SortList() As Byte, S As String) As Integer
Observe que la cadena S se ha pasado por referencia, que es la opción por defecto.
Restricciones de los mecanismos de pasos:
1. Los elementos de las variables escalares y de las matrices pueden pasarse tanto por valor
como por referencia.
2. Una matriz puede pasar únicamente por referencia. La matriz debe ser también de una sola
dimensión y tener un límite inferior de uno. Es imposible pasar cualquier otro tipo de matriz,
sea cual sea el mecanismo de paso.
3. Las expresiones numéricas y los literales numéricos pueden pasarse por valor
...