You are on page 1of 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 Interfaz

Escribir Debug Cdigo and Deploy


Uso de Visual Studio .NET

Crear procedimientos Uso de procedimientos Uso de funciones predefinidas

Acceso a datos

Depurar e Implantar

Laboratorio de Lenguajes 1

Crear procedimientos
Qu son los procedimientos? Cmo crear procedimientos Sub Cmo crear procedimientos Function Cmo declarar argumentos en procedimientos Cmo utilizar argumentos opcionales Reutilizacin del cdigo

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


Los procedimientos Sub realizan acciones pero no devuelven un valor al procedimiento que realiza la llamada
[accessibility] Sub subname[(argumentlist)] [accessibility] Sub subname[(argumentlist)] ' Sub procedimiento statements ' Sub procedimiento statements End Sub End Sub

Ejemplo:
Private Sub AboutHelp( ) Private Sub AboutHelp( ) MessageBox.Show("MyProgram V1.0", "MyProgram Help") MessageBox.Show("MyProgram V1.0", "MyProgram Help") End Sub End Sub

Laboratorio de Lenguajes 1

Cmo crear procedimientos Function


Los procedimientos Function realizan acciones y pueden devolver un valor al programa que realiza la llamada
[accessibility] Function name[(argumentlist)] As datatype [accessibility] Function name[(argumentlist)] As datatype ' Function statements, including optional Return ' Function statements, including optional Return ' statement ' statement End Function End Function

Ejemplo:
Public Function DoubleTheValue(ByVal J As Double) As _ Public Function DoubleTheValue(ByVal J As Double) As _ Double Double . . . . . . Return J*2 Return J*2 . . . . . . End Function End Function
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:
(Optional [ByVal|ByRef] argumentname As datatype = defaultvalue) (Optional [ByVal|ByRef] argumentname As datatype = defaultvalue)

Ejemplo:
Function Add (ByVal value1 As Integer, ByVal value2 As _ Function Add (ByVal value1 As Integer, ByVal value2 As _ Integer, Optional ByVal value3 As Integer = 0) As Integer Integer, Optional ByVal value3 As Integer = 0) As Integer

Laboratorio de Lenguajes 1

Reutilizacin del cdigo


Usar Usar para para Ejemplos Ejemplos
Size Size Point Point Conversin de Conversin de temperatura temperatura Formularios Formularios Botones Botones

Estructura Objetos que no necesitan ser extendidos Estructura Objetos que no necesitan ser extendidos

Mdulo Mdulo Clase Clase

Funciones de utilidad yydatos globales Funciones de utilidad datos globales Extende objetos u objetos que necesitan Extende objetos u objetos que necesitan cleanup cleanup

Crear un mdulo:
[Public|Friend] Module ModuleName [Public|Friend] Module ModuleName . . . . . . End Module End Module

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) Public Sub Hello(ByVal name As String) MessageBox.Show("Hello " & name) MessageBox.Show("Hello " & name) End Sub End Sub
Cada vez que se invoca un Cada vez que se invoca un procedimiento Sub, se ejecutan procedimiento Sub, se ejecutan sus instrucciones, empezando sus instrucciones, empezando por la primera instruccin por la primera instruccin ejecutable despus de la ejecutable despus de la instruccin Sub y finalizando instruccin Sub y finalizando con la primera instruccin con la primera instruccin End Sub, Exit Sub End Sub, Exit Sub o Return encontrada. o Return encontrada.
Laboratorio de Lenguajes 1

Sub Test( ) Sub Test( ) Hello("John") Hello("John") End Sub End Sub

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 Dim celsiusTemperature As Single Dim celsiusTemperature As Single celsiusTemperature = FtoC(80) celsiusTemperature = FtoC(80) Utilizar el nombre de la funcin en una expresin If FtoC(userValue) < 0 Then If FtoC(userValue) < 0 Then ... ... End If 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 Dim FileName As String FileName = InputBox("Please enter file name","Search") 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
DateAdd(DateInterval.Day, 10, billDate) DateAdd(DateInterval.Day, 10, billDate)

DateDiff: Determina cuntos intervalos de tiempo especificados existen entre dos valores de fecha/hora
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
NewString = Trim(MyString) NewString = Trim(MyString)

Len
Length = Len(customerName) Length = Len(customerName)

Left
Microsoft.VisualBasic.Left(customerName, 5) Microsoft.VisualBasic.Left(customerName, 5)
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
FormatCurrency(amountOwed, , , TriState.True,TriState.True) FormatCurrency(amountOwed, , , TriState.True,TriState.True)

FormatDateTime
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
payment = Pmt(0.0083, 24, -5000, 0, DueDate.BegOfPeriod) payment = Pmt(0.0083, 24, -5000, 0, DueDate.BegOfPeriod)

Rate
ratePerPeriod = Rate(24, 228, -5000, 0, DueDate.BegOfPeriod, _ ratePerPeriod = Rate(24, 228, -5000, 0, DueDate.BegOfPeriod, _ 0.8)*100 0.8)*100

Laboratorio de Lenguajes 1

Prctica 11

Laboratorio de Lenguajes 1

Prctica 12

Laboratorio de Lenguajes 1

You might also like