5-RESUMEN FUNCIONES DEL USUARIO

Anuncio
Resumen Subprogramas y Funciones del Usuario - 1-
SUBRUTINAS o Subprogramas Y FUNCIONES
Un subprograma o subrutina es una parte de codificación que realiza un proceso o
procedimiento al que se puede acceder desde varias partes del programa, con el fin de no
repetir codificación.
Los subprogramas normalmente serán de tipo público y se les llamará desde cualquier
procedimiento público o privado, pudiendo llevar variables o no.
Llamadas al subprograma Call borrar Call retraso(dato)
Subprograma…………………… Public Sub borrar ( )
………………
End Sub
Call errores (entrada,sino)
Public Sub retraso (mm)
………………
End Sub
Las funciones son similares a los subprogramas ya que también tendrán un nombre y se
podrán llevar o no variables.
llamada a la función ……… Val(num)
cambiosigno(n)
redondeo(num,3)
Función ……………………………… Public Function redondeo(xx,yy)
……………….
redondeo=……… (Siempre nombre función=…)
End Function
La diferencia entre subprogramas y funciones está en que las funciones al realizar un
proceso retornan un valor y el subprograma no.
PASO POR VALOR Y PASO POR REFERENCIA
Al pasar variables a los subprogramas o funciones, estas se podrán hacer por valor,
declarando las variables como ByVal o por referencia declarando las variables como
ByRef.
La diferencia consiste en que las variables ByVal envían una copia de la variable, por lo que
el subprograma o función no variará su contenido en el programa principal y las ByRef
envían un puntero a la variable, por lo que si modificará el contenido de la variable en el
programa principal.
Public Function redondeo (ByVal n as integer, ByVal m as integer ) as long
Public Function redondeo (n as integer, m as integer ) as long
Public Function redondeo (n, m)
Public Function calculo (ByVal xx, ByRef yy)
(Si no se especifica ByVal, el paso de variables será por referencia, ByRef)
Resumen Subprogramas y Funciones del Usuario - 2-
FUNCIONES DEL USUARIO
Las funciones se crean mediante Herramientas, agregar función
• Diseño de la función sin argumentos
Public Function Proceso ( )
……………….
Proceso=…..
End Function
Una vez diseñada la función proceso( ) se podrá utilizar como las funciones del sistema:
Private Sub Command1_Click()
………………………..
Picture1.print proceso ( )
……………………….
Text2= proceso/5
End Sub
• Diseño de la función con un argumento/s
Public Function fraccion (n )
tot=2
fraccion=......tot * n........
End Function
Public Function fraccion (x,y )
m=2 +x : n=tot-y
fraccion=........m - sqr(n)...
End Function
Una vez diseñada la función fraccion(x) se podrá utilizar como las funciones del sistema
Private Sub Command1_Click()
picture1.print fraccion(3)
……………………….
Tot=fraccion(deci) + dato
..........................
End Sub
Private Sub Command1_Click()
picture1.print fraccion(3,dat)
……………………….
Tot=fraccion(deci,vari) + dato
..........................
End Sub
Resumen Subprogramas y Funciones del Usuario - 3-
• Declaración de las variables
Las variables de Entrada a la Función estarán declaradas en el procedimiento o en
General Declaraciones.
Las variables utilizadas exclusivamente en la función, se declararán en la propia
Función.
Por ejemplo, Sumar números consecutivos entre dos valores dados
Private Sub Command1_Click()
Dim num1 As Integer, num2 As Integer
num1 = Val(InputBox("Teclear indice 1"))
num2 = Val(InputBox("Teclear indice 2"))
Picture1.Print suma(num1, num2)
End Sub
Public Function suma (ByVal li as integer, ByVal ls as integer ) as long
Dim ind as integer
For ind=li to ls
Suma=suma+ind
Next ind
End Function
• Otras formas
Public Function redondeo (ByVal n as integer, ByVal m as integer ) as long
Public Function redondeo (n as integer, m as integer ) as long
Public Function redondeo (n, m)
Public Function calculo (ByVal xx, ByRef yy)
(Si no se especifica ByVal, el paso de variables será por referencia, ByRef)
Resumen Subprogramas y Funciones del Usuario - 4-
• La utilización de tablas/matrices en las funciones
Por ejemplo: Sumar los datos de una tabla entre dos índices dados
Private Sub Command1_Click()
Dim tabla(10) As Integer
Dim num1 As Integer, num2 As Integer
Call cargadatos(tabla, 10) '……(Ver Subprogramas)
For i = 1 To 10
Picture1.Print tabla(i)
Next i
num1 = Val(InputBox("Teclear indice 1"))
num2 = Val(InputBox("Teclear indice 2"))
Picture2.Print suma(tabla, num1, num2)
End Sub
Public Function suma(ByRef ta() As Integer, ByVal x As Integer, ByVal y As
Integer) As Single
Dim indice As Integer
For indice = x To y
suma = suma + ta(indice)
Next indice
End Function
Public Sub cargadatos(ta, xx)
Dim i As Integer
Randomize
For i = 1 To xx
ta(i) = Fix(Rnd * 100)
Next i
End Sub
Resumen Subprogramas y Funciones del Usuario - 5-
SUBRUTINAS o Subprogramas
Los subrutinas o subprogramas se
crean
mediante
Herramientas,
agregar procedimiento
Al ser procedimientos PÚBLICOS se
podrán acceder (CALL) desde el resto
procedimientos del programa.
de
No devuelven un resultado como las
funciones, si se desea obtener un
resultado de salida, se deberá indicar
alguna variable de entrada como
variable ByRef o incluir una variable diferente a las utilizadas en el proceso, como ByRef
para obtener un resultado de salida.
• Diseño del subprograma sin argumentos
Public Sub subpro1 ( )
.................
………………
End Sub
Private Sub Command1_Click()
………………………..
CALL subpro1
End Sub
• Diseño del subprograma con uno o varios argumentos SOLAMENTE DE ENTRADA
Public Sub subpro2(n,m)
................n..................
.........................m........
End Sub
Private Sub Command1_Click()
………………………..
CALL subpro2(dato,5)
End Sub
Private Sub Command1_Click()
op = Val(InputBox("Teclear opción 1/2"))
If op = 1 Then
Call proteger
Else
Call desproteger
End If
End Sub
Public Sub proteger()
Public Sub desproteger()
End Sub
End Sub
Text1.Visible = False
Text2.Visible = False
Text1.Visible = True
Text2.Visible = True
Resumen Subprogramas y Funciones del Usuario - 6-
• Diseño del subprograma con uno o varios argumentos DE ENTRADA Y UNO DE
SALIDA
Por ejemplo control de una variable de entrada, con mensaje de error si todos sus
caracteres no son numéricos
Private Sub Command1_Click()
Dim dato As String, num As Integer, er As Boolean
dato = InputBox("Teclear dato numérico entero")
Call control(dato, er) ‘…………………..control(dato, longitud, er)
If er = True Then '………………........If er = "si" Then
MsgBox "Entrada errónea"
Else
MsgBox "Entrada correcta"
num = Val(dato)
Picture1.Print num, num ^ 2
End If
End Sub
Public Sub control(valor, error)
Dim i As Integer
error = False
'……………………..….....error="no"
For i = 1 To Len(valor)
c = Mid(valor, i, 1)
If c < "0" Or c > "9" Then
error = True
'………………....error="si"
End If
Next i
End Sub
Otra información, sobre funciones y subprogramas (subrutinas):
http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico4.htm#subrutinas
Descargar