Este tutorial de Visual Basic Net tratara sobre procedimientos y funciones aprenderemos que son, a utilizarlos y como crearlos tema muy importante ya que Visual Basic Net está lleno de ellos.
Nota:
Por conveniencia con otras versiones antiguas del Visual Basic se les llama procedimientos a las subrutinas aunque procedimiento es un término que engloba tanto a subrutinas y funciones en este tutorial seguiremos la convención y llamaremos procedimientos a las subrutinas.
¿Que son procedimientos y funciones?
Son estructuras creadas para desarrollar tareas específicas el objetivo de ellas es:
Reducir código
Dividir un programa en partes más pequeñas es mejor tanto para su análisis como una mejor comprensión, Asimismo para un mejor uso.
Reutilizar código
Los procedimientos y funciones pueden ser llamados por otros programas o por otros mismos procedimientos y funciones. No hay que inventar la rueda hay que usar lo que otros ya han creado.
Por ejemplo:
Now() es una función del Visual Basic Net que nos regresa la fecha y la hora actual para ello solo nos basta con llamarlo.
Ucase() es otro ejemplo de función que convierte cualquier cadena en minúscula a mayúscula.
Ambas son ejemplos de funciones son propias del Visual Net y por lo tanto no tendremos que crearlas solo usarlas, ahorrándonos así líneas de código.
¿Cuál es la diferencia entre procedimientos y funciones?
La diferencia es que una función devuelve un valor producto de una operación o un cálculo mientras que un procedimiento no ya que ellas ejecutan acciones.
Un procedimiento en su forma más simple se define así:
Sub myproc()
Instrucciones
End Sub
Con argumentos seria así
Sub myproc(argumento1 as tipodedato,...)
Instrucciones
End Sub
Una función retorna un valor por lo que tiene que tener el mismo tipo de dato que el valor devuelto, su sintaxis es así
Function mifuncion() as tipodedato
return valoraretornar
End Function
'Código del procedimiento
Sub bienvenido(nombre As String)
MsgBox("Hola " & nombre)
End Sub
El código debe quedar así.
Si bien es cierto el ejemplo es simple nos sirve para entender lo que un procedimiento hace.
Ejemplo 2:
Crearemos un programa que cuenta con un botón y una función que comparara dos números y devolverá el mayor de ellos. Ingresaremos 4 y 5 como valor a comparar.
'Código del botón.
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim resultado As Integer
resultado = comparar(4, 5)
MsgBox("El Numero mas alto es el " & resultado)
End Sub
'Código de la función
Function comparar(valorA As Integer, valorB As Integer) As Integer
Return IIf(valorA > valorB, valorA, valorB)
End Function
El código debe quedar así.
Argumentos
Los argumentos son los valores que pasamos a una función o procedimiento, Se diferencian en argumentos "Por Valor" y "Por Referencia" siendo la opción por defecto "Por Valor".
Cuando pasamos un argumento por valor no se modifica el contenido de la variable en si solo el valor enviado dejando la variable original intacta. Se usa opcionalmente la palabra "Byval" para indicar que un procedimiento se pasa por valor, Ya que es la opción por defecto se puede omitir.
Ejemplo 3:
Crearemos un programa que cuenta con un botón y una función myfunc que acepta un argumento "por valor" Esta función tiene como finalidad multiplicar cualquier numero por 2.
'Código de la función
Function myfunc(ByVal numerof As Integer) As Integer
numerof = numerof * 2
Return numerof
End Function
El código debe quedar así.
"numero" es nuestro valor a ingresar como vemos en el ejemplo al final sigue siendo 5 no habiéndose alterado su valor, "retorno" es donde se guardara el resultado de nuestra función.
Ejemplo 4:
Este ejemplo crearemos una función pero con un argumento "por referencia" seria así:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim numero As Integer
Dim retorno As Integer
numero = 5
retorno = myfunc(numero)
MsgBox("variable numero = " & numero & " variable retorno = " & retorno)
End Sub
Function myfunc(ByRef numerof As Integer) As Integer
numerof = numerof * 2
Return numerof
End Function
El código debe quedar así.
Como vemos en nuestro ejemplo al final nuestras variables "numero" y "retorno" son las mismas ya que se ha modificado la variable directamente.
Crearemos un programa con un botón que nos devuelva la suma, resta y multiplicación de 2 números.
El programa usara una función llamada "operaciones" que tomara 4 argumentos 2 por valor y 2 por referencia.
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim numeroa As Integer, numerob As Integer
Dim resta As Integer, multiplicacion As Integer
Dim suma As Integer
numeroa = 5
numerob = 7
suma = operaciones(numeroa, numerob, resta, multiplicacion)
MsgBox("suma =" & suma & " resta =" & resta & " multiplicacion =" & multiplicacion)
End Sub
Function operaciones(numeroa As Integer, numerob As Integer, ByRef resta As Integer, ByRef multiplicacion As Integer) As Integer
resta = numeroa - numerob
multiplicacion = numeroa * numerob
Return numeroa + numerob
End Function
El código debe quedar así.
Multiples Argumentos
Si queremos pasar una cantidad desconocida de argumentos utilizaremos ParamArray.
Ejemplo 6:
Crearemos un programa con un botón que nos enseñara como pasar múltiples parámetros a un procedimiento, para ello usaremos el tipo de datos Object.
Sub mifuncion(ByVal ParamArray dias() As Object)
Dim x As Object
For Each x In dias
msgbox(x)
Next x
End Sub
El código debe quedar así.
Argumentos por Nombre
Otra forma de ingresar argumentos a una función es haciendo uso de su nombre.
Ejemplo 7:
Crearemos un programa con un botón que nos enseñara como pasar argumentos usando nombres de variables.
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
crear_empleado(nombre:="Alan Garcia Perez", cod:="666", direccion:="Av. Las Casuarinas, Lima", telefono:="1234567")
End Sub
Sub crear_empleado(cod as string,nombre as string,direccion as string,telefono as string)
Dim resumen As String
resumen = "Empleado " & vbCrLf & " Codigo: " & cod & vbCrLf & " Nombre : " & nombre & vbCrLf & " Direccion: " & direccion & vbCrLf & " Telefono: " & telefono
Msgbox(resumen)
End Sub
El código debe quedar así.
"vbCrLf" produce un salto de linea.
Funciones Overloading
Overloading es una nueva característica de VB. Net, fue diseñada para aquellas funciones cuya funcionalidad es similar pero tienen diferentes números de argumentos o tipos de datos.
Ejemplo 8:
Crearemos un programa con un botón que nos enseñara como crear funciones Overloading.
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
MsgBox("El numero mayor es " & mayor(4, 5))
mayor("alex")
MsgBox("La fecha mayor es " & mayor(#1/5/1978#, #12/12/2014#))
End Sub
Overloads Function mayor(valora As Date, valorb As Date) As Date
mayor = iif(valora > valorb, valora, valorb)
End Function
Overloads Function mayor(valora As Integer, valorb As Integer) As Integer
mayor = iif(valora > valorb, valora, valorb)
End Function
Overloads Function mayor(nombre As String) As Integer
MsgBox("Hola " & nombre)
End Function
El código debe quedar así.
Las funciones tienen el mismo nombre pero aceptan diferentes tipos de datos.
Aquí terminamos nuestro tutorial, si tiene alguna duda no tema preguntar.
Nota:
Por conveniencia con otras versiones antiguas del Visual Basic se les llama procedimientos a las subrutinas aunque procedimiento es un término que engloba tanto a subrutinas y funciones en este tutorial seguiremos la convención y llamaremos procedimientos a las subrutinas.
Son estructuras creadas para desarrollar tareas específicas el objetivo de ellas es:
Reducir código
Dividir un programa en partes más pequeñas es mejor tanto para su análisis como una mejor comprensión, Asimismo para un mejor uso.
Reutilizar código
Los procedimientos y funciones pueden ser llamados por otros programas o por otros mismos procedimientos y funciones. No hay que inventar la rueda hay que usar lo que otros ya han creado.
Por ejemplo:
Now() es una función del Visual Basic Net que nos regresa la fecha y la hora actual para ello solo nos basta con llamarlo.
Ucase() es otro ejemplo de función que convierte cualquier cadena en minúscula a mayúscula.
Ambas son ejemplos de funciones son propias del Visual Net y por lo tanto no tendremos que crearlas solo usarlas, ahorrándonos así líneas de código.
¿Cuál es la diferencia entre procedimientos y funciones?
La diferencia es que una función devuelve un valor producto de una operación o un cálculo mientras que un procedimiento no ya que ellas ejecutan acciones.
Un procedimiento en su forma más simple se define así:
Sub myproc()
Instrucciones
End Sub
Con argumentos seria así
Sub myproc(argumento1 as tipodedato,...)
Instrucciones
End Sub
Una función retorna un valor por lo que tiene que tener el mismo tipo de dato que el valor devuelto, su sintaxis es así
Function mifuncion() as tipodedato
return valoraretornar
End Function
Con argumentos
Function mifuncion(argumento1 as tipodedato,...) as tipodedato
return valoraretornar
End Function
Ejemplo 1:
Crearemos un programa que cuenta con un botón y un procedimiento llamado "bienvenido" que desplegara un mensaje al hacer clic en el botón y ingresar un nombre.
'Código del botón.
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim nombre As String
nombre = InputBox("Ingrese un nombre :")
bienvenido(nombre)
End Sub
'Código del procedimiento
Sub bienvenido(nombre As String)
MsgBox("Hola " & nombre)
End Sub
El código debe quedar así.
Si bien es cierto el ejemplo es simple nos sirve para entender lo que un procedimiento hace.
Ejemplo 2:
Crearemos un programa que cuenta con un botón y una función que comparara dos números y devolverá el mayor de ellos. Ingresaremos 4 y 5 como valor a comparar.
'Código del botón.
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim resultado As Integer
resultado = comparar(4, 5)
MsgBox("El Numero mas alto es el " & resultado)
End Sub
'Código de la función
Function comparar(valorA As Integer, valorB As Integer) As Integer
Return IIf(valorA > valorB, valorA, valorB)
End Function
El código debe quedar así.
Argumentos
Los argumentos son los valores que pasamos a una función o procedimiento, Se diferencian en argumentos "Por Valor" y "Por Referencia" siendo la opción por defecto "Por Valor".
Cuando pasamos un argumento por valor no se modifica el contenido de la variable en si solo el valor enviado dejando la variable original intacta. Se usa opcionalmente la palabra "Byval" para indicar que un procedimiento se pasa por valor, Ya que es la opción por defecto se puede omitir.
Ejemplo 3:
Crearemos un programa que cuenta con un botón y una función myfunc que acepta un argumento "por valor" Esta función tiene como finalidad multiplicar cualquier numero por 2.
'Código dentro de un botón.
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim numero As Integer
Dim retorno As Integer
numero = 5
retorno = myfunc(numero)
MsgBox("variable numero = " & numero & " variable retorno = " & retorno)
End Sub
'Código de la función
Function myfunc(ByVal numerof As Integer) As Integer
numerof = numerof * 2
Return numerof
End Function
El código debe quedar así.
"numero" es nuestro valor a ingresar como vemos en el ejemplo al final sigue siendo 5 no habiéndose alterado su valor, "retorno" es donde se guardara el resultado de nuestra función.
Ejemplo 4:
Este ejemplo crearemos una función pero con un argumento "por referencia" seria así:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim numero As Integer
Dim retorno As Integer
numero = 5
retorno = myfunc(numero)
MsgBox("variable numero = " & numero & " variable retorno = " & retorno)
End Sub
Function myfunc(ByRef numerof As Integer) As Integer
numerof = numerof * 2
Return numerof
End Function
El código debe quedar así.
Como vemos en nuestro ejemplo al final nuestras variables "numero" y "retorno" son las mismas ya que se ha modificado la variable directamente.
Ejemplo 5:
Crearemos un programa con un botón que nos devuelva la suma, resta y multiplicación de 2 números.
El programa usara una función llamada "operaciones" que tomara 4 argumentos 2 por valor y 2 por referencia.
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim numeroa As Integer, numerob As Integer
Dim resta As Integer, multiplicacion As Integer
Dim suma As Integer
numeroa = 5
numerob = 7
suma = operaciones(numeroa, numerob, resta, multiplicacion)
MsgBox("suma =" & suma & " resta =" & resta & " multiplicacion =" & multiplicacion)
End Sub
Function operaciones(numeroa As Integer, numerob As Integer, ByRef resta As Integer, ByRef multiplicacion As Integer) As Integer
resta = numeroa - numerob
multiplicacion = numeroa * numerob
Return numeroa + numerob
End Function
El código debe quedar así.
Multiples Argumentos
Si queremos pasar una cantidad desconocida de argumentos utilizaremos ParamArray.
Ejemplo 6:
Crearemos un programa con un botón que nos enseñara como pasar múltiples parámetros a un procedimiento, para ello usaremos el tipo de datos Object.
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
mifuncion("lunes", "martes", "miercoles", "jueves", "viernes")
End Sub
Dim x As Object
For Each x In dias
msgbox(x)
Next x
End Sub
El código debe quedar así.
Argumentos por Nombre
Otra forma de ingresar argumentos a una función es haciendo uso de su nombre.
Ejemplo 7:
Crearemos un programa con un botón que nos enseñara como pasar argumentos usando nombres de variables.
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
crear_empleado(nombre:="Alan Garcia Perez", cod:="666", direccion:="Av. Las Casuarinas, Lima", telefono:="1234567")
End Sub
Sub crear_empleado(cod as string,nombre as string,direccion as string,telefono as string)
Dim resumen As String
resumen = "Empleado " & vbCrLf & " Codigo: " & cod & vbCrLf & " Nombre : " & nombre & vbCrLf & " Direccion: " & direccion & vbCrLf & " Telefono: " & telefono
Msgbox(resumen)
End Sub
El código debe quedar así.
"vbCrLf" produce un salto de linea.
Interesante forma de pasar argumentos pero muy poco usada por programadores ya que se tiene que tipear mas.
Funciones Overloading
Overloading es una nueva característica de VB. Net, fue diseñada para aquellas funciones cuya funcionalidad es similar pero tienen diferentes números de argumentos o tipos de datos.
Ejemplo 8:
Crearemos un programa con un botón que nos enseñara como crear funciones Overloading.
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
MsgBox("El numero mayor es " & mayor(4, 5))
mayor("alex")
MsgBox("La fecha mayor es " & mayor(#1/5/1978#, #12/12/2014#))
End Sub
Overloads Function mayor(valora As Date, valorb As Date) As Date
mayor = iif(valora > valorb, valora, valorb)
End Function
Overloads Function mayor(valora As Integer, valorb As Integer) As Integer
mayor = iif(valora > valorb, valora, valorb)
End Function
Overloads Function mayor(nombre As String) As Integer
MsgBox("Hola " & nombre)
End Function
El código debe quedar así.
Las funciones tienen el mismo nombre pero aceptan diferentes tipos de datos.
Aquí terminamos nuestro tutorial, si tiene alguna duda no tema preguntar.
0 comentarios:
Publicar un comentario