Compartir a través de


Hacer que el equipo haga algo: escribir el primer procedimiento

Actualización: noviembre 2007

En esta lección, aprenderá a crear un procedimiento, es decir, un bloque de código independiente que puede ejecutarse desde otros bloques de código. A continuación, aprenderá a crear parámetros para los procedimientos.

Un procedimiento es simplemente un bloque de código que indica al programa que realice una acción. Aunque es posible que no lo haya notado, ya se han utilizado procedimientos en las lecciones anteriores. Por ejemplo, la función MsgBox tiene un procedimiento integrado que realiza la acción de mostrar un cuadro de diálogo.

Mientras Visual Basic tiene muchos procedimientos integrados para realizar las acciones comunes, siempre habrá casos en que se desea que el programa realice una acción que un procedimiento integrado no puede controlar. Por ejemplo, la función MsgBox no puede mostrar un cuadro de diálogo que contenga una imagen. Es necesario escribir un procedimiento para realizar esta tarea.

¿Qué es un procedimiento?

Un procedimiento es un bloque de código independiente que se puede ejecutar desde otros bloques de código. En general, cada procedimiento contiene el código necesario para realizar una tarea. Pongamos, por ejemplo, que dispone de un procedimiento denominado PlaySound que contiene el código necesario para reproducir un archivo de onda. Aunque puede escribir el mismo código para reproducir un sonido cada vez que el programa tenga que realizar un ruido, tiene más sentido crear un procedimiento único al que se pueda llamar en cualquier parte del programa.

Un procedimiento se ejecutallamándolo en el código. Por ejemplo, para ejecutar el procedimiento PlaySound, basta con que agregue una línea de código con el nombre del procedimiento, tal y como se muestra a continuación.

PlaySound()

Es todo lo que tiene que hacer. Cuando el programa llegue a esa línea, irá al procedimiento PlaySound y ejecutará el código allí contenido. A continuación, el programa regresa a la siguiente línea que viene después de la llamada a PlaySound.

Puede llamar a tantos procedimientos como desee. Los procedimientos se ejecutan en el orden de llamada. Por ejemplo, podría tener también un procedimiento denominado DisplayResults; para ejecutarlo después de ejecutar el procedimiento PlaySounds, llame a los procedimientos tal y como se muestra a continuación.

PlaySounds()

DisplayResults()

Funciones y Subs

Existen dos tipos de procedimientos: las funciones y las subrutinas (también denominadas sub). Una función devuelve un valor al procedimiento que la llamó, mientras que una subrutina simplemente ejecuta código. Se llama a una subrutina cuando una línea de código, que contiene el nombre de ésta, se agrega al programa como en el siguiente ejemplo.

DisplayResults

Las funciones son diferentes, porque las funciones no sólo ejecutan códigos, también devuelven un valor. Por ejemplo, imagine una función llamada GetDayOfWeek que devuelve un Integer que indica el día de la semana. Se llama a esta función declarando primero una variable para almacenar el valor devuelto y asignando después el valor devuelto a la variable para un uso posterior, tal y como se muestra a continuación.

Dim Today As Integer

Today = GetDayOfWeek

En este ejemplo, el valor devuelto por la función se copia a la variable denominada Today y se almacena para un uso posterior.

Escribir procedimientos

Los procedimientos se escriben colocando primero una declaración de procedimiento. Una declaración de procedimiento realiza varias acciones. Indica si el procedimiento es una función o una subrutina, asigna un nombre al procedimiento y detalla todos los parámetros que puede tener. (Los parámetros se analizarán en profundidad más adelante en esta lección.) A continuación, se ofrece un ejemplo de una declaración de procedimiento sencilla.

Sub MyFirstSub()
End Sub

La palabra clave Sub indica al programa que este procedimiento es una subrutina y no devolverá un valor. El nombre de la subrutina (MyFirstSub) viene a continuación y el paréntesis vacío indica que no hay parámetros para este procedimiento. Finalmente, la palabra clave End Sub indica el fin de la subrutina. Todos los códigos que tiene que ejecutar esta subrutina van entre estas dos líneas.

Declarar funciones es similar, pero, además, se debe especificar el tipo de valor devuelto (como por ejemplo,Integer, String, etc.). Por ejemplo, una función que devolvió un valor Integer puede ser similar a la siguiente.

Function MyFirstFunction() As Integer
End Function

Las palabras clave As Integer indican que la función devolverá un valor Integer . Para devolver un valor desde una función, utilice la palabra clave Return, como se muestra en el ejemplo siguiente.

Function GetTheNumberOne() As Integer
    Return 1
End Function

Este procedimiento devolverá el número 1.

Inténtelo

