Procedimientos

Los procedimientos y funciones son porciones de código que realizan una determinada tarea. Tienen un ambito que cumple con las mismas reglas que las variables.
Los procedimientos comienzan con Private Sub o Public Sub, según se establezcan como privados o públicos, y finalizan con End Sub. Estas porciones de código realizan múltiples tareas, pero no tienen valor de retorno (a diferencia de las funciones), o sea, no devuelven explícitamente un resultado. Un ejemplo de procedimientos son los eventos.
Si bien comienzan con Private o Public Sub y finalizan con End Sub, se puede escapar en cualquier momento con la instrucción Exit Sub. Puede llevar o no parámetros, los cuales irán entre paréntesis.
Las funciones tienen por cometido brindar directamente un resultado al cual se podrá acceder directamente a través del nombre de la función y el resultado será de un determinado tipo (Integer, Single, String, etc.). Comienzan con Private Function o Public Function y se puede escapar en cualquier momento con la instrucción Exit Function; también puede o no llevar parámetros.
Dentro de la misma función, se utilizará su nombre como variable y se le dará un valor; este valor será el valor de retorno de la función.
La forma general de un procedimiento es la siguiente:

Private/Public Sub nProcedimiento(argumentos)
sentencias 'se puede utilizar la instrucción Exit Sub si se desea
End Sub


La forma general de una función es la siguiente:

Private/Public Function nFunción(argumentos) as tDato
sentencias 'se puede utilizar la instrucción Exit Function si se desea
nFunción=sentencias
End Function


Cuando se quiere que un procedimiento o función llame a otro procedimiento se utiliza la instrucción Call seguida del nombre del procedimiento y los argumentos si los llevase.

Call nProcedimiento argumentos

Al hacer esta llamada se ejecuta el procedimiento indicado y finalizado éste se retorna a la siguiente instrucción luego de la llamada. Un ejemplo:

Private Sub proceso1() (1)
sentencias (2)
Call proceso2 argumento (3)
sentencias (7)
End Sub (8)



Private Sub proceso2() (4)
sentencias (5)
sentencias:Exit Sub (6)
sentencias
End Sub (6)

Los números indican el curso del programa. La salida de proceso2 puede darse tanto con Exit Sub como con End Sub.
Una función devuelve un valor, por lo tanto se utiliza el nombre de dicha función para llamarla y utilizar el valor que retorna, ya sea para almacenarlo en una variable, utilizarlo en un cálculo, etc. Por ejemplo:

Private Function inverso(numero as Integer, ndecim as Byte)as Double
inverso=round(numero,ndecim) End Function


Private Sub usarfuncion()
Dim var as Double
var=inverso(17,3)
End Sub


Procedimientos y funciones recursivos.

Una función o procedimiento es recursivo cuando se llama a sí mismo, por ejemplo, un procedimiento se llama a sí mismo hasta que se cumple una determinada condición.

Private Sub proceso()
sentencias
If condición Then
Call proceso
End If
End Sub


Este es sólo un ejemplo general de una función recursiva. Se puso una función condicional para salir de la recursividad pues si no se generaría un bucle interminable que terminaría por bloquear el sistema.

No hay comentarios:

Publicar un comentario en la entrada