Algiritmos
Algiritmos
Funciones.
Índice
6.1 Introducción. ............................................................................................................................. 3
Sub - algoritmo. .......................................................................................................................... 3
Función. ...................................................................................................................................... 3
Elementos de la declaración de una subrutina. ........................................................................... 3
6.2 Funciones estándar. ................................................................................................................... 5
• Funciones para el tratamiento de cadenas ............................................................................ 6
Función Lcase y Ucase ........................................................................................................... 6
Función Trim, LTrim y RTrim ................................................................................................ 7
Función Len ............................................................................................................................ 7
Función Asc y Chr .................................................................................................................. 8
Función InsTr .......................................................................................................................... 9
Función Left, Right y Mid .................................................................................................... 10
Función Str y Val ...................................................................................................................11
Funciones para el tratamiento de números............................................................................ 12
Funciones de formato ............................................................................................................ 12
6.3 Entrada y salida de datos......................................................................................................... 16
MsgBox ..................................................................................................................................... 17
Salida de datos .......................................................................................................................... 17
6.4 Funciones definidas por el usuario. ........................................................................................ 19
Ventajas de las funciones definidas por el usuario.................................................................... 19
Componentes de una función definida por el usuario. .............................................................. 19
6.5 Pase por valor. ......................................................................................................................... 21
6.6 Pase por referencia. ................................................................................................................. 23
Unidad 6. Funciones
6.1 Introducción.
Sub - algoritmo.
Se le llama así a cada una de las partes de un algoritmo más general que resuelve cada una
de las tareas particulares necesarias para que dicho algoritmo general alcance el objetivo para el
que fue diseñado, es decir resolver un problema.
Las variables locales: se declaran dentro de un módulo o Sub - algoritmo y sólo tienen
utilidad dentro de ese módulo, no se podrá acceder a ellas desde otros módulos. Pueden existir
variables locales con el mismo nombre siempre que estén en módulos diferentes.
Las variables globales: son declaradas de forma que puedan ser utilizadas (consultada y/o
modificada) desde cualquiera de los módulos que forman el programa. En este caso, no puede
haber dos variables globales con el mismo nombre, ya que esto produciría una ambigüedad que el
compilador no podría resolver.
Función.
También conocido como una subrutina o subprograma, como idea general, se presenta
como un Sub - algoritmo que forma parte del algoritmo principal, el cual permite resolver una
tarea específica. Algunos lenguajes de programación, como Visual Basic .NET o Fortran, utilizan
el nombre función para referirse a subrutinas que devuelven un valor.
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.
Una función puede llamarse múltiples veces e incluso llamarse a sí misma (funciónrecurrente).
• Un tipo de dato de retorno: tipo de dato del valor que la subrutina devolverá al
terminar su ejecución.
• Las funciones en programación generalmente son las que realizan los cálculos para
retornar el valor correspondiente a una función matemática.
Donde se puede ver claramente donde inicia la función del programa y donde termina.
End Function
Seguramente notaste que declaramos la función llamada Total, y al final de los parámetros
dice As Long , esto es por que como dijimos las funciones retornan o devuelven un valor, o sea
que en este caso la función es de tipo Long, o mejor dicho devolverá un valor de tipo Long., y
luego ese valor devuelto lo podemos utilizar en otra parte del programa.
Las Funciones pueden retornar casi cualquier tipo de datos, como números, cadenas,
fechas, arreglos y vectores .
Para llamar a la función anterior podríamos hacerlo de la siguiente manera:
En este caso el control Label1 llamaría a la función Total , la función realizaría la suma de
los valores pasados como parámetros y por último el valor final de la suma se lo asignaría al control
label1.
Ejemplo:
Dim cadena As String
'Convertimos
cadena = LCase(cadena)
La función Ucase funciona de la misma manera que Lcase pero convierte el contenido de una
cadena a mayúsculas.
Por ejemplo
Si tenemos un control Label1 que contiene un texto que dice: "Porcentaje de sueldos",
escribiendo la siguiente línea:
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:
Pais = " Argentina "
País = Trim(Pais)
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:
Len (Aquí va la cadena que queremos averiguar su tamaño)
Como la función Len devuelve un número debemos asignar ese número devuelto en una
variable de tipo numérica.
Ejemplo:
Dim TamanoCadena As Long
TamanoCadena = Len(MiCadena)
Ejempos:
Si queremos obtener el código ASCII del caracter "a", que es el número 97 podríamos
hacer lo siguiente:
num = Asc("a")
En definitiva la función Asc lleva un solo parámetro de tipo String del cual queremos
obtener dicho número.
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.
Obviamente que en vez de pasarle a la función un parámetro String es decir la letra,
debemos pasarle un número ASCII y nos devolverá el carácter asociado.
Ejemplo:
Dim letra As String
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.
Si la función encuentra la cadena a buscar devuelve un número que representa la posición
donde encontró la cadena, si no la encuentra devuelve un 0.
Como esta función devuelve un número debemos almacenarla en una variable de tipo
numérica para utilizarla.
Ejemplo:
Dim posicion As Integer
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.
La función Left:
Tiene 2 parámetros: El primero es la cadena de la cual se extraerán caracteres, y el segundo
un número desde el cual comenzar a extraer caracteres desde la parte izquierda.
Ejemplo
Dim Cadena As String
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:
10
Ejemplo
cadena = "123456"
cadena = Val(cadena)
cadena2 = 123456
cadena2 = Str(cadena2)
11
Función Round.
La función Round se utiliza para redondear un número decimal, devolviendo un número entero.
Ejemplo:
Dim Mimumero As Long
Round posee un parámetro opcional por si queremos incluir los dígitos decimales.
Rnd y Randomize - Números aleatorios
Para generar números aleatorios, Visual Basic incluye 2 funciones: Rnd y Randomize.
La función Rnd devuelve un número aleatorio, y esta posee un solo parámetro.
Ejemplo:
Rnd (número)
Pero para poder generar dichos números aleatorios, debemos utilizar previamente la función
Randomize con la siguiente fórmula:
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:
• FormatCurrency: Esta función se utiliza para trabajar con números con formato en
dinero.
Ejemplo: si tenemos un número 3 y utilizamos la función nos devolvería "$3".
• FormatPercent: Esta función es utilizada para trabajar con porcentajes.
Ejemplo: si tendríamos un número 321, nos devolvería: "32,1%" .
12
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.
13
Código en el formulario:
Private Sub Form_Load()
End Sub
Private Sub Option1_Click()
14
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.
La función Format posee dos parámetros:
15
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.
Los parámetros principales de esta función son:
InputBox (Promt,Title, Default)
• El parámetro Prompt específica la leyenda que mostrará la caja de mensajes.
• El parámetro Title especifica el título que llevará el cuadro de diálogo.
• El parámetro Default es el texto que mostrará la caja de texto.
El aspecto más 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
Dim retorno As String
16
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.
Ejemplos de mensajes o cajas de texto con la función MsgBox que podemos mostrar:
Como se ve en los gráficos anteriores, con MsgBox podemos tener variedad a la hora de
mostrar un determinado mensaje, utilizando para ello las diferentes constantes que incorpora la
función.
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:
[Link] lista_de_expresiones
17
Donde objeto, que es opcional, especifica uno de los objetos mencionados anteriormente, y lista
de expresiones es un conjunto de expresiones numéricas y alfanuméricas separadas por comas,
espacios en blanco o puntos y comas. Si se utiliza como separador un espacio en blanco, Visual
Basic lo sustituye automaticamente por un punto y coma. Las constantes de caracteres (literales)
deben ponerse entre comillas. Cuando un objeto se omite, los datos se omiten sobre el objeto al
que pertenece el procedimiento que invica a Print.
Las siguientes sentencias muestran algunos ejemplos de la utilización del métodoPrint:
• Print a +5, a * b / 2, c$, "Fin"
• Print x; y +5; w
• Print n; m
• Print "LISTADO DE RESULTADOS"
Si se omite la lista de expresiones, se visualiza una línea en blanco. En cambio, si se incluye la
lista de expresiones, se visualizan los valores de las expresiones en el objeto correspondiente. Por
ejemplo:
• a = 1000: b = 2000: c = 500
• Print "El valor de a es"; a
• Print 'línea en blanco
• Print "El valor de "; b; "+"; c; "="; b + c
El resultado que se obtiene al ejecutar las sentencias anteriores es:
• El valor de a es 1000
• El valor de 2000 + 500 = 2500
La posición de cada elemento a visualizar está determinada por la puntuación utilizada para separar
los elementos en la lista de expresiones. Visual Basic divide la línea en zonas de 14 espacios cada
una, cuando se utiliza como separador una coma. En la lista de expresiones, una coma produce la
visualización de la expresión, inmediatamente después de la última visualizada.
Por ejemplo:
18
Puede crear la función una vez, almacenarla en la base de datos y llamarla desde
el programa tantas vecescomo desee. Las funciones definidas por el usuario se pueden
modificar, independientemente del código de origen del programa.
19
Todas las funciones definidas por el usuario tienen la misma estructura de dos partes: un
encabezado y un cuerpo. La función toma cero o más parámetros de entrada y devuelve un valor
escalar o una tabla.
El encabezado define:
• Nombre de función con nombre de propietario o esquema opcional
• Nombre del parámetro de entrada y tipo de datos
• Opciones aplicables al parámetro de entrada
• Tipo de datos de parámetro devueltos y nombre opcional
• Opciones aplicables al parámetro devuelto
20
Código de ejemplo:
1. Private Sub Command1_Click()
2. Dim Un_Valor As Long
3. Un_Valor = 100
4. 'Se envía la variable por Valor ( ByVal )
5. Call Sumar(Un_Valor)
6. 'Muestra el valor que es 100, ( no se modificó en la función Sumar )
7. MsgBox Un_Valor
8. End Sub
9. Sub Sumar(ByVal Valor As Long)
10. 'Modifica la variable
11. Valor = Valor + 100
12. End Sub
21
Código:
1. Private Sub cmdregre_Click()
2. Unload Me
3. End Sub
4. Sub sumar(ByVal Valor As Long)
5. Valor = Valor + 100
6. End Sub
7. Private Sub cmdByVal_Click()
8. Dim Un_Valor As Long
9. Un_Valor = 100
10. Call sumar(Un_Valor)
11. MsgBox Un_Valor
12. End Sub
22
Este ejemplo es igual que el anterior, pero en la Sub sumar, la variable Valor se declara con (ByRef
por Referencia )
Código:
1. Private Sub Command1_Click()
2. Dim Un_Valor As Long
3. Un_Valor = 100
4. 'Se envía la variable por Referencia ( ByRef ) con el valor 100
5. Call Sumar(Un_Valor)
6. 'Muestra el valor que ahora es 200, ( ya que se modificó en la Sub Sumar)
7. MsgBox Un_Valor
8. End Sub
9. Sub Sumar(ByRef Valor As Long)
10. 'Modifica la variable
11. Valor = Valor + 100
12. End Sub
23
Código:
1. Private Sub cmdregre_Click()
2. Unload Me
3. End Sub
4. Sub Sumar(ByRef Valor As Long)
5. Valor = Valor + 100
6. End Sub
7. Private Sub cmdByRef_Click()
8. Dim Un_Valor As Long
9. Un_Valor = 100
10. Call Sumar(Un_Valor)
11. MsgBox Un_Valor, vbInformation, "Modifica la variable"
24
Referencias bibliográficas
• [Link]
• [Link]
Programacion
• [Link]
[Link]
25