Material Teorico 04
-
Upload
isaac-castellanos -
Category
Documents
-
view
230 -
download
0
Transcript of Material Teorico 04
-
7/24/2019 Material Teorico 04
1/49
Funciones. Subrutinas yprocedimientos
ndice
Descripcin 1
Leccin: Crear procedimientos 2
Leccin: Uso de procedimientos 17
Leccin: Uso de funciones predefinidas 33
-
7/24/2019 Material Teorico 04
2/49
-
7/24/2019 Material Teorico 04
3/49
Funciones. Subrutinas y procedimientos 1
Descripcin
Crear procedimientos
Uso de procedimientos
Uso de funcionespredefinidas
Debug
and Deploy
Escribir
Cdigo
Acceso
a datos
Uso de Visual
Studio .NET
Depurar e
Implantar
Crear
Interfaz
*************************************************************************************
Introduccin El desarrollo de una aplicacin, especialmente si se trata de un proyecto de grantamao, es ms fcil si se divide en piezas ms pequeas. El uso de
procedimientospuede ayudarnos a agrupar nuestro cdigo en secciones lgicasy condensar tareas repetidas o compartidas, como clculos utilizados
frecuentemente. En este mdulo, aprenderemos a crear y utilizarprocedimientos.
Objetivos En este mdulo, aprenderemos a:
Diferenciar entre un procedimiento Suby un procedimientoFunction.
Crear e invocar procedimientosSuby Function.
Escribir procedimientos en mdulos para permitir la reutilizacin del
cdigo.
Pasar argumentos por valor y por referencia.
Utilizar funciones predefinidas en el cdigo de nuestra aplicacin.
-
7/24/2019 Material Teorico 04
4/49
2 Funciones. Subrutinas y procedimientos
Leccin: Crear procedimientos
Qu son los procedimientos?
Cmo crear procedimientos Sub Cmo crear procedimientos Function
Cmo declarar argumentos en procedimientos
Cmo utilizar argumentos opcionales
Reutilizacin del cdigo
*************************************************************************************
Introduccin Esta leccin explica cmo crear procedimientosSub y Function, cmo declararargumentos en un procedimiento y cmo crear procedimientos en un mdulo.
Estructura de la leccin Esta leccin incluye los siguientes temas y actividades:
Qu son los procedimientos?
Cmo crear procedimientosSub
Cmo crear procedimientosFunction
Cmo declarar argumentos en procedimientos
Multimedia: pasar argumentos
Cmo utilizar argumentos opcionales
Multimedia: escribir cdigo reutilizable
Reutilizacin de cdigo
Prctica: crear una Funcin en un Mdulo
Objetivos de la leccin En esta leccin, aprender a:
Describir y crear unprocedimientoSub.
Describir y crear un procedimientoFunction.
Explicar la diferencia entre pasar argumentos por valor y pasar argumentospor referencia a un procedimiento.
Declarar argumentos, incluyendo los opcionales, en un procedimiento.
Crear procedimientos en un mdulo.
-
7/24/2019 Material Teorico 04
5/49
Funciones. Subrutinas y procedimientos 3
Qu son los procedimientos?
Los procedimientos son las sentencias de cdigoejecutable de un programa, encerrados por una
sentencia de declaracin y una sentencia End
Tres tipos:
Procedimientos Sub (incluyendo procedimientos Subde eventos )
Procedimientos Function
Procedimientos Property
Permitir la reutilizacin de cdigo
Declarados como public de forma predeterminada
*************************************************************************************
Definicin Los procedimientos son las sentencias de cdigo ejecutable de un programa.Las instrucciones de un procedimiento estn delimitadas por una instruccin de
declaracin y una instruccin End.
Es posible que encontremos los trminos mtodos, procedimientos y
funcionesde forma intercambiable en varias referencias. Este mdulo sigue laterminologa de la documentacin de MicrosoftVisual Studio.NET.
Nota
Tipos de procedimientos Existen tres tipos de procedimientos en Microsoft Visual Basic.NET:
procedimientosSub, procedimientosFunctiony procedimientosProperty.
Los procedimientos Sub realizan acciones pero no devuelven un valor al
procedimiento que origina la llamada. Los controladores de eventos sonprocedimientos Sub que se ejecutan en respuesta a un evento.
Los procedimientos Functionpueden devolver un valor al procedimientoque origina la llamada. La instruccin MessageBox.Showes un ejemplo de
funcin.
Los procedimientos Property devuelven y asignan valores de propiedades
de clases, estructuras o mdulos.
Si se desea ms informacin sobre la creacin y uso de procedimientosProperty, consultar el Mdulo 7.Nota
-
7/24/2019 Material Teorico 04
6/49
4 Funciones. Subrutinas y procedimientos
Uso de procedimientos Un procedimiento puede ser invocado, o llamado, desde otro procedimiento.Cuando un procedimiento llama a otro procedimiento, se transfiere el control alsegundo procedimiento. Cuando finaliza la ejecucin del cdigo del segundo
procedimiento, ste devuelve el control al procedimiento que lo invoc.
Debido a esta funcionalidad, los procedimientos resultan tiles para realizartareas repetidas o compartidas. En lugar de escribir el mismo cdigo ms de una
vez, podemos escribir un procedimiento e invocarlo desde varios puntos denuestra aplicacin o desde otras aplicaciones.
Accesibilidad delprocedimiento
Utilizamos un modificador de acceso para definir la accesibilidadde losprocedimientos que escribimos (es decir, el permiso para que otro cdigoinvoque al procedimiento). Si no especificamos un modificador de acceso, los
procedimientos son declaradospublicde forma predeterminada.
La siguiente tabla muestra las opciones de accesibilidad para declarar unprocedimiento dentro de un mdulo:
Modificador de
acceso
Descripcin
Public Ninguna restriccin de acceso
Friend Accesible desde el programa que contiene la declaracin y desde
cualquier otro lugar del mismo ensamblado
Private Accesible nicamente en el mdulo que contiene la declaracin
El modificador de acceso Protectednicamente puede utilizarse en
procedimientos declarados dentro de una clase. Si se desea ms informacinsobre la declaracin de procedimientos en una clase, consultar el Mdulo 7.
Nota
-
7/24/2019 Material Teorico 04
7/49
Funciones. Subrutinas y procedimientos 5
Cmo crear procedimientos Sub
!"#$%&' )*+ ,+-*&.'/01 2
3'44%5'6-78)9-:1;3?8@;A ;3
BCD )*+
E!""#$$%&%'%()F )*+ $*&+!,#E1!-.*,#+('%$(2F
G )*+ 0"-H'D#=#'C&- 4&%&'='C&4
BCD )*+
E!""#$$%&%'%()F )*+ $*&+!,#E1!-.*,#+('%$(2F
G )*+ 0"-H'D#=#'C&- 4&%&'='C&4
BCD )*+
Ejemplo:
Los procedimientos Sub realizan acciones pero nodevuelven un valor al procedimiento que realiza la llamada
*************************************************************************************
Definicin Un procedimiento Sub es una serie de instrucciones de Visual Basicdelimitadas por las instrucciones Suby End Sub. Los procedimientos Sub
realizan acciones pero no devuelven un valor al procedimiento que origina lallamada.
Sintaxis para crear unprocedimiento Sub
Utilicemos la siguiente sintaxis para crear un procedimientoSub:
E!""#$$%&%'%()F )*+ $*&+!,#E1!-.*,#+('%$(2F
G )&%&'='C&4 -I &9' )*+ 0"-H'D*"' 5- 9'"'
BCD )*+
Ejemplo deprocedimiento Sub
El siguiente cdigo crea un procedimiento Sub(Sub AboutHelp) que utiliza un
cuadro de mensaje para mostrar un nombre de producto y un nmero deversin:
!"#$%&' )*+ ,+-*&.'/01 2
3'44%5'6-78)9-:1;3?8@;A ;3
-
7/24/2019 Material Teorico 04
8/49
6 Funciones. Subrutinas y procedimientos
Cmo crear procedimientos Function
!*+/#H J*CH-C K-*+/'L9'>%/*'16%/ M ,4 K-*+/'2 ,4 NK-*+/'
8 8 8O'&*"C MPQ
8 8 8BCD J*CH-C
!*+/#H J*CH-C K-*+/'L9'>%/*'16%/ M ,4 K-*+/'2 ,4 NK-*+/'
8 8 8O'&*"C MPQ
8 8 8BCD J*CH-C
E!""#$$%&%'%()F J*CH-C +!,#E1!-.*,#+('%$(2F ,4 /!(!()0#
G J*CH-C 4&%&'='C&4A #CH/*D#C5 -0-C%/ O'&*"CG 4&%&'='C&
BCD J*CH-C
E!""#$$%&%'%()F J*CH-C +!,#E1!-.*,#+('%$(2F ,4 /!(!()0#
G J*CH-C 4&%&'='C&4A #CH/*D#C5 -0-C%/ O'&*"CG 4&%&'='C&
BCD J*CH-C
Ejemplo:
Los procedimientos Function realizan acciones y puedendevolver un valor al programa que realiza la llamada
*************************************************************************************
Definicin Un procedimiento Functiones una serie de instrucciones Visual Basicdelimitadas por las instrucciones Functiony End Function. Los
procedimientos Functionson similares a los procedimientosSub, pero lasfunciones pueden devolver un valor al programa que origina la llamada.
Sintaxis para crear aFunction procedimiento
Utilicemos la siguiente sintaxis para crear un procedimiento Function:
E!""#$$%&%'%()F J*CH-C 1*+"(%2++!,#E1!-.*,#+('%$(2F ,4 N
/!(!()0#
G )&%&'='C&4 -I &9' I*CH-C 5- 9'"'A #CH/*D#C5 -0-C%/
G O'&*"C 4&%&'='C&
BCD J*CH-C
Ejemplo de unprocedimiento Function
El siguiente cdigo crea una funcin denominada Squareque devuelve el
cuadrado de un nmero entero (integer):
J*CH-C )R*%"'1)R*%"'>%/*' ,4 SC&'5'"2 ,4 SC&'5'"
)R*%"' T )R*%"'>%/*' P )R*%"'>%/*'
BCD J*CH-C
Valores de retorno El valor que devuelve un procedimiento Functional programa que origina lallamada se denomina valor de retorno. La funcin devuelve el valor en una delas dos formas siguientes:
Asigna un valor al nombre de su propia funcin en una o ms instrucciones
dentro del procedimiento. El control no se devuelve al programa que origina
la llamada hasta que se ejecuta una instruccin Exit Functiono End
Function.
La instruccin Exit Functionprovoca la salida inmediata de unprocedimientoFunction. Cualquier nmero de instrucciones Exit Function
pueden aparecer en cualquier lugar del procedimiento.
Utiliza una instruccin Returnpara especificar el valor devuelto, y
devuelve el control inmediatamente al programa que origina la llamada.
-
7/24/2019 Material Teorico 04
9/49
Funciones. Subrutinas y procedimientos 7
La ventaja de asignar el valor devuelto al nombre de funcin es que el control
no se devuelve desde la funcin hasta que el programa encuentra unainstruccin Exit Functiono End Function. Esto permite asignar un valor
preliminar y ajustarlo ms tarde si es necesario.
Ejemplo de asignacindel valor de retorno
El siguiente ejemplo asigna el valor de retorno al nombre de funcinDoubleTheValuey utiliza la instruccin Exit Functionpara volver al
procedimiento de llamada:
J*CH-C K-*+/'L9'>%/*'16%/ U ,4 SC&'5'"2 ,4 K-*+/'
8 8 8
K-*+/'L9'>%/*' T UPQ
G V-C&"-/ "'=%#C4 :#&9#C &9' I*CH-C
8 8 8
B7#& J*CH-C
G V-C&"-/ "'&*"C4 &- &9' H%//#C5 I*CH-C
8 8 8
BCD J*CH-C
Si salimos de la funcin sin asignar un valor devuelto, la funcin devuelve el
valor predeterminado apropiado para el tipo de datos de la funcin. Porejemplo, devuelve 0 para Byte, Char, Decimal, Double, Integer, Long, Short
y Single.
Ejemplo de uso de lainstruccin Return
La instruccin Returnasigna simultneamente el valor devuelto y sale de la
funcin, como se muestra en el siguiente ejemplo:
J*CH-C K-*+/'L9'>%/*'16%/ U ,4 SC&'5'"2 ,4 K-*+/'
8 8 8
O'&*"C UPQ
G V-C&"-/ #4 #=='D#%&'/< "'&*"C'D &- &9' H%//#C5 I*CH-C
8 8 8
BCD J*CH-C
-
7/24/2019 Material Teorico 04
10/49
8 Funciones. Subrutinas y procedimientos
Cmo declarar argumentos en procedimientos
Los argumentos son datos pasados a procedimientos
Podemos pasar argumentos ByValo ByRef
ByVal: El procedimiento no puede modificar el valor de lavariable original
ByRef: El procedimiento puede modificar el valor de lavariable original
Excepcin: Los elementos no variables no se modificanen el cdigo que llama, aunque sean pasados porreferencia
ByVal es el valor predeterminado en Visual Basic .NET
Sintaxis y ejemplo:
1E6%/W6
-
7/24/2019 Material Teorico 04
11/49
Funciones. Subrutinas y procedimientos 9
Paso ByVal y ByRef Cuando definimos un procedimiento, definimos el modo en el que otrosprocedimientos pueden pasar argumentos al procedimiento. Podemos escogerpasarle argumentos por referencia (ByRef) o por valor (ByVal). En
Visual Basic .NET, el mecanismo predeterminado de paso de parmetros es porvalor. Si no especificamos ByValni ByRefen nuestras definiciones de
parmetros, ByValse aade automticamente a la definicin del parmetro.
Mecanismo de
paso Explicacin Implicaciones Ventaja
Por valor
Palabra clave:
ByVal
El procedimiento invocado
recibe una copia de los
datos cuando es invocado.
Si el procedimiento invocado
modifica la copia, el valor original
de la variable permanece intacto.
Cuando la ejecucin retorna al
procedimiento de llamada, la
variable contiene el mismo valor
que tena antes de que el valor se
pasara.
Protege la variable de
ser cambiada por el
procedimiento
invocado.
Por referencia
Palabra clave:
ByRef
El procedimiento invocado
recibe una referencia a los
datos originales (la
direccin de los datos en
memoria) cuando es
invocado.
El procedimiento invocado puede
modificar la variable directamente.
Cuando la ejecucin retorna al
procedimiento de llamada, la
variable contiene el valor
modificado.
El procedimiento
invocado puede utilizar
el argumento para
devolver un nuevo
valor al cdigo de
llamada.
Excepciones El elemento de programacin que subyace en un argumento puede ser unelemento variable, cuyo valor puede ser cambiado, o un elemento no variable.Los argumentos no variables nunca son modificados en el cdigo de llamada,
aunque se pasen por referencia. El procedimiento invocado podra modificar sucopia de ese argumento, pero la modificacin no afectara al elementosubyacente en el cdigo de llamada.
La siguiente tabla muestra elementos variables y no variables.
Elementos variables (pueden modificarse) Elementos no variables
Variables declaradas, incluyendo variables de
objetos
Constantes
Campos (de clases) Literales
Elementos de matrices Enumeraciones
Elementos de estructuras Expresiones
Declarar argumentos Utilizamos la misma sintaxis para declarar los argumentos para procedimientosSuby procedimientosFunction. Declaramos cada argumento de un
procedimiento del mismo modo en que declaramos una variable, especificando
el nombre del argumento y el tipo de datos. Tambin podemos especificar elmecanismo de paso y si el argumento es opcional.
La sintaxis para cada argumento en la lista de argumentos de un procedimientoes como sigue:
1E6%/W6
-
7/24/2019 Material Teorico 04
12/49
10 Funciones. Subrutinas y procedimientos
Si el argumento es opcional, debemos incluir tambin la palabra clave
Opcionaly proporcionar un valor predeterminado en la declaracin, comosigue:
Y0H#-C%/ E6%/W6
-
7/24/2019 Material Teorico 04
13/49
Funciones. Subrutinas y procedimientos 11
Cmo utilizar argumentos opcionales
Reglas para declarar argumentos opcionales:
Especificar un valor predeterminado
El valor predeterminado debe ser una expresin constante
Los argumentos que sigan a un argumento opcionaltambin deben ser opcionales
Sintaxis:
J*CH-C ,DD 16%/ $%/*'? ,4 SC&'5'"A 6%/ $%/*'Q ,4 NSC&'5'"A Y0-C%/ 6%/ $%/*'\ ,4 SC&'5'" T @2 ,4 SC&'5'"
J*CH-C ,DD 16%/ $%/*'? ,4 SC&'5'"A 6%/ $%/*'Q ,4 NSC&'5'"A Y0-C%/ 6%/ $%/*'\ ,4 SC&'5'" T @2 ,4 SC&'5'"
1Y0-C%/ E6%/W6
-
7/24/2019 Material Teorico 04
14/49
12 Funciones. Subrutinas y procedimientos
E emplo de argumentoopcional incorrecto
El siguiente ejemplo contiene un error; recordemos que los argumentos que
siguen a un argumento opcional tambin deben ser opcionales.
J*CH-C ,DD16%/ $%/*'? ,4 SC&'5'"A Y0-C%/ 6%/ N
$%/*'Q ,4 SC&'5'" T @A 6%/ $%/*'\ ,4 SC&'5'"2 ,4 SC&'5'"
G V%*4'4 %C '""-"
Procedimientos dellamada con argumentosopcionales
Cuando invocamos un procedimiento con un argumento opcional, podemosescoger entre proporcionar o no el argumento. Si no proporcionamos el
argumento, el procedimiento utiliza el valor predeterminado declarado para eseargumento.
Cuando omitimos uno o ms argumentos opcionales en la lista de argumentos,
utilizamos comas sucesivas para separar los espacios marcando sus posiciones.La siguiente invocacin proporciona los argumentos primero y cuarto, pero no
proporciona el segundo ni el tercero:
)*+V-*C&1%"5?A A A %"5]2
G ^'%$'4 -*& %"5Q %CD %"5\
-
7/24/2019 Material Teorico 04
15/49
Funciones. Subrutinas y procedimientos 13
Reutilizacin de cdigo
E!*+/#HWJ"#'CDF 3-D*/' 62/*'#7!,#
8 8 8
BCD 3-D*/'
E!*+/#HWJ"#'CDF 3-D*/' 62/*'#7!,#
8 8 8
BCD 3-D*/'
Crear un mdulo:
Use unUseUse unun ParaParaPara
EstructuraEstructura Objetos que no necesitan ser extendidosObjetos que no necesitan ser extendidos
EjemplosEjemplosEjemplos
SizePoint
Size
Point
MduloMdulo Funciones de utilidad y datos globalesFunciones de utilidad y datos globalesConversin de
temperatura
Conversin de
temperatura
ClaseClaseExtende objetos u objetos que necesitancleanup
Extende objetos u objetos que necesitancleanup
Formularios
Botones
Formularios
Botones
*************************************************************************************
Introduccin Uno de los procesos ms importantes en la creacin de una aplicacin basadaen Visual Basic es disear cdigo para su reutilizacin. El modo comoescribimos el cdigo afecta a su reutilizacin.
Escribir cdigo parareutilizar
Podemos escribir cdigo para ser reutilizado, incluyendo procedimientos, enestructuras, mdulos o clases. La siguiente tabla proporciona una descripcin de
las situaciones en las que deberamos escoger cada una de estas opciones:
Usar un(a) para Ejemplo
Estructura Crear objetos que no
necesitan ser extendidos y
que tienen un tamao de
instancia pequeo
Sizey Pointson estructuras
disponibles en la biblioteca de clases
del Microsoft .NET Framework
Mdulo Proporcionar funciones de
utilidad y datos globales
para su uso por mltiples
mdulos o clases
Funciones de utilidad como
conversin de temperatura, clculo de
rea, acceso a datos, etc., necesarias
para mltiples mdulos
Clase Extender objetos, o para
objetos que necesitan
liberar recursos
Clase Forms, clase Button, etc.
-
7/24/2019 Material Teorico 04
16/49
14 Funciones. Subrutinas y procedimientos
Escribir procedimientosen una estructura
El siguiente cdigo muestra cmo podemos escribir un procedimiento en una
estructura. Asumimos que las variablesx,yyz del ejemplo ya han sidodeclaradas.
)&"*H&*"' L%+/'K#='C4#-C4
!"#$%&' /'5.'#59&A &-0_#D&9A &-0K'0&9 ,4 SC&'5'"
!*+/#H )*+ X':16%/ /'5.'#59& ,4 SC&'5'"A N
6%/ &-0_#D&9 ,4 SC&'5'"A 6%/ &-0K'0&9 %4 SC&'5'"2
3'8/'5.'#59& T 7
3'8&-0_#D&9 T %/*'2 c @ L9'C888
BCD SI
SI J&-V1*4'">%/*'2c @ L9'C888
BCD SI
*************************************************************************************
Introduccin Unprocedimiento Functionse diferencia de un procedimiento Suben que elprimero puede devolver un valor al procedimiento de llamada.
Invocar una funcin Invocamos un procedimiento Functionincluyendo su nombre y sus argumentosen el lado derecho de una instruccin de asignacin o en una expresin. Pienseen la siguiente funcin, que convierte una temperatura en Fahrenheit a una
temperatura en Celsius.
J*CH-C J&-V16%/ &'=0'"%&*"' ,4 )#C5/'2 ,4 )#C5/'
G V-C$'"& J%9"'C9'#& &- V'/4#*4
J&-V T 1&'=0'"%&*"' d \Q8@2 P 1e f g2
BCD J*CH-C
Las siguientes llamadas de ejemplo muestran cmo podramos invocar esta
funcin:
K#= H'/4#*4L'=0'"%&*"' ,4 )#C5/'
H'/4#*4L'=0'"%&*"' T J&-V1b@2
G V%// &9' 0"-H'D*"' +< #CH/*D#C5 #&4 C%=' %CD %"5*='C&4 -C
G &9' "#59& 4#D' -I %C %44#5C='C& 4&%&'='C&8 SC &9#4 H%//A
G &9' $%/*' b@ #4 0%44'D &- &9' J&-V I*CH-CA %CD &9'
G $%/*' "'&*"C'D #4 %44#5C'D &- H'/4#*4L'=0'"%&*"'8
SI J&-V1*4'">%/*'2 c @ L9'C 8 8 8
G V%// &9' 0"-H'D*"' +< *4#C5 #& #C %C '70"'44#-C8 SC &9#4
G H%//A &9'
J&-V I*CH-C #4 *4'D %4 0%"& -I %C '70"'44#-C8
BCD SI
Flujo de cdigo Cada vez que se invoca la funcin se ejecutan sus instrucciones, empezando porla primera instruccin ejecutable tras la instruccin Function y finalizando conla primera instruccin End Function, Exit Functiono Return encontrada.
-
7/24/2019 Material Teorico 04
25/49
Funciones. Subrutinas y procedimientos 23
Prctica: utilizacin del valor devuelto de una funcin
Crear la interfaz de usuario
Escribir cdigo para la aplicacin
*************************************************************************************
En este ejercicio, crearemos una aplicacin sencilla que calcula el rea de unrectngulo, dada su altura (height) y anchura (width).
En primer lugar, crearemos el interfaz de usuario para la aplicacin. El usuarioescribir valores para la altura y la anchura en dos cuadros de texto de unformulario y har clic en un botn para calcular el rea del rectngulo en
funcin de las dimensiones introducidas. El resultado se mostrar como unaetiqueta en el formulario.
A continuacin, escribiremos el cdigo para la aplicacin. Invocaremos a lafuncin Areaque creamos en la primera prctica de este mdulo (Crear una
funcin en un mdulo), pasaremos argumentos a la funcin y devolveremos un
valor.
Crear el interfaz de usuario1. Abrir el proyecto CalculateArea que creamos en la prctica Crear una
funcin en un mdulo. Si no finalizamos esa prctica, abrir la solucinCalculateArea.sln desde FunctionReturnValue\Starter dentro del archivo
practs04.zip y familiaricmonos con el formulario y con el mdulo del
proyecto.
2. Abrir Form1 en la vista de Diseo.
-
7/24/2019 Material Teorico 04
26/49
24 Funciones. Subrutinas y procedimientos
3. Abrir el Cuadro de herramientas. Aadir a nuestro formulario cuatrocontroles Label, dos controles TextBoxy un control Button. Organizar los
controles para que nuestro formulario tenga un aspecto similar al de la
siguiente figura:
4. Establecer las propiedades para los controles como se muestra en lasiguiente tabla:
Control Propiedad Nuevo valor
Label1 Text Height
Label2 Text Width
Label3 Text Area
Label4 Text en blanco
TextBox1 Text en blanco
TextBox2 Text en blanco
Escribir cdigo para la aplicacin
1. Aadir un controlador de eventos para el evento Button1_Click. En elcontrolador de eventos:
a. Invocar la funcin Area.
b. Pasar las propiedades Textde TextBox1 y TextBox2 como argumentos.
c. Asignar el valor devuelto a la propiedad Textde Label4.
Nuestro cdigo debera ser similar al siguiente:
!"#$%&' )*+ 6*&&-C?NV/#Ha18882
^%+'/]8L'7& T ,"'%1L'7&6-7?8L'7&A L'7&6-7Q8L'7&2
BCD )*+
2. Ejecutar la aplicacin.
3. Escribir valores numricos en los cuadros de texto Heighty Width.
4. Hacer clic en Button1y verificar que aparece la respuesta esperada.
5. Cerrar la aplicacin.
Archivos de solucin Los archivos de solucin para esta prctica estn ubicados en la carpetaFunctionReturnValue\Solution dentro del archivo practs04.zip.
-
7/24/2019 Material Teorico 04
27/49
Funciones. Subrutinas y procedimientos 25
Cmo pasar matrices a procedimientos
Una matriz se pasa igual que otros argumentos:
Declarar una matriz parmetro:
Invocar un procedimiento con una matriz parmetro:
)*+ )&*D'C&)H-"'416%/ C%=' ,4 )&"#C5A 6%/ N!%"%=,""%< 4H-"'41 2 ,4 )&"#C52
G )&%&'='C&4 I-" )*+ 0"-H'D*"'
BCD )*+
)*+ )&*D'C&)H-"'416%/ C%=' ,4 )&"#C5A 6%/ N!%"%=,""%< 4H-"'41 2 ,4 )&"#C52
G )&%&'='C&4 I-" )*+ 0"-H'D*"'
BCD )*+
)*+ !%44,""%
-
7/24/2019 Material Teorico 04
28/49
26 Funciones. Subrutinas y procedimientos
Uso de ParamArray Normalmente, no podemos invocar un procedimiento con ms argumentos delos especificados en su declaracin. Cuando necesitamos un nmero indefinidode argumentos, podemos declarar una matriz de parmetros, que permite que un
procedimiento acepte una matriz de valores para un argumento. No es necesarioconocer el nmero de elementos de la matriz de parmetros cuando definimos
el procedimiento. El tamao de la matriz est determinado de forma individual
por cada invocacin al procedimiento.Utilizamos la palabra claveParamArraypara denotar una matriz de
parmetros. Esta palabra clave indica que el argumento de un procedimiento esuna matriz opcional de elementos de un tipo especificado. Se aplican las
siguientes reglas:
Un procedimiento slo puede tener una matriz de parmetros, y debe ser el
ltimo argumento de la definicin del procedimiento.
La matriz de parmetros debe pasarse por valor. Es una buena prctica deprogramacin incluir explcitamente la palabra clave ByValen la definicin
del procedimiento.
El cdigo dentro del procedimiento debe tratar la matriz de parmetros
como una matriz unidimensional, siendo cada elemento de la misma elmismo tipo de datos que el tipo de datos ParamArray.
La matriz de parmetros es automticamente opcional. Su valor
predeterminado es una matriz unidimensional vaca del tipo de elemento del
parmetro de la matriz.
Todos los argumentos que preceden a la matriz de parmetros deben ser
obligatorios. La matriz de parmetros debe ser el nico argumento opcional.
Invocar unprocedimiento con unargumento de matriz deparmetros
Cuando invocamos un procedimiento con un argumento de matriz deparmetros, podemos pasar alguna de las opciones siguientes para la matriz de
parmetros:
Nada. Es decir, podemos omitir el argumentoParamArray. En este caso, sepasa al procedimiento una matriz vaca. Tambin podemos pasar la palabra
clave Nothing, produciendo el mismo efecto.
Una lista de un nmero indefinido de argumentos, separados por comas. El
tipo de datos de cada argumento debe ser implcitamente convertible al tipo
de elemento ParamArray.
Una matriz con el mismo tipo de elemento que la matriz de parmetros.
Ejemplo de declaracinParamArray
El siguiente cdigo muestra cmo podemos definir un procedimiento con unamatriz de parmetros:
)*+ )&*D'C&)H-"'416%/ C%=' ,4 )&"#C5A 6%/ !%"%=,""%< N
4H-"'41 2 ,4 )&"#C52G )&%&'='C&4 I-" )*+ 0"-H'D*"'
BCD )*+
E emplos deinvocaciones a unprocedimiento con unamatriz de parmetros
Los siguientes ejemplos muestran invocaciones posibles a StudentScores.
-
7/24/2019 Material Teorico 04
29/49
Funciones. Subrutinas y procedimientos 27
)&*D'C&)H-"'41;,CC';A ;?@;A ;Qk;A ;\Q;A ;?e;A ;QQ;A ;?k;2
)&*D'C&)H-"'41;3%"
-
7/24/2019 Material Teorico 04
30/49
28 Funciones. Subrutinas y procedimientos
Cmo crear un Sub Main
Sub Main: Punto de inicio de la aplicacin
Application.Run: Inicia la aplicacin Application.Exit: Cierra la aplicacin
*************************************************************************************
Introduccin Para abrir y cerrar una aplicacin, la biblioteca de clases del .NET Frameworkproporciona la clase Application. La clase Applicationproporciona mtodos
(procedimientos) y propiedades para gestionar una aplicacin, incluyendomtodos para abrir y cerrar una aplicacin, mtodos para procesar mensajes de
Microsoft Windows, y propiedades para obtener informacin sobre unaaplicacin.
El procedimiento SubMain
Cuando creamos aplicaciones con la plantilla Aplicacin para Windows en
Visual Basic .NET, Visual Basic crea automticamente un procedimiento Suboculto denominado Sub Mainpara la clase Form. Este procedimiento se utiliza
como punto de inicio para nuestra aplicacin.
Crear un nuevo SubMain
En el procedimientoSub Main, Visual Basic .NET invoca el mtodoApplication.Runpara iniciar la aplicacin. Podemos cambiar este
comportamiento creando nuestro propio Sub Mainy convirtindolo en elobjeto de inicio. Podemos crear Sub Mainen un mdulo o en otra clase.
Despus de crear un Sub Main, necesitamos hacer de este nuevo procedimientoel objeto de inicio utilizando la ventana Propiedades.
Cambiar el objeto de inicio a Sub Main1. Si el Explorador de soluciones no est abierto, en el men Ver, hacer clic en
Explorador de soluciones.
2. En el Explorador de soluciones, hacer clic con el botn derecho en elnombre del proyecto y, a continuacin, en Propiedades.
3. En el panel izquierdo, debajo dePropiedades comunes, verificar que estseleccionado General.
4. En la lista Objeto inicial, hacer clic en Sub Mainpara convertir esteprocedimiento el nuevo objeto de inicio de nuestro proyecto.
-
7/24/2019 Material Teorico 04
31/49
Funciones. Subrutinas y procedimientos 29
Utilizacin deApplication.Exit
Para cerrar una aplicacin, invocamos el mtodo Application.Exitutilizando la
siguiente sintaxis:
,00/#H%-C8B7#&1 2
Por ejemplo, podemos insertar este cdigo en el controlador de eventos Clickde un botn. Cuando el usuario haga clic en el botn, la aplicacin se cerrar.
Los eventos Form.Closedy Form.Closingno se lanzan cuando se
invoca el mtodo Application.Exitpara cerrar la aplicacin. Si hay cdigo enestos eventos que deba ser ejecutado, invocar el mtodo Form.Closepara cadaformulario abierto individualmente antes de invocar el mtodo
Application.Exit.
Nota
-
7/24/2019 Material Teorico 04
32/49
30 Funciones. Subrutinas y procedimientos
Prctica: Crear un Sub Main
Declarar variables de nivel de mdulo
Crear un procedimiento Sub Main y
establecerlo como el objeto startup
Escribir cdigo para cerrar la aplicacin
Escribir cdigo para el formulario
Selection
Probar la aplicacin
*************************************************************************************
En esta prctica, generaremos cdigo para una aplicacin formada por tresformularios, y crearemos un SubMaincomo objeto de inicio para el proyecto.
Abrir el proyecto Abrir el proyecto MultipleForms.sln, ubicado en la carpeta
Forms\Starter dentro del archivo practs04.zip y familiaricmonos con los
formularios y los mdulos del proyecto.
Declarar variables Declarar las siguientes variables en el archivo de mdulo Starter.
Nombre de la variable Modificador de acceso Tipo de datos
carLoanForm Friend CarLoan
homeLoanForm Friend HomeLoan
selectionForm Private Selection
Nuestro cdigo debera ser similar al siguiente:
J"#'CD H%"^-%CJ-"= ,4 V%"^-%C
J"#'CD 9-='^-%CJ-"= ,4 .-='^-%C
!"#$%&' 4'/'H-CJ-"= ,4 )'/'H-C
-
7/24/2019 Material Teorico 04
33/49
Funciones. Subrutinas y procedimientos 31
Crear un procedimiento Sub Main1. Declarar un procedimiento SubMainpblico en el mdulo Starter. Nuestro
cdigo debera ser similar al siguiente:
!*+/#H )*+ 3%#C1 2
BCD )*+
2. Completar el cuerpo del procedimientoSub Main.
a. Crear una nueva instancia del formulario Selection y asignarlo aselectionForm.
b. Invocar el mtodo selectionForm.Showpara visualizar el formulario.
c. Iniciar la aplicacin invocando el mtodo Application.Run.
Nuestro cdigo debera ser similar al siguiente:
!*+/#H )*+ 3%#C1 2
4'/'H-CJ-"= T X': )'/'H-C1 2
4'/'H-CJ-"=8)9-:1 2
,00/#H%-C8O*C1 2
BCD )*+
3. Establecer Sub Maincomo objeto de inicio de la aplicacin.
Escribir cdigo para el formulario Selection
1. Abrir el Editor de cdigo para el formulario Selection.
2. Aadir un controlador de eventos Clickpara el botn Next.
3. Escribir cdigo para el controlador de eventos.
a. Si est seleccionado CarLoanRadioButton, crear una nueva instanciadel formulario CarLoan. Nuestro cdigo debera ser similar al siguiente:
SI V%"^-%CO%D#-6*&&-C8V9'Ha'D L9'CH%"^-%CJ-"= T X': V%"^-%C1 2
Estudiaremos con mayor profundidad las instrucciones IfThen msadelante.Nota
b. Utilizar el mtodo Showpara visualizar el formulario CarLoan.
c. Utilizar el mtodo Closepara cerrar el formulario Selection, como sigue:
H%"^-%CJ-"=8)9-:1 2
3'8V/-4'1 2
d. Si est seleccionado HomeLoanRadioButton, crear una nueva instanciadel formulario HomeLoan. Nuestro cdigo debera ser similar al
siguiente:
B/4'SI .-='^-%CO%D#-6*&&-C8V9'Ha'D L9'C
9-='^-%CJ-"= T X': .-='^-%C1 2
e. Utilizar el mtodo Showpara visualizar el formulario HomeLoan.
-
7/24/2019 Material Teorico 04
34/49
32 Funciones. Subrutinas y procedimientos
f. Utilizar el mtodo Closepara cerrar el formulario Selection, como sigue:
9-='^-%CJ-"=8)9-:1 2
3'8V/-4'1 2
g. Si no se selecciona ninguna opcin, utilizar un cuadro de mensaje paraindicar al usuario que realice una seleccin. Nuestro cdigo debera ser
similar al siguiente:
B/4'
3'44%5'6-78)9-:1;!/'%4' 4'/'H& % /-%C &
-
7/24/2019 Material Teorico 04
35/49
Funciones. Subrutinas y procedimientos 33
Leccin: uso de funciones predefinidas
Cmo utilizar la funcin InputBox
Cmo utilizar las funciones de fecha y hora Cmo utilizar las funciones String
Cmo utilizar las funciones Format
Cmo utilizar las funciones Financial
*************************************************************************************
Introduccin La biblioteca del entorno de ejecucin de Visual Basic proporciona numerosasfunciones predefinidas que podemos utilizar en nuestro cdigo. Estas funciones
se invocan del mismo modo en que invocamos a nuestras propias funciones.
En este mdulo, estudiaremos la funcin InputBox, las funciones de fecha yhora, las funciones de cadena, las funciones de formato y las funciones
financieras. En Miembros de la biblioteca del entorno de ejecucin deVisual Basic, en la documentacin de Visual Studio .NET, encontraremos una
lista completa de las funciones predefinidas.
Estructura de la leccin Esta leccin incluye los siguientes temas y actividades:
Cmo utilizar la funcin InputBox
Cmo utilizar las funciones Date y Time
Cmo utilizar las funciones String
Cmo utilizar las funciones Format
Cmo utilizar las funciones Financial
Prctica: Examen de funciones predefinidas
Objetivo de la leccin En esta leccin, aprenderemos a utilizar funciones predefinidas en el cdigo denuestra aplicacin, incluyendo la funcin InputBox, funciones de fecha y hora,
funciones de cadena, funciones de formato y funciones financieras.
-
7/24/2019 Material Teorico 04
36/49
34 Funciones. Subrutinas y procedimientos
Cmo utilizar la funcin InputBox
Muestra un mensaje en un cuadro de dilogo ydevuelve al usuario input en una cadena
K#= J#/'X%=' ,4 )&"#C5
J#/'X%=' T SC0*&6-71;!/'%4' 'C&'" I#/' C%=';A;)'%"H9;2
K#= J#/'X%=' ,4 )&"#C5
J#/'X%=' T SC0*&6-71;!/'%4' 'C&'" I#/' C%=';A;)'%"H9;2
*************************************************************************************
Introduccin La funcin InputBox es una funcin predefinida que proporciona una formasencilla de interactuar con los usuarios. La funcin InputBoxmuestra un
cuadro de dilogo con un mensaje, espera a que el usuario introduzca texto ohaga clic en un botn y devuelve una cadena con el contenido del cuadro de
texto.
Parmetros La siguiente declaracin de funcin muestra los parmetros de la funcinInputBox:
!*+/#H J*CH-C SC0*&6-716%/ !"-=0& ,4 )&"#C5A N
Y0-C%/ 6%/ L#&/' ,4 )&"#C5 T ;;A N
Y0-C%/ 6%/ K'I%*/&O'40-C4' ,4 )&"#C5 T ;;A N
Y0-C%/ 6%/ m!-4 ,4 SC&'5'" T d?A N
Y0-C%/ 6%/ n!-4 ,4 SC&'5'" T d? 2 ,4 )&"#C5
Como podemos ver, los argumentos Title, DefaultResponse, XPose YPosson
opcionales. La siguiente tabla explica los valores predeterminados que seaplicaran en caso de escoger no pasar uno de estos argumentos opcionales a lafuncinInputBox.
Parmetro Definicin Valor predeterminado
Title Texto que aparece en la barra de ttulo El nombre de la aplicacin
DefaultResp
onse
El valor que se muestra en el cuadro de
texto como valor predeterminado si el
usuario no proporciona una entrada
El cuadro de texto se
mostrar vaco
XPos Especifica la distancia entre el borde
izquierdo del cuadro de dilogo y el
extremo izquierdo de la pantalla
El cuadro de dilogo se
centrar horizontalmente
YPos Especifica la distancia entre el borde
superior del cuadro de dilogo y la
parte superior de la pantalla
El cuadro de dilogo se
posicionar verticalmente
aproximadamente a un
tercio del alto del total de la
pantalla
-
7/24/2019 Material Teorico 04
37/49
Funciones. Subrutinas y procedimientos 35
Ejemplo de utilizacinde la funcin InputBox
El siguiente cdigo crea un cuadro de entrada con el ttulo Search, que solicita
al usuario que introduzca un nombre de archivo y almacena la respuesta delusuario en una variable denominadaFileName.
K#= J#/'X%=' ,4 )&"#C5
J#/'X%=' T SC0*&6-71;!/'%4' 'C&'" I#/' C%=';A ;)'%"H9;2
Resultado La siguiente ilustracin de pantalla muestra el cuadro de entrada creada por elcdigo anterior.
Encontrar ms informacin sobre la funcin InputBox enFuncinInputBox, en la documentacin de Visual Studio .NET.Nota
-
7/24/2019 Material Teorico 04
38/49
36 Funciones. Subrutinas y procedimientos
Cmo utilizar las funciones de fecha y hora
Realizan clculos y operaciones que implican fechas yhoras
Ejemplos:
DateAdd: Aade o sustrae un intervalo de tiempoespecfico a una fecha
DateDiff: Determina cuntos intervalos de tiempoespecificados existen entre dos valores de fecha/hora
K%&',DD1K%&'SC&'"$%/8K%
-
7/24/2019 Material Teorico 04
39/49
Funciones. Subrutinas y procedimientos 37
I'H9%J%H&*"% T o?Qf\?fQ@@@o
K%&',DD1K%&'SC&'"$%/8K%
-
7/24/2019 Material Teorico 04
40/49
38 Funciones. Subrutinas y procedimientos
Cmo utilizar las funciones String
Extraen slo una parte determinada de una cadena
Devuelven informacin sobre una cadena
Muestran informacin de un formato determinado
Ejemplos:
Trim
Len
Left
^'C5&9 T ^'C1H*4&-='"X%='2^'C5&9 T ^'C1H*4&-='"X%='2
3#H"-4-I&8>#4*%/6%4#H8^'I&1H*4&-='"X%='A e23#H"-4-I&8>#4*%/6%4#H8^'I&1H*4&-='"X%='A e2
X':)&"#C5 T L"#=13
-
7/24/2019 Material Teorico 04
41/49
Funciones. Subrutinas y procedimientos 39
Ejemplo de utilizacinde Len
En el siguiente cdigo, la funcin Lendevuelve el nmero de caracteres de una
cadena:
K#= H*4&-='"X%=' ,4 4&"#C5
K#= /'C5&9 ,4 SC&'5'"
H*4&-='"X%=' T SC0*&6-71;_9%& #4
-
7/24/2019 Material Teorico 04
42/49
40 Funciones. Subrutinas y procedimientos
Cmo utilizar funciones Format
Formatean nmeros, fechas y horas segn estndaresaceptados
Muestran formatos regionales sin re-coding paranacionalidades o regiones
Ejemplos:
FormatCurrency
FormatDateTime
J-"=%&V*""'CH
-
7/24/2019 Material Teorico 04
43/49
Funciones. Subrutinas y procedimientos 41
(continuacin)
Parmetro Definicin
UseParensForNegativeNumbers
(Opcional)
Indica si los valores negativos han de mostrarse
entre parntesis o no.
La configuracin utiliza la enumeracin Tristate
para configurar el parmetro como true,falseouse default, por ejemplo, TriState.True,
TriState.Falseo TriState.UseDefault.
GroupDigits
(Opcional)
Indica si los nmeros se agrupan utilizando el
delimitador de grupos especificado en la
configuracin regional del equipo; por ejemplo,
utilizar una coma cada tres dgitos a la izquierda
de una coma decimal.
La configuracin utiliza la enumeracin Tristate
para configurar el parmetro como true,falseo
use default, por ejemplo, TriState.True,
TriState.Falseo TriState.UseDefault.
Ejemplo de utilizacinde la funcinFormatCurrency
El siguiente ejemplo utiliza la funcin FormatCurrencypara formatear una
cadena que representa importeDebido:
K#= #=0-"&'K'+#D- ,4 K-*+/' T ]]ek8]\
K#= =
-
7/24/2019 Material Teorico 04
44/49
42 Funciones. Subrutinas y procedimientos
La siguiente tabla muestra una posible configuracin del parmetro
NamedFormat:
Constante Descripcin
DateFormat.GeneralDate Muestra una fecha y/u hora. Si hay una fecha, la presenta
como fecha corta. Si hay una hora, la presenta en formato
largo. Si las dos partes estn presentes, se muestranambas.
DateFormat.LongDate Muestra una fecha en el formato largo especificado en la
configuracin regional del equipo.
DateFormat.ShortDate Muestra una fecha en el formato corto especificado en la
configuracin regional del equipo.
DateFormat.LongTime Muestra una hora en el formato de hora especificado en la
configuracin regional del equipo.
DateFormat.ShortTime Muestra una hora en el formato de 24 horas (hh:mm).
Ejemplo de utilizacinde la funcin
FormatDateTime
El siguiente ejemplo utiliza la funcin FormatDateTimepara formatear la
expresin 5/21/01.
K#= =
-
7/24/2019 Material Teorico 04
45/49
Funciones. Subrutinas y procedimientos 43
Cmo utilizar las funciones Financial
Realizan clculos y operaciones que implican finanzas;por ejemplo, tipos de inters
Ejemplos:
Pmt
Rate
0%
-
7/24/2019 Material Teorico 04
46/49
44 Funciones. Subrutinas y procedimientos
(continuacin)
Parmetro Definicin
FV
(Opcional)
Valor futuro, o saldo, que se desea tener una vez realizado el pago final,
expresado como Double.
El valor predeterminado, si no se expresa ningn otro, es 0.
Due
(Opcional)
Indica cundo vencen los pagos. Puede ser al final del periodo(especificado comos DueDate.EndOfPeriod) o al principio del periodo
(especificado como DueDate.BegOfPeriod).
El valor predeterminado, si no se expresa ningn otro, es
DueDate.EndOfPeriod.
Ejemplo de utilizacinde la funcin Pmt
El siguiente cdigo utiliza la funcin Pmtpara calcular el pago mensual de un
crdito de 24 meses de 5000 dlares al 10% TAE.
0%
-
7/24/2019 Material Teorico 04
47/49
Funciones. Subrutinas y procedimientos 45
Prctica: examen de las funciones predefinidas
Abrir el documento Miembros de la
biblioteca run-time de Visual Basic
Responder a cuestiones sobre funciones
especficas, como InStr, Mid, y Right
Examinar las funciones predefinidas,
mtodos y propiedades que pueden
utilizarse en el cdigo
*************************************************************************************
En esta prctica, utilizaremos la documentacin de Visual Studio para estudiarlas funciones predefinidas y cmo utilizarlas en nuestro cdigo.
AbrirReferencia del lenguaje
1. Hacer clic en Inicio, seleccionar Todos los programas, Microsoft VisualStudio .NET 2003y hacer clic en Documentacin de Microsoft Visual
Studio .NET.
2. En el men Ayuda, hacer clic en Buscar.
3. En la ventana de bsqueda, en el cuadro Buscar, escribir run-time librarymembers. Verificar que la bsqueda est filtrada por Visual Basic yrelacionados, seleccionar Buscar en ttulos sloy hacer clic en Buscar.
4. En la ventana de resultados de la bsqueda, hacer doble clic en Visual BasicRun-time Library Members.
5. Sin hacer clic en ninguno de los enlaces de la pgina, examine el contenidode esta biblioteca. Observe que esta pgina describe funciones, mtodos y
propiedades que podemos utilizar en nuestro cdigo.
-
7/24/2019 Material Teorico 04
48/49
46 Funciones. Subrutinas y procedimientos
Uso del contenido de la bibliotecaUtilice el documento Visual Basic Run-time Library Members y los
documentos vinculados para responder a las cuestiones de la lista siguiente.Para regresar al documento Visual Basic Run-time Library Members desde
otros documentos, puede utilizar el botn Atrs de la barra de herramientas.
1. Cmo est organizado el contenido del documento Visual Basic Run-timeLibrary Members?
El contenido est agrupado por categoras de funcionalidad.
____________________________________________________________
____________________________________________________________
2. Para qu se utiliza la funcin InStr?
La funcin InStr devuelve un entero que especifica la posicin inicial de
la primera aparicin de una cadena dentro de otra.
____________________________________________________________
____________________________________________________________
3. Qu valor devolver la funcin InStr si no puede localizar la segundacadena?
La funcin devolver 0.
____________________________________________________________
____________________________________________________________
4. Cules son los parmetros de la funcin Mid? Indique si los parmetros
son obligatorios u opcionales.La funcin Mid toma dos parmetros obligatorios, Str y Start, y un
parmetro opcional, Length.
____________________________________________________________
____________________________________________________________
5. Basndose en su respuesta a la pregunta anterior, qu valor cree queasignar el siguiente cdigo a las variablesmyAnswerysecondAnswer?
K#= =
-
7/24/2019 Material Teorico 04
49/49
Funciones. Subrutinas y procedimientos 47
6. En la lnea siguiente de este cdigo, aada cdigo que utilice la funcinRightpara devolver la cadena Doe de la cadena John Doe.
K#= =