Está en la página 1de 50

Clase 4.

Funciones. Subrutinas y
procedimientos
Laboratorio de Lenguajes 1
Introduccin
El desarrollo de una aplicacin, especialmente si se trata
de un proyecto de gran tamao, es ms fcil si se
divide en piezas ms pequeas.
El uso de procedimientos puede ayudarnos a agrupar
nuestro cdigo en secciones lgicas y condensar
tareas repetidas o compartidas, como clculos
utilizados frecuentemente.
En este mdulo, aprenderemos a crear y utilizar
procedimientos.
Laboratorio de Lenguajes 1
Descripcin
Crear procedimientos
Uso de procedimientos
Uso de funciones
predefinidas
Debug
and Deploy
Escribir
Cdigo
Acceso
a datos
Uso de Visual
Studio .NET
Depurar e
Implantar
Crear
Interfaz
Laboratorio de Lenguajes 1
Qu son los procedimientos?
Cmo crear procedimientos Sub
Cmo crear procedimientos Function
Cmo declarar argumentos en procedimientos
Cmo utilizar argumentos opcionales
Reutilizacin del cdigo
Crear procedimientos
Laboratorio de Lenguajes 1
Qu son los procedimientos?
Los procedimientos son las sentencias de cdigo
ejecutable de un programa, encerradas por una
sentencia de declaracin y una sentencia End
Tres tipos:
Procedimientos Sub (incluyendo procedimientos Sub
de eventos )
Procedimientos Function
Procedimientos Property
Permitir la reutilizacin de cdigo
Declarados como public de forma predeterminada
Laboratorio de Lenguajes 1
Qu son los procedimientos?
Los procedimientos Sub realizan acciones pero no
devuelven un valor al procedimiento que origina la
llamada. Los controladores de eventos son
procedimientos Sub que se ejecutan en respuesta a un
evento.
Los procedimientos Function pueden devolver un
valor al procedimiento que origina la llamada. La
instruccin MessageBox.Show es un ejemplo de
funcin.
Los procedimientos Property devuelven y asignan
valores de propiedades de clases, estructuras o
mdulos.
Laboratorio de Lenguajes 1
Uso de procedimientos
Un procedimiento puede ser invocado, o llamado, desde
otro procedimiento. Cuando un procedimiento llama a
otro procedimiento, se transfiere el control al segundo
procedimiento. Cuando finaliza la ejecucin del
cdigo del segundo procedimiento, ste devuelve el
control al procedimiento que lo invoc.
Debido a esta funcionalidad, los procedimientos resultan
tiles para realizar tareas repetidas o compartidas. En
lugar de escribir el mismo cdigo ms de una vez,
podemos escribir un procedimiento e invocarlo desde
varios puntos de nuestra aplicacin o desde otras
aplicaciones.
Laboratorio de Lenguajes 1
Accesibilidad del procedimiento
La siguiente tabla muestra las opciones de accesibilidad
para declarar un procedimiento dentro de un mdulo:
Modificador de acceso - Descripcin
Public : Ninguna restriccin de acceso
Friend : Accesible desde el programa que
contiene la declaracin y desde cualquier otro
lugar del mismo ensamblado
Private : Accesible nicamente en el mdulo que
contiene la declaracin
Laboratorio de Lenguajes 1
Cmo crear procedimientos Sub
Private Sub AboutHelp( )
MessageBox.Show("MyProgram V1.0", "MyProgram Help")
End Sub
Private Sub AboutHelp( )
MessageBox.Show("MyProgram V1.0", "MyProgram Help")
End Sub
[accessibility] Sub subname[(argumentlist)]
' Sub procedimiento statements
End Sub
[accessibility] Sub subname[(argumentlist)]
' Sub procedimiento statements
End Sub
Ejemplo:
Los procedimientos Sub realizan acciones pero no
devuelven un valor al procedimiento que realiza la llamada
Laboratorio de Lenguajes 1
Cmo crear procedimientos Function
Public Function DoubleTheValue(ByVal J As Double) As _
Double
. . .
Return J*2
. . .
End Function
Public Function DoubleTheValue(ByVal J As Double) As _
Double
. . .
Return J*2
. . .
End Function
[accessibility] Function name[(argumentlist)] As datatype
' Function statements, including optional Return
' statement
End Function
[accessibility] Function name[(argumentlist)] As datatype
' Function statements, including optional Return
' statement
End Function
Ejemplo:
Los procedimientos Function realizan acciones y pueden
devolver un valor al programa que realiza la llamada
Laboratorio de Lenguajes 1
Valores de retorno
La funcin devuelve el valor en una de las dos formas
siguientes:
Asigna un valor al nombre de su propia funcin en
una o ms instrucciones dentro del procedimiento. El
control no se devuelve al programa que origina la
llamada hasta que se ejecuta una instruccin Exit
Function o End Function.
La instruccin Exit Function provoca la salida
inmediata de un procedimiento Function. Cualquier
nmero de instrucciones Exit Function pueden
aparecer en cualquier lugar del procedimiento.
Laboratorio de Lenguajes 1
Valores de retorno
Utiliza una instruccin Return para especificar el
valor devuelto, y devuelve el control inmediatamente
al programa que origina la llamada.
La ventaja de asignar el valor devuelto al nombre de
funcin es que el control no se devuelve desde la
funcin hasta que el programa encuentra una
instruccin Exit Function o End Function. Esto
permite asignar un valor preliminar y ajustarlo ms
tarde si es necesario.
Laboratorio de Lenguajes 1
Ejemplo
Laboratorio de Lenguajes 1
Cmo declarar argumentos en procedimientos
Un procedimiento que realiza tareas repetidas o compartidas utiliza
distinta informacin en cada llamada. Esta informacin puede
estar formada por variables, constantes y expresiones que se
pasan al procedimiento por el procedimiento que origina la
llamada. Cada valor que se pasa a un procedimiento se denomina
argumento.
Parmetros vs. argumentos
Cuando definimos un procedimiento en Visual Basic .NET,
describimos los datos y los tipos de datos para los que el
procedimiento est diseado para aceptar desde un procedimiento
de llamada. Los elementos definidos en el procedimiento se
denominan parmetros.
Cuando invocamos el procedimiento, sustituimos un valor actual de
cada parmetro. Los valores que asignamos en lugar de los
parmetros se denominan argumentos.
Laboratorio de Lenguajes 1
Cmo declarar argumentos en procedimientos
Los argumentos son datos pasados a procedimientos
Podemos pasar argumentos ByVal o ByRef
ByVal: El procedimiento no puede modificar el valor de la
variable original
ByRef: El procedimiento puede modificar el valor de la
variable original
Excepcin: Los elementos no variables no se modifican
en el cdigo que llama, aunque sean pasados por
referencia
ByVal es el valor predeterminado en Visual Basic .NET
Sintaxis y ejemplo:
([ByVal|ByRef] argumentname As datatype)
([ByVal|ByRef] argumentname As datatype)
(ByVal Name As String)
(ByVal Name As String)
Laboratorio de Lenguajes 1
Paso ByVal y ByRef
Laboratorio de Lenguajes 1
Utilizar argumentos opcionales
Laboratorio de Lenguajes 1
Cmo utilizar argumentos opcionales
Reglas para declarar argumentos opcionales:
Especificar un valor predeterminado
El valor predeterminado debe ser una expresin constante
Los argumentos que sigan a un argumento opcional
tambin deben ser opcionales
Sintaxis:
Function Add (ByVal value1 As Integer, ByVal value2 As _
Integer, Optional ByVal value3 As Integer = 0) As Integer
Function Add (ByVal value1 As Integer, ByVal value2 As _
Integer, Optional ByVal value3 As Integer = 0) As Integer
(Optional [ByVal|ByRef] argumentname As datatype = defaultvalue)
(Optional [ByVal|ByRef] argumentname As datatype = defaultvalue)
Ejemplo:
Laboratorio de Lenguajes 1
Reutilizacin del cdigo
[Public|Friend] Module ModuleName
. . .
End Module
[Public|Friend] Module ModuleName
. . .
End Module
Crear un mdulo:
Usar
Usar Usar
para
para para
Estructura
Estructura
Objetos que no necesitan ser extendidos
Objetos que no necesitan ser extendidos
Ejemplos
Ejemplos Ejemplos
Size
Point
Size
Point
Mdulo
Mdulo
Funciones de utilidad y datos globales
Funciones de utilidad y datos globales
Conversin de
temperatura
Conversin de
temperatura
Clase
Clase
Extende objetos u objetos que necesitan
cleanup
Extende objetos u objetos que necesitan
cleanup
Formularios
Botones
Formularios
Botones
Laboratorio de Lenguajes 1
Crear un modulo
Laboratorio de Lenguajes 1
Accesibilidad de un modulo
Laboratorio de Lenguajes 1
Prctica 8: Crear una funcin en un mdulo
Laboratorio de Lenguajes 1
Uso de procedimientos
Cmo utilizar procedimientos Sub
Cmo utilizar procedimientos Function
Cmo pasar matrices a procedimientos
Cmo crear un Sub Main
Laboratorio de Lenguajes 1
Cmo utilizar los procedimientos Sub
Public Sub Hello(ByVal name As String)
MessageBox.Show("Hello " & name)
End Sub
Public Sub Hello(ByVal name As String)
MessageBox.Show("Hello " & name)
End Sub
Sub Test( )
Hello("John")
End Sub
Sub Test( )
Hello("John")
End Sub
Cada vez que se invoca un
procedimiento Sub, se ejecutan
sus instrucciones, empezando
por la primera instruccin
ejecutable despus de la
instruccin Sub y finalizando
con la primera instruccin
End Sub, Exit Sub
o Return encontrada.
Cada vez que se invoca un
procedimiento Sub, se ejecutan
sus instrucciones, empezando
por la primera instruccin
ejecutable despus de la
instruccin Sub y finalizando
con la primera instruccin
End Sub, Exit Sub
o Return encontrada.
Laboratorio de Lenguajes 1
Cmo utilizar los procedimientos Function
Invocar una funcin
Incluir el nombre de la funcin y los argumentos en el
lado derecho de una instruccin de asignacin
Utilizar el nombre de la funcin en una expresin
Dim celsiusTemperature As Single
celsiusTemperature = FtoC(80)
Dim celsiusTemperature As Single
celsiusTemperature = FtoC(80)
If FtoC(userValue) < 0 Then
...
End If
If FtoC(userValue) < 0 Then
...
End If
Laboratorio de Lenguajes 1
Prctica 9
Laboratorio de Lenguajes 1
Cmo crear un Sub Main
Sub Main: Punto de inicio de la aplicacin
Application.Run: Inicia la aplicacin
Application.Exit: Cierra la aplicacin
Laboratorio de Lenguajes 1
Cmo crear un Sub Main
Introduccin
Para abrir y cerrar una aplicacin, la biblioteca de clases del .NET
Framework proporciona la clase Application. La clase Application
proporciona mtodos (procedimientos) y propiedades para
gestionar una aplicacin, incluyendo mtodos para abrir y cerrar
una aplicacin, mtodos para procesar mensajes de Microsoft
Windows, y propiedades para obtener informacin sobre una
aplicacin.
El procedimiento Sub Main
Cuando creamos aplicaciones con la plantilla Aplicacin para
Windows en Visual Basic .NET, Visual Basic crea automticamente
un procedimiento Sub oculto denominado Sub Main para la clase
Form. Este procedimiento se utiliza como punto de inicio para
nuestra aplicacin.
Laboratorio de Lenguajes 1
Cmo crear un Sub Main
Utilizacin de Application.Exit
Para cerrar una aplicacin, invocamos el mtodo Application.Exit
utilizando la siguiente sintaxis:
Application.Exit( )
Por ejemplo, podemos insertar este cdigo en el controlador de
eventos Click de un botn. Cuando el usuario haga clic en el
botn, la aplicacin se cerrar.
Nota
Los eventos Form.Closed y Form.Closing no se lanzan cuando se
invoca el mtodo Application.Exit para cerrar la aplicacin. Si hay
cdigo en estos eventos que deba ser ejecutado, invocar el
mtodo Form.Close para cada formulario abierto individualmente
antes de invocar el mtodo Application.Exit.
Laboratorio de Lenguajes 1
Prctica 10: Crear un Sub Main
Laboratorio de Lenguajes 1
Uso de funciones predefinidas
La biblioteca del entorno de ejecucin de Visual Basic
proporciona numerosas funciones predefinidas que
podemos utilizar en nuestro cdigo. Estas funciones se
invocan del mismo modo en que invocamos a nuestras
propias funciones.
Cmo utilizar la funcin InputBox
Cmo utilizar las funciones de fecha y hora
Cmo utilizar las funciones String
Cmo utilizar las funciones Format
Cmo utilizar las funciones Financial
Laboratorio de Lenguajes 1
Cmo utilizar la funcin InputBox
Muestra un mensaje en un cuadro de dilogo y
devuelve al usuario la entrada en una cadena
Dim FileName As String
FileName = InputBox("Please enter file name","Search")
Dim FileName As String
FileName = InputBox("Please enter file name","Search")
Laboratorio de Lenguajes 1
Cmo utilizar la funcin InputBox
Es una funcin predefinida que proporciona una
forma sencilla de interactuar con los usuarios.
La funcin InputBox muestra un cuadro de dilogo
con un mensaje, espera a que el usuario
introduzca texto o haga clic en un botn y devuelve
una cadena con el contenido del cuadro de texto.
Laboratorio de Lenguajes 1
Cmo utilizar la funcin InputBox. Parmetros.
Laboratorio de Lenguajes 1
Cmo utilizar las funciones de fecha y hora
Podemos utilizar la funcin DateAdd para aadir o sustraer
un intervalo de tiempo especfico a una fecha. Pasamos a
la funcin la fecha y la informacin sobre el intervalo, y la
funcin DateAdd devuelve un valor Date que contiene el
valor de fecha y hora, al que se ha aadido o sustrado un
intervalo de tiempo especificado.
Podemos utilizar la funcin DateDiff para determinar cuntos
intervalos de tiempo especificados existen entre dos
valores de fecha/hora. Por ejemplo, podra utilizarse
DateDiff para calcular el nmero de das entre dos fechas
o el nmero de semanas ente hoy y final del ao.
Laboratorio de Lenguajes 1
DateAdd. Parmetros
Laboratorio de Lenguajes 1
DateDiff. Parmetros.
Laboratorio de Lenguajes 1
Cmo utilizar las funciones de fecha y hora
Realizan clculos y operaciones que implican fechas y
horas
Ejemplos:
DateAdd: Aade o sustrae un intervalo de tiempo
especfico a una fecha
DateDiff: Determina cuntos intervalos de tiempo
especificados existen entre dos valores de fecha/hora
DateAdd(DateInterval.Day, 10, billDate)
DateAdd(DateInterval.Day, 10, billDate)
DateDiff(DateInterval.Day, Now, secondDate)
DateDiff(DateInterval.Day, Now, secondDate)
Laboratorio de Lenguajes 1
Cmo utilizar las funciones String. Trim.
Laboratorio de Lenguajes 1
Cmo utilizar las funciones String. Len
Laboratorio de Lenguajes 1
Cmo utilizar las funciones String. Left
Laboratorio de Lenguajes 1
Cmo utilizar las funciones String
Extraen slo una parte determinada de una cadena
Devuelven informacin sobre una cadena
Muestran informacin de un formato determinado
Ejemplos:
Trim
Len
Left
Length = Len(customerName)
Length = Len(customerName)
Microsoft.VisualBasic.Left(customerName, 5)
Microsoft.VisualBasic.Left(customerName, 5)
NewString = Trim(MyString)
NewString = Trim(MyString)
Laboratorio de Lenguajes 1
Cmo utilizar las funciones FormatCurrency
Laboratorio de Lenguajes 1
Cmo utilizar las funciones FormatCurrency
Laboratorio de Lenguajes 1
Cmo utilizar las funciones Format
Formatean nmeros, fechas y horas segn estndares
aceptados
Muestran formatos regionales sin codificar de nuevo
para nacionalidades o regiones
Ejemplos:
FormatCurrency
FormatDateTime
FormatCurrency(amountOwed, , , TriState.True,TriState.True)
FormatCurrency(amountOwed, , , TriState.True,TriState.True)
FormatDateTime(myDate, DateFormat.LongDate)
FormatDateTime(myDate, DateFormat.LongDate)
Laboratorio de Lenguajes 1
Cmo utilizar las funciones FormatDateTime
Laboratorio de Lenguajes 1
Cmo utilizar las funciones FormatDateTime
Laboratorio de Lenguajes 1
Cmo utilizar las funciones Financial
Realizan clculos y operaciones que implican finanzas;
por ejemplo, tipos de inters
Ejemplos:
Pmt
Rate
payment = Pmt(0.0083, 24, -5000, 0, DueDate.BegOfPeriod)
payment = Pmt(0.0083, 24, -5000, 0, DueDate.BegOfPeriod)
ratePerPeriod = Rate(24, 228, -5000, 0, DueDate.BegOfPeriod, _
0.8)*100
ratePerPeriod = Rate(24, 228, -5000, 0, DueDate.BegOfPeriod, _
0.8)*100
Laboratorio de Lenguajes 1
Prctica 11
Laboratorio de Lenguajes 1
Prctica 12
Laboratorio de Lenguajes 1

También podría gustarte