Make your own free website on Tripod.com
Volver a Ejercicios parte 12 Ir al Indice Ir a procedimientos y funciones II
Son un conjunto de sentencias agrupadas mediante un nombre. Su utilidad, es la de simplificar un programa, repartiéndolo en varios módulos evitando repetir código.
Debemos declarar adecuadamente un procedimiento, dándole un nombre e indicando los parámetros que tiene.
Podemos crear un procedimiento escribiendo directamente su nombre en la ventana de código o bien desde el menú Herramientas/Agregar procedimiento

PROCEDIMIENTOS CON PARAMETROS:
En ocaciones se hace necesario enviar algún tipo de información o dato al procedimiento para lo cual se debe definir, como se verá en el siguiente ejercicio. En este caso "N" es el valor del parametro. La forma de escribirlo es la siguiente:
Sub NombreProcedimiento(NombreParámetro as Tipo)

Option Explicit

Sub Aumentar(N As Integer)
Tb.Text = Val(Tb.Text) + N
End Sub
Sub Disminuir(N As Integer)
Tb.Text = Val(Tb.Text) - N
End Sub

Private Sub btnbajar_Click()
Disminuir 3
'bajará de 3 en tres
End Sub

Private Sub btnsubir_Click()
Aumentar 3
'aumentará de 3 en 3
End Sub

El botón subir y el botón bajar no contienen el código sino el nombre del procedimiento que se ha escrito aparte

Los parámetros pueden ser de dos tipos:

  • Por Valor (Aunque dentro del procedimiento se modifique la varialble al salir del procedimiento, la variable original no se modificará) un parámetro por valor va antecedido de ByVal.
  • Por Referencia (Todos los cambios efectuados dentro del procedimiento se mantendrán al salir del mismo.Se podría utilizar ByRef pero no es necesario ya que este es el valor por defecto.

En el siguiente ejercico hay una etiqueta (label3) cuyo caption es colocado desde el código y que sirve como frase original. Hay una caja de texto Txt donde el usuario podrá cambiar la frase original. También existen dos cajas de texto (Txt1 y Txt2) que son iguales. Mediante el botón CmdMostrar Txt1 y Txt2 deberían mostrar el texto que aparece en Txt. Sinembargo mientras Txt2 lo hace, Txt1 no. Esto se debe al manejo de la variable Texto que mientras en Txt1 actúa como parámetro por valor (no modifica el texto original), en Txt2 lo hace como parámetro por referencia.ya que al no haber indicación, por defecto VBasic así lo asume .

Private Sub CmdMostrar_Click()
Dim Frase As String
Frase = Label3.Caption
'Label3 será la Variable Frase
Valor Frase
Txt1.Text = Frase
'El contenido de la variable Frase
'será lo indicado en txt1.text
Referencia Frase
Txt2.Text = Frase
'Igual que en el caso anterior pero'mediante txt2.text
End Sub
Sub Valor(ByVal Texto As String) 'parámetro por valor
Texto = Txt.Text
End Sub
Sub Referencia(Texto As String) 'parámetro por referencia
Texto = Txt.Text
End Sub
Private Sub Form_Load()
Label3.Caption = "Paco paquito compró su galera"
'Texto original
End Sub
Vamos a volver a realizar un ejercicio anterior pero más completo con los nuevos conocimientos:
Se trata del dado visto con anterioridad, tiene un arreglo de un Shape(S) dentro de otro Shape simple cuadrado(Shape 2).Seis botones btn1~btn6 que servirán para indicar los Shapes que aparecerán a fin de dar la apariencia del dado. También habrá una caja de texto(Tb) que deberá mostrar el número de acuerdo al botón pulsado o bien, escribiendo en ella el número mostrar los Shapes(S) que correspondan, por último un botón mostrar para que el número puesto enla caja de texto pueda ser ejecutado.
Option Explicit
Sub Borrar()
Dim I As Object
For Each I In S
I.Visible = False
Next
End Sub
Private Sub btn5_Click()
Borrar
Mostrar (5)
Tb.Text = 5
End Sub
Sub Mostrar(X As Integer)
Dim J As Object
Select Case X
Case 1
S(3).Visible = True
Case 2
S(0).Visible = True
S(6).Visible = True
Case 3
S(0).Visible = True
S(3).Visible = True
S(6).Visible = True
Case 4
S(0).Visible = True
S(1).Visible = True
S(5).Visible = True
S(6).Visible = True
Case 5
S(0).Visible = True
S(1).Visible = True
S(5).Visible = True
S(6).Visible = True
S(3).Visible = True
Case 6
For Each J In S
J.Visible = True
Next
S(3).Visible = False
End Select
End Sub
Private Sub btnmostrar_Click()
Dim J As Object
Dim N As Integer
Borrar
N = CInt(Tb.Text)
Mostrar CInt(Tb.Text)
End Sub
Private Sub btn6_Click()
Borrar
Mostrar (6)
Tb.Text = 6
End Sub
Private Sub btn1_Click()
Borrar
Mostrar (1)
Tb.Text = 1
End Sub
Private Sub btn2_Click()
Borrar
Mostrar (2)
Tb.Text = 2
End Sub
Private Sub btn3_Click()
Borrar
Mostrar (3)
Tb.Text = 3
End Sub
Private Sub btn4_Click()
Borrar
Mostrar (4)
Tb.Text = 4
End Sub
Una Función recibe uno o más datos y retorna un dato como resultado de procesar los datos de entrada.
Function NombreFunción(Parámetros)as tipodedatos
-----------------
-----------------
End function
Function Suma(a as integer, b as integer)as Integer
Option Explicit
Function Suma(a As Integer, b As Integer) As Integer
Suma = a + b
End Function
Private Sub btnsumar_Click()
Tb.Text = Suma(2, 3)
End Sub
El resultado que devuelve la función se guarda en la variable que lleva el mismo nombre que esa función
En la próxima seguiremos con las funciones
Ir arriba
Volver a Ejercicios parte 12 Ir al Indice Ir a procedimientos y funciones II