Académique Documents
Professionnel Documents
Culture Documents
Ingenieria industrial
ALGORITMOS Y LENGUAJES DE PROGRAMACIÓN 3IN4
Funciones
UNIDAD 6
,QWURGXFFLyQ«««««««««««««««««««««««««««..
6.1 .-)XQFLRQHV««««««««««««««««««..««««««««
6.7 3 XQWHURV«««««................................................................................ 22
Los sub algoritmos están diseñados para ejecutar alguna tarea específica. Estas
funciones y procedimientos se escriben solamente una vez, pero pueden ser
referenciados en diferentes puntos de un programa de modo que se puede evitar
la duplicación innecesaria del código.
1
Funciones
Una subrutina al ser llamada dentro de un programa hace que el código principal
se detenga y se dirija a ejecutar el código de la subrutina, en cambio cuando se
llama a una macro, el compilador toma el código de la macro y lo implanta donde
fue llamado, aumentando así el código fuente y por consiguiente el objeto.
Las funciones son casi exactamente iguales que los procedimientos con respecto
a la forma en que se los llama y se los crea o declara en el código, en cómo se le
pasa los parámetros etc...
End Function
Las Funciones pueden retornar casi cualquier tipo de datos, como números,
cadenas, fechas, arreglos y vectores
2
Label1.caption = Total 502, 1478
Ejemplo:
'Convertimos
cadena = LCase(cadena)
Por ejemplo, si tenemos un control Label1 que contiene un texto que dice:
"Porcentaje de sueldos", escribiendo la siguiente línea:
3
Label1 = Ucase (Label1)
Estas tres funciones se utilizan para eliminar los espacios vacíos de una cadena.
Ejemplos:
Tenemos una variable llamada ciudad con el valor " Barcelona". Para eliminar los
espacios vacíos de la izquierda haríamos lo siguiente:
ciudad = LTrim(ciudad)
MiText = RTrim(MiText)
La Función Trim elimina todos los espacios vacíos de ambos lados de la cadena.
Ejemplo:
4
Función Len
La función Len nos permite conocer la cantidad de caracteres que tiene una
determinada cadena. O sea que esta función nos devuelve un número.
Ejemplo:
Como la función Len devuelve un número debemos asignar ese número devuelto
en una variable de tipo numérica.
Ejemplo:
TamanoCadena = Len(MiCadena)
Hay que tener en cuenta que la función Len también toma en cuenta los espacios
vacíos.
Ejempos:
num = Asc("a")
En definitiva la función Asc lleva un solo parámetro de tipo String del cual
queremos obtener dicho número.
5
La Función Chr actúa a la inversa de la función Asc, esto quiere decir, que a partir
de un determinado número nos devolverá el caracter ASCII.
Ejemplo:
letra = Chr(97)
Función InsTr
La función InStr se utiliza para buscar una cadena o parte de una cadena dentro
de otra cadena.
Ejemplo:
En este ejemplo la función encontró la cadena "mate" en la posición 15, o sea que
la variable posición pasa a valer 15.
6
Este ejemplo, muestra como buscar dentro de un control TextBox, el cual tiene
dos opciones, un botón para buscar la primera frase, y otro que sigue buscando a
partir de donde esté ubicda la selección.
7
Colocar el siguiente código fuente en el formulario:
Option Explicit
Private m_Pos As Integer
Sub buscar_cadena(ByVal Posicion As Integer)
Dim p As Integer, Frase As String
Frase = txt_Buscar
p = InStr(Posicion, Text1, Frase)
If p > 0 Then
m_Pos = p
With Text1
.SelStart = m_Pos - 1
.SelLength = Len(Frase)
.SetFocus
End With
Else
MsgBox "No se encontró la frase", vbInformation
Text1.SetFocus
End If
End Sub
Private Sub Command1_Click()
'Busca a pratir de la primera pocición
Call buscar_cadena(1)
End Sub
Private Sub Command2_Click()
'Busca a partir del valor que tenga m_Pos
Call buscar_cadena(m_Pos + 1)
End Sub
Private Sub Form_Load()
Command1.Caption = "Buscar"
Command2.Caption = "Buscar siguiente"
Me.Caption = "Ejemplo de InStr "
End Sub
Nota: también hay una función similar a Instr llamada InstrRev , y lo que hace es
devolver la posición de la primera concurrencia de una cadena dentro de otra
cadena, pero comenzando por el extremo derecho de la misma.
8
Función Left, Right y Mid
La función Left:
Ejemplo:
Función Right:
Es igual que la función Left pero comienza a extraer caracteres desde el lado
derecho de la cadena.
La función Mid:
Tiene la misma función que las anteriores pero posee tres parámetros. Su sintaxis
es:
Ejemplos:
9
Este Otro ejemplo usa la función Mid para realizar un simple efecto tipo máquina
de escribir.
Option Explicit
End Sub
Private Sub MostrarTexto(Frase As String, _
Segundos As Double, _
Destino As Object)
LenFrase = Len(Frase)
DoEvents
i=i+1
' Obtiene el siguiente caracter
10
Caracter = Mid(Frase, i, 1)
' texto actual
texto = texto & Caracter
Destino.Print texto ' Imprimi e/ dibuja el texto
' pausa o delay
Pausa Segundos
DoEvents
Loop
End Sub
La función Val convierte una cadena en un número yla función Str un número en
una cadena.
Ejemplos:
cadena = "123456"
cadena = Val(cadena)
cadena2 = 123456
cadena2 = Str(cadena2)
11
Funciones para el tratamiento de números
Visual Basic posee muchas funciones para tratar números. A continuación las
principales funciones.
Función Round
Ejemplo:
Round posee un parámetro opcional por si queremos incluir los dígitos decimales.
Ejemplo :
Rnd (número)
Pero para poder generar dichos números aleatorios, debemos utilizar previamente
la función Randomize con la siguiente fórmula:
12
Funciones de formato
Visual Basic posee varias funciones para darle formato a distintos tipos de datos e
información. A continuación se ve algunos ejemplos de las principales funciones:
Ejemplo
13
Un ejemplo para ver estos formatos utilizando FormatDateTime: Colocar cinco
option Button, cada botón de opción mostrará los diferentes formatos en el caption
del formulario, es decir en la barra de título.
Código en el formulario:
End Sub
Private Sub Option1_Click()
Me.Caption = FormatDateTime(Now, vbGeneralDate)
14
End Sub
Función Format:
La función Format es mas completa que las anteriores funciones, porque puede
manejar mas tipos de datos, y no devuelve solo cadenas, esta también puede
devolver números y fechas.
15
Currency: Devuelve el número en formato moneda, con el símbolo
"$" y 2 decimales a las derecha.
Fixed: Devuelve como mínimo un dígito a la izquierda y 2 ala
derecha del decimal.
Standar: Similar a Fixed pero incluye un separador de miles.
Percent: Multiplica el número por cien y le agrega el símbolo "%"
True/False: Devuelve Verdadero para un valor distinto de 0,y
Falso para 0.
On/OFF: Devuelve "Activado" para un valor distinto de 0, y
"Desactivado" para 0.
Ejemplo:
Las cajas de dialogo son ventanas con controles que podemos visualizar en el
instante que necesitemos hacer una entrada o salida de datos. Visual Basic tiene
cajas de dialogo predefinidas que nos permiten realizar opciones de E/S con muy
poco esfuerzo. Por ejemplo, la función inputbox visualiza una caja de dialogo
presentando información o resultados.
Entra de datos
InputBox
16
Como se dijo la función InputBox presenta un cuadro de diálogo donde el usuario
puede ingresar un texto y luego aceptar o cancelar dicho cuadro de diálogo.
El aspecto mas importante de InputBox es que nos devuelve una cadena con lo
que haya ingresado el usuario en la caja de texto. Luego podemos realizar una
tarea específica dependiendo del valor devuelto.
Ejemplo:
17
MsgBox
La función MsgBox, que ya se vió varias veces en distintos ejemplos, es muy fácil
de usar y se utiliza para mostrar distintos tipos de mensajes.
18
Salida de datos
Según hemos visto, el método Print visualiza datos en un formulario (objeto Form).
Así mismo, permite visualizar datos en la ventana inmediato (a través del objeto
Debug), en una caja de imagen (Control PictureBox) o en una impresora
(utilizando el objeto Printer). Su sintaxis es
objeto.Print lista_de_expresiones
El valor de a es 1000
19
Print "1 2 3"
Print "123457890123456789012345678901234"
a=5
Print a; aˆ2; a * (-5)
Print a, aˆ2; a * (-5)
Print "FIN DEL PROCESO"
Son funciones que el usuario crea para cubrir necesidades que están fuera del
alcance de las funciones estándar. Cada función tiene una misión muy concreta,
de modo que nunca tiene un número de líneas excesivo y siempre se mantiene
dentro de un tamaño manejable. Es muy frecuente que al hacer una modificación
para añadir una funcionalidad o corregir un error, se introduzcan nuevos errores
en partes del programa que antes funcionaban correctamente.
Además, una misma puede ser llamada muchas veces en un mismo programa, e
incluso puede ser reutilizada por otros programas. Una función es capaz de
mantener una gran independencia con el resto del programa.
Si están declarados como ByVal, los mismos serán por valor, si se declaran como
ByRef serán por referencia.
Código de ejemplo
20
Private Sub Command1_Click()
Dim Un_Valor As Long
Un_Valor = 100
'Se envía la variable por Valor ( ByVal )
Call Sumar(Un_Valor)
'Muestra el valor que es 100, ( no se modificó en la función Sumar )
MsgBox Un_Valor
End Sub
Sub Sumar(ByVal Valor As Long)
'Modifica la variable
Valor = Valor + 100
End Sub
Este ejemplo es igual que el anterior, pero en la Sub sumar, la variable Valor se
declara con ByRef ( por Referencia )
Código
21
Punteros
Al declarar una variable estamos diciendo al ordenador que reserve una parte de
la memoria RAM para almacenarla. Cada vez que ejecutemos el programa la
variable se almacenará en un sitio diferente; eso no lo podemos controlar pues
depende de la memoria que esté disponible en el momento en que ejecutamos el
programa.
Tamaño de almacenamiento
Definición de puntero
22
Cuando un puntero tiene la dirección de una variable se dice que ese puntero
apunta a esa variable. La declaración de un puntero depende del tipo de dato al
que queramos apuntar. En general, la declaración es: tipo_de_dato
*nombre_del_puntero
Código:
Unload Me
End Sub
End Sub
23
Private Sub cmdByVal_Click()
Un_Valor = 100
Call sumar(Un_Valor)
MsgBox Un_Valor
End Sub
Código:
Unload Me
End Sub
24
End Sub
Un_Valor = 100
Call Sumar(Un_Valor)
End Sub
25
Conclusión
Las funciones son una herramienta que nos facilita el trabajo en cuanto a la
programación haciendo que muchas de las tareas sean más simples de realizar
reduciendo largas horas de trabajo que si lo hiciéramos a mano, el poder contar
con un programa ya diseñado ahorrara el trabajo que se puede presentar más
adelante si no se contara con esta herramienta, ya que cuando se cuenta con el
programa solo es cuestión de insertar ciertos datos y el programa se encargara
del resto.
Una vez que se ha aprendido a programar y se conoce cada una de las distintas
funciones el usuario será capaz de realizar sus propios programas para realizar
cualesquier programación con las diferentes funciones.
26