You are on page 1of 6

6.1 introduccin.

Subalgoritmo.
Se le llama as a cada una de las partes de un algoritmo ms general que resuelve cada una de las
tareas particulares necesarias para que dicho algoritmo general alcance el objetivo para el que fue
diseado, es decir resolver un problema.

Las variables locales: se declaran dentro de un mdulo o Subalgoritmo y slo tienen utilidad dentro
de ese mdulo, no se podr acceder a ellas desde otros mdulos. Pueden existir variables locales
con el mismo nombre siempre que estn en mdulos diferentes.

Las variables globales: son declaradas de forma que puedan ser utilizadas (consultada y/o
modificada) desde cualquiera de los mdulos que forman el programa. En este caso, no puede
haber dos variables globales con el mismo nombre, ya que esto producira una ambigedad que el
compilador no podra resolver.

Funcin.
Tambin conocido como una subrutina o subprograma, como idea general, se presenta como un
Subalgoritmo que forma parte del algoritmo principal, el cual permite resolver una tarea especfica.
Algunos lenguajes de programacin, como Visual Basic .NET o Fortran, utilizan el nombre funcin
para referirse a subrutinas que devuelven un valor.
Una subrutina al ser llamada dentro de un programa hace que el cdigo principal se detenga y se
dirija a ejecutar el cdigo de la subrutina, en cambio cuando se llama a una macro, el compilador
toma el cdigo de la macro y lo implanta donde fue llamado, aumentando as el cdigo fuente y por
consiguiente el objeto.
Elementos de la declaracin de una subrutina.
Las declaraciones de subrutinas generalmente son especificadas por:
Un nombre nico en el mbito: nombre de la funcin con el que se identifica y se distingue de
otras.

Un tipo de dato de retorno: tipo de dato del valor que la subrutina devolver al terminar su
ejecucin.
Una lista de parmetros: especificacin del conjunto de argumentos (pueden ser cero, uno o ms)
que la funcin debe recibir para realizar su tarea.
El cdigo u rdenes de procesamiento: conjunto de rdenes y sentencias que debe ejecutar la
subrutina.
Por ejemplo un seudocodigo puede ser
Private Sub cmdregre_Click() (programa principal)
Unload Me
End Sub
Sub Sumar(ByRef Valor As Long)
Valor = Valor + 100
End Sub
Private Sub cmdByRef_Click()
Dim Un_Valor As Long
Un_Valor = 100
Call Sumar(Un_Valor)
MsgBox Un_Valor, vbInformation, "Modifica la variable"
End Sub ( fin del programa)
Donde se puede ver claramente donde inicia la funcin del programa y donde termina

6.2 funciones estndar.


1-Cadenas de caracteres.
Len: Indica la cantidad de caracteres que tiene una determinada cadena.

Lcase y Ucase: Convierte cadenas de texto a minscula y mayscula.


2-Con nmeros.
Round: se utiliza para redondear un nmero decimal, devolviendo un nmero entero.
Dim Mimumero As Long
Minumero = Round (245.8) '(La funcin devuelve 246)
3-Fechas
FormatCurrency: Formato en dinero.
Ejemplo:
FormatCurrency(txt1) esto quiere decir que los datos numricos puestos en el text box 1se dar en
forma de dinero
FormatPercent: Porcentajes.
Ejemplo:
FormatPercent(txt2) los datos introducidos en text box 2 se dara en formato de porcentaje
4-Presentar mensajes en pantalla
Funcin InputBox: Presenta un mensaje al usuario, permitindole ingresar un valor en una caja de
texto.

6.3 Entrada y salida de datos.


Cuadro de Mensaje
Muestra un mensaje en un cuadro de dilogo, espera a que el usuario haga clic en un botn. Si se
emplea como funcin, devuelve un tipo Integer correspondiente al botn elegido por el usuario.
La sintaxis es:
MsgBox (mensaje [, botones] [, ttulo] [, archivo Ayuda, contexto])

Cuando MsgBox se emplea como funcin, devuelve un tipo Integer correspondiente al botn
elegido por el usuario.
Visual-Basic tiene una serie de constantes memo-tcnicas que permiten fcilmente recordar las
opciones posibles.
Funcin InputBox
El InputBox o cuadro de entrada es otro de los cuadros de dilogos utilizados para la interaccin
del usuario con la aplicacin. El InputBox permite mostrar un cuadro de dilogo donde el usuario
pasar un parmetro, valor o dato para que el programa lo trate y lo ejecute. El mensaje que quiere
que aparezca se realiza de forma casi idntica al MsgBox.
La sintaxis es:
InputBox (mensaje [,ttulo][, estndar] [, posx][,posy][, archivo Ayuda , contexto])
Salida de datos
Segn hemos visto, el mtodo Print visualiza datos en un formulario (objeto Form). As mismo,
permite visualizar datos en la ventana inmediato (a travs del objeto Debug), en una caja de
imagen (Control PictureBox) o en una impresora (utilizando el objeto Printer).
Su sintaxis es:
objeto.Printlista_de_expresiones
Donde objeto, que es opcional, especifica uno de los objetos mencionados anteriormente, y lista de
expresiones es un conjunto de expresiones numricas y alfanumricas separadas por comas,
espacios en blanco o puntos y comas. 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.

6.4 funciones definidas por el usuario.


Son funciones que el usuario crea para cubrir necesidades que estn fuera del alcance de las
funciones estndar. Cada funcin tiene una misin muy concreta, de modo que nunca tiene un
nmero de lneas excesivo y siempre se mantiene dentro de un tamao manejable. Es muy
frecuente que al hacer una modificacin para aadir una funcionalidad o corregir un error, se
introduzcan nuevos errores en partes del programa que antes funcionaban correctamente.

Adems, una misma puede ser llamada muchas veces en un mismo programa, e incluso puede ser
reutilizada por otros programas. Una funcin es capaz de mantener una gran independencia con el
resto del programa.
Las funciones siempre devuelven un valor al programa que las invoc.
Para llamar a un procedimiento se escribe su nombre en el cuerpo del programa, y si los necesita,
se incluyen los parmetros entre parntesis. Para invocar una funcin es necesario hacerlo en una
expresin.
Existen cuatro formas de pasar un argumento a una funcin (subrutina) o procedimiento: por
valor, por referencia, por valor-resultado y por nombre.

6.5 pase por valor.


Pasar por valor implica crear una nueva variable dentro de la funcin y pasarle una copia del valor
de la variable externa. Si se modifica el valor de la variable copia, la variable original queda
inalterada.
Los tipos de valor incluyen lo siguiente:
Todos los tipos de datos numricos
Boolean, Char y Date
Todas las estructuras, incluso si sus miembros son tipos de referencia
Las enumeraciones, ya que su tipo subyacente es siempre SByte, Short, Integer, Long, Byte,
UShort, UInteger o ULong

6.6 pase por referencia.


Pasar un argumento por referencia implica que en realidad se pasa a la funcin la variable original,
de modo que la funcin puede modificar su valor.
Los tipos de referencia incluyen lo siguiente:
String
Todas las matrices, incluso si sus elementos son tipos de valores
Los tipos de clase, como Form

Delegados

6.7 punteros
Un puntero es un tipo simple que siempre est asociado a otro tipo (punteros a enteros, a reales, a
registros, etc.)
Se pueden ver los punteros como variables que almacenan direcciones de memoria; de aqu se
deduce:
Un puntero es un medio para acceder al contenido real apuntado por la variable. La declaracin
de un puntero no implica que exista contenido apuntado por el misma. Es necesario crear y destruir
explcitamente el contenido apuntado por punteros. Se puede establecer una analoga entre los
punteros y las direcciones postales: Una direccin postal permite acceder al lugar fsico indicado.
El hecho de disponer de una direccin postal no garantiza que el lugar exista. Para declarar
variables de tipo puntero en la notacin algortmica se utiliza la sintaxis siguiente: variable puntero
a tipo
Por ejemplo,
puntero a real
Una vez se declara un puntero pueden llevarse a cabo dos acciones bsicas sobre el mismo:
Asignarle memoria para almacenar un dato del tipo al que apunta:
Crear
Eliminar la memoria que tiene asignada y con ella el dato apuntado:
Destruir
Crear (variable puntero)
Destruir (variable puntero)
Es posible asignar a un puntero el contenido de otro; para hacer Esto es necesario que la variable
a la que vamos a asignar un Valor no apunte a ningn dato pues en ese caso el dato original
Quedara inaccesible. As pues, slo deberamos asignar un puntero a otro si el Puntero asignado
no tiene memoria reservada