Vous êtes sur la page 1sur 9

Procedimientos

5 de may.

Procedimientos
Definicin de procedimientos, tipos de procedimientos. Tipos de parmetros.
Una de las fallas que se tenia al principio de la programacin estructurada era el hecho que los programas se hacan largos debido a la repeticin de instrucciones en procesos de lectura, escritura o clculos que se tenan que realizar empleando variables diferentes. Gracias a la necesidad de ahorrar tiempo de diseo y espacio de memoria surge la tcnica de modulacin de procesos o elaboracin de subprogramas, que ha fines de VB lo denominan Procedimientos. La tcnica de modulacin consiste en dividir un programa muy grande en una serie de mdulos muchos ms pequeos y manejables (subprogramas), orientados a realizar una actividad en particular en forma generalizada. A continuacin se mostrar la forma de modular un programa en VB.Net, y como se realizan los diferentes llamados a un procedimiento, adems la forma como se pasan los parmetros al momento de ser invocados. Prof. Hugo Hernndez 05/05/2010 Publicacin Pendiente

Procedimientos
5 de may.

Contenido
Subprogramas o procedimientos ........................................................................................................2 Tipos de procedimientos .................................................................................................................3 Definicin de Procedimientos Sub .......................................................................................................3 Definicin de Procedimientos Function ...............................................................................................4 Parmetros .........................................................................................................................................6 Parmetros Formales ..........................................................................................................................6 Parmetros Por valor (ByVal) ..........................................................................................................7 Parmetros Por Referencia (ByRef) .................................................................................................7 Parmetros actuales ...........................................................................................................................7 Bibliografa .........................................................................................................................................8

Procedimientos
5 de may.

Subprogramas o procedimientos
Un subprograma o procedimiento como se conoce en VB.Net, es una secuencia de instrucciones orientadas a realizar una tarea especfica que se quiere generalizar (Modular) para su uso posterior al ser invocado por otro procedimiento sin la necesidad de tener que repetir las mismas lneas de instruccin. La generalizacin de una tarea nos da la ventaja de realizar aplicaciones ms pequeas en tamao y legibles, ya que no se necesita escribir varias veces las mismas instrucciones, sino solo nombrar la actividad que se quiere ejecutar, haciendo que sea fcil de interpretar las tareas que realiza la aplicacin y dndonos como consecuencia un ahorro de memoria y tiempo de desarrollo del mismo. Adems, en el momento que se necesite modificar una aplicacin que funciona correctamente, dicha modificacin dara una menor probabilidad de agregar errores fatales al cdigo, permitiendo que sea ms fcil le deteccin de fallas. Ej. While EOF(1) LeerPunto(P1) LeerPunto(P2) LeerPunto(P3) D12 = Distancia(P1, P2) D13 = Distancia(P1, P3) D23 = Distancia(P2, P3) ImprimirTipoTriangulo(D12, D13, D23) End While Como se muestra en el ejemplo, claramente se entiende que la aplicacin realiza la lectura de un conjunto de tres puntos de un archivo a los que se les determina la distancia entre los tres puntos y por ultimo imprime el tipo de triangulo que se formara entre esos. Hasta los momentos hemos estado trabajando en el modulo de consola (Module Module1) y el procedimiento de arranque (Sub Main) y en el procedimiento de Main, se ha estado colocando todas las instrucciones necesarias para realizar la aplicacin a disear, observndose en forma general que tenemos actividades que realizamos varias veces solo cambiando las variables que se necesitan aplicar, si hablamos para el caso del ejemplo anterior tendramos: el procesos de lectura de los tres puntos, el calculo de distancias entre tres puntos, adems de todo el procedimiento que se tendra que realizar para clasificar que tipo de triangulo se formara. Gracias al proceso de modulacin, estas actividades se realizan fcilmente con la invocacin de los procedimientos LeerPunto, Distancia e ImprimirTipoTriangulo. Observemos que los procedimientos LeerPunto e ImprimirTipoTriangulo, sus invocaciones se realizan como si fuese una sentencia en cambio el procedimiento distancia se aplic dentro de una expresin de asignacin.

Procedimientos
5 de may.

Tipos de procedimientos
En Visual Basic Net disponemos de los siguientes tipos de procedimientos: 1) Sub: son subprogramas que al ser invocados realizan una actividad sin devolver un valor al punto de llamado. Estos procedimientos se encuentran clasificados en: a) Procedimientos de eventos: son los que se ejecutan como respuesta a un evento y estn asociados a un objeto. Ej. Sub Button2_Click( Parametros ) Handles Botton2.Click b) Procedimientos Generales: son los procedimientos creados por el usuario, los cuales pueden ser usados invocndolos por su nombre. Ej. Sub LeerPunto( Parametros ) 2) Function: es un subprograma que sus instrucciones a realizar estn orientado a devolver un resultado de un tipo de dato en particular, el cual entrega utilizando su propio nombre y se clasifican en: a) Intrnsecos: Funciones que estn predeterminados o provistas por el lenguaje. Ej. Rdn(), Int(x), etc. b) Simblicas: Creado por el usuario cuando el lenguaje no provea una funcin especfica o especial. Ej. Function Distancia( Parametros ) As Single 3) Property: son subprogramas que realizan labores de acceso que permitan devolver y asignar valores, as como establecer referencias a objetos. Para fines del curso solo trabajaremos en la construccin de procedimientos tipo Sub y/o Function, ya que los procedimientos tipo Property tiene sentido cuando se este realizando una Programacin Orientado a Objetos, forma de programacin que se explica en la asignatura Computacin Avanzada.