Para crear procedimientos

  1. En el menú Archivo, haga clic en Nuevo proyecto.

  2. En el cuadro de diálogo Nuevo proyecto, en el panel Plantillas, haga clic en Aplicación para Windows.

  3. En el cuadro Nombre, escriba MyFirstProcedure y, a continuación, haga clic en Aceptar.

    Se abre un nuevo proyecto de formularios Windows Forms.

  4. Haga doble clic en el formulario para abrir el Editor de código.

  5. En el Editor de código, busque la línea que contiene End Class. Esta línea indica el final de la sección de código que compone el formulario. Inmediatamente antes de esta línea, agregue el siguiente procedimiento:

    Function GetTime() As String
      Return CStr(Now)
    End Function
    

    Esta función usa el procedimiento integrado Now para recibir la hora actual y, a continuación, utiliza la función CStr para convertir el valor devuelto por Now en un valor de tipo String legible. Finalmente, ese valor String se devuelve como el resultado de la función.

  6. Sobre la función que agregó en el paso anterior, agregue el siguiente Sub.

    Sub DisplayTime()
      MsgBox(GetTime)
    End Sub
    

    Esta subrutina llama a la función GetTime y muestra el resultado que devolvió en un cuadro de mensaje.

  7. Finalmente, agregue una línea al controlador del evento Form1_Load que llama a la subrutina DisplayTime, tal y como se muestra en el siguiente ejemplo.

    DisplayTime()
    
  8. Presione F5 para ejecutar el programa.

    Cuando el programa se inicia, se ejecuta el procedimiento de evento Form1_Load. Este procedimiento llama a la subrutina DisplayTime, de manera que la ejecución del programa va al procedimiento de subrutina DisplayTime. Esa subrutina a su vez llama a la función GetTime, por lo que la ejecución del programa va a la función GetTime. Esta función devuelve una String que representa el tiempo para el procedimiento de subrutina DisplayTime, el que muestra esa cadena en un cuadro de mensaje. Después de que la subrutina termina de ejecutarse, el programa continúa normalmente y muestra el formulario.

Parámetros en funciones y subrutinas

A veces, será necesario suministrar información adicional a los procedimientos. Por ejemplo, en el procedimiento PlaySound, se desea reproducir uno de varios sonidos diferentes. La información acerca de qué sonido debe reproducirse puede suministrarse utilizando parámetros.

Los parámetros se parecen mucho a las variables. Tienen un tipo y un nombre y almacenan información al igual que las variables. Se pueden utilizar como variables en un procedimiento. Existen dos diferencias principales entre los parámetros y las variables:

  • Los parámetros se declaran en la declaración de procedimiento, no en líneas individuales de código.

  • Sólo se pueden utilizar los parámetros en el procedimiento en el que se declaran.

Los parámetros se declaran en la declaración de procedimiento, en los paréntesis que siguen al nombre del procedimiento. La palabra clave As se utiliza para declarar el tipo y la palabra clave ByVal precede generalmente a cada parámetro. Visual Basic agregará automáticamente esta palabra clave si no se agrega, ésta tiene una función bastante avanzada que va más allá de los temas tratados en esta lección.

A continuación, se muestra un ejemplo de una subrutina con parámetros.

Sub PlaySound(ByVal SoundFile As String, ByVal Volume As Integer)
  My.Computer.Audio.Play(SoundFile, Volume)
End Sub

Después, se llamará a la subrutina con los valores para los parámetros, tal y como se muestra a continuación.

PlaySound("Startup.wav", 1)

Los parámetros para las funciones también pueden declararse del mismo modo que haría con las subrutinas.

Inténtelo

Para crear una función con parámetros

  1. En el menú Archivo, haga clic en Nuevo proyecto.

  2. En el cuadro de diálogo Nuevo proyecto, en el panel Plantillas, haga clic en Aplicación para Windows.

  3. En el cuadro Nombre, escriba parameters y haga clic en Aceptar.

    Se abre un nuevo proyecto de formularios Windows Forms.

  4. En el Cuadro de herramientas, arrastre dos controles Textbox al formulario.

  5. En el Cuadro de herramientas, arrastre un control Button al formulario.

  6. Haga doble clic en Button para abrir el Editor de código.

  7. Inmediatamente después de la línea End Sub del controlador de eventos Button1_Click, agregue el siguiente procedimiento:

    Function AddTwoNumbers(ByVal N1 As Integer, ByVal N2 As Integer) _
      As Integer
      Return N1 + N2
    End Function
    
  8. En el procedimiento Button1_Click, agregue el código siguiente:

    Dim aNumber As Integer = CInt(Textbox1.Text)
    Dim bNumber As Integer = CInt(Textbox2.Text)
    MsgBox(AddTwoNumbers(aNumber, bNumber))
    

    Este código declara dos enteros y convierte el texto de los dos cuadros de texto en valores enteros. Luego pasa dichos valores a la función AddTwoNumbers y muestra el valor devuelto en un cuadro de mensaje.

  9. Presione F5 para ejecutar el programa.

  10. Escriba un valor numérico en cada cuadro de texto y haga clic en el botón. Se sumarán los dos números y el resultado se mostrará en un cuadro de mensaje.

Pasos siguientes

En esta lección, aprendió la diferencia entre funciones y subrutinas, y cómo crear cada uno de estos dos procedimientos. También aprendió a llamar a los procedimientos y a crear procedimientos con parámetros.

En la siguiente lección, aprenderá a utilizar la instrucción For...Next para repetir las acciones.

Siguiente lección: Hacer que un programa repita acciones: establecer bucles For...Next

Vea también

Tareas

Comparaciones: Utilizar expresiones para comparar valores

Conceptos

Procedimientos en Visual Basic