Definicin de Procedimientos Sub


La definicin de un procedimiento, sin importar cual sea, se realiza entre la zona de Module Module1 y Sub Main(), de igual forma que para el caso de la definicin de las estructuras.

Module Module1 Zona empleada para definir Estructuras y procedimientos

Para el caso del procedimiento Sub, su definicin se realiza con la palabra reservada Sub, Sub Main() luego el identificador que se le quiere dar al subprograma y entre parntesis la lista de parmetros Instrucciones a realizar que se requieren pasar para que el subprograma End Sub realice las actividades a generalizar. El procedimiento finaliza con las palabras reservadas End Sub. Entre la End Module cabecera del procedimiento y su finalizacin se colocan todas las instrucciones que debe ejecutar el subprograma para lograr realizar la actividad a generalizar.

Procedimientos
5 de may.

Sub Nombre_procedimiento ( Lista de parmetros ) Instrucciones a realizar End Sub

En el ejemplo que se presenta a continuacin se muestra la definicin de un procedimiento que lee del archivo (1) la informacin de dos coordenadas de un punto y la guarda en una variable tipo Punto.

Sub LeerPunto ( ByRef P As Punto ) With P Input(1, .X) Input(1, .Y)

End With Cabe destacar que en el lenguaje de programacin Visual Basic Net, no se permite la End Sub construccin de subprogramas anidados, es decir procedimientos definidos dentro de otros procedimientos, sino se podra es crear subrutinas internas. Para fines del curso no se realizaran dichas subrutinas entre otras cosas ya que esto rompera con el concepto de ser un lenguaje estructurado, adems que es una actividad poco recomendada. Al definir un subprograma Sub, se hizo una generalizacin de un proceso que realiza una actividad en particular, al momento de querer emplear ste, su invocacin o llamado se realiza utilizando su propio nombre y entre parntesis las variables o datos que se quiere que utilice al momento de realizar las instrucciones que posee, a este proceso se le llama el paso de parmetros al procedimiento, situacin que estaremos discutiendo ms adelante. Ej. Empleo del procedimiento de lectura de un punto Cabe destacar que la variable P1 se tuvo que haber declarado como del tipo Punto LeerPunto( P1 )

Definicin de Procedimientos Function


La definicin de un procedimiento tipo Funcin (Function), se realiza con la palabra reservada Function, luego el identificador que se le quiere dar al subprograma, entre parntesis la lista de parmetros que se requieren pasar para que el subprograma realice el clculo a generalizar y finalmente el tipo de resultado que va a devolver. El tipo de dato a devolver puede ser un dato primitivo o una estructura. El procedimiento finaliza con las palabras reservadas End Function. Al

Procedimientos
5 de may.

igual que para el caso del procedimiento Sub, entre la cabecera del subprograma y la finalizacin se realizaran todas las actividades necesarias para realizar el calculo a generalizar, pero a diferencia de el procedimiento Sub entre las instrucciones a realizar debe haber aunque sea una donde se le asigne al nombre del procedimiento el valor a devolver.

Function Nombre_procedimiento ( Lista de parmetros ) As Tipo_de_salida Instrucciones a realizar Nombre_procedimiento = Resultado_a_devolver End Function

En el ejemplo que se presenta a continuacin se muestra la definicin de una funcin capaz de determinar la distancia entre las coordenadas de dos puntos, la informacin de dos coordenadas de los dos punto ser entregada con la utilizacin de dos variables tipo Punto.

Function Distancia ( ByVal P1 As Punto, _ ByVal P2 As Punto ) As Single With P1 Distancia = Math.sqrt( (P2.X - .X)^2+(P2.Y - .Y)^2 ) End With End Sub

Cuando se quiere invocar o llamar una funcin en un procedimiento, estos llamados se realizan dentro de una expresin, capaz de soportar el tipo de dato que la funcin devuelve, y se realiza empleando el nombre del procedimiento y entre parntesis las Variable o datos que se quieren utilizar en el clculo. Empleo de la funcin distancia, cabe destacar que para que esta invocacin sea correcta las variables P1 y P2 deben ser del tipo Punto y la variable Dist del tipo Single. Dist = Distancia ( P1, P2 ) Tabla comparativa entre Procedimientos Sub y Function Aspecto Proceso que generaliza Procedimiento Sub Una actividad que de querer regresa un valor o ms de uno, lo devuelve empleando parmetros del tipo por referencia. En forma de Sentencia. Function Una actividad de clculo de un valor, el cual devuelve con su nombre. En forma de variable a emplear en una expresin.

Forma del llamado

Procedimientos
5 de may.

Cabe destacar, que toda funcin puede ser diseada como un procedimiento Sub, pero no todo Sub puede ser pasado a procedimiento Function. Ej. La funcin distancia vista anteriormente se puede disear como un procedimiento Sub el cual tendra la siguiente definicin: Diseo del procedimiento Sub que calcula la distancia entre dos puntos Sub Distancia( ByVal P1 As Punto, ByVal P2 As Punto, ByRef Distancia12 As Single) With P1 Distancia12 = Math.sqrt( (P2.X - .X)^2+(P2.Y - .Y)^2 ) End With End Sub Al se llamado en este caso por ser del tipo Sub sera: Distancia( P1, P2, Dist )

Parmetros
Es la forma como se pueden generalizar procesos al momento de definir subprogramas, los cuales se comportan como variables propias del procedimiento as como tambin, ser el medio de comunicacin entre el procedimiento y el modulo que lo invoque, haciendo posible pasar valores a los subprogramas al momento de tener que utilizarlos en una aplicacin. En VB.Net, los parmetros se clasifican en dos tipos: a) Parmetros Formales: Son las variables que emplea el procedimiento para generalizar un proceso y se definen al momento de disear el procedimiento. Los parmetros formales puedes ser: Por Valor (ByVal), Por Referencia (ByRef) o del tipo Opcional (Optional). Para fines del curso solo estaremos trabajando con parmetros del tipo por valor y por referencia. b) Parmetros Actuales: Son las variables, Constantes o Expresiones que se emplean al momento de invocar el procedimiento, para as el procedimientos saber con que valores va ha trabajar.

Parmetros Formales
Como se dijo anteriormente, los parmetros son las variables que va emplear el procedimiento para generalizar un proceso, estas variables van a ser definidas en la cabecera del procedimiento dentro de los parntesis despus del nombre que posee el subprograma. Esta definicin se diferenciar de la manera en que estamos acostumbrados a declarar una variable en el hecho que no se emplear la palabra reservada Dim, sino segn vaya a ser el parmetros se utilizara la palabra ByVal o ByRef. Estas variables definidas en la cabecera del subprograma, as tengan el mismo identificador de una variable empleada en otro procedimiento( Main ej. ), ser una variable diferente y le pertenece al mbito del subprograma a definir.

Procedimientos
5 de may.

Parmetros Por valor (ByVal)


Al definir un parmetro del tipo formal por valor, se debe emplear la palabra reservada ByVal, esta declaracin del parmetro significa que el procedimiento lo que quiere de la variable es solo su valor (Variable de entrada), el cual ser usado dentro del procedimiento y si este es cambiado, dicho cambio no saldr del procedimiento al modulo que lo invoco. Bsicamente, cuando un procedimiento tiene parmetros por valor, al momento de ser invocados los datos son pasados al subprograma en forma de copia, es decir la maquina genera una nueva variable que toma una copia del valor pasado.

Parmetros Por Referencia (ByRef)


Para el caso de definir un parmetro por referencia, se debe emplear la palabra reservada ByRef, esta declaracin significa que el procedimiento no solamente necesita el valor inicial que posee la variable, sino que de ser modificado el parmetro, su valor resultante saldr al modulo que lo invoc o llam (Variable de Entrada - Salida). Cuando se estn definiendo los parmetros formales que va a emplear en un procedimiento, se declarar por valor o por referencia segn la respuesta a la siguiente interrogante, El procedimiento necesita solo el valor inicial que posee la variable o que se cambie su valor? Si la respuesta es solo necesita su valor, se definir como un parmetro por valor, caso contrario ser del tipo por referencia.

Parmetros actuales
Son los parmetros que se escriben al momento de realizar la llamada a un procedimiento, donde esta lista de variables, constantes o expresin sern los valores que van a ser pasados a los parmetros formales del procedimiento. Esta lista de parmetros a emplear en el llamado del procedimiento, deben coincidir en cantidad y en el tipo que poseen estos con respecto a las definiciones formales realizadas al momento de definir el procedimiento. Para el caso particular de que el parmetro formal haya sido por valor, el parmetro actual puede ser una variable, constante o expresin que tenga por respuesta el mismo tipo de dato. Pero para el caso de haber sido definida como un parmetro por referencia, el parmetro actual ser siempre una variable declarada del mismo tipo que el parmetro formal.

Procedimientos
5 de may.

Bibliografa
Material Instruccional del Curso Computacin II, Subprogramas en Pascal, Fernndez Manuel 2000, Universidad de Carabobo- Venezuela. Garca Javier y otros, Aprenda Visual Basic 6.0 como si estuviera en primero, Universidad de Navarra, San Sebastin Espaa, 1999 Alcala Nelson, Introduccin a Visual Basic 6.0, Instituto politcnico Santiago Mario, Valencia Venezuela, 2002

Ayuda en Lnea Visual Basic 2008 Express (http://msdn.microsoft.com/esve/vbasic/default.aspx)

Vous aimerez peut-être aussi