You are on page 1of 21

5.

Mdulos y procedimientos A medida que se escriban programas de mayor robustez o complejidad (varios formularios), es casi seguro, que existan muchos procesos comunes. Para esto se dise an subprogramas que realizan una tarea espec!fica denominados procedimientos o funciones, Por otro lado a veces es necesario tener variables, constantes o expresiones que se puedan utilizar en el entorno de desarrollo sin tener que volverlas a definir (variables globales). "isual #asic .$%& permite compartir variables, procedimientos en varios formularios, para esto, es necesario crear un m'dulo que permita contener las variables globales y los procedimientos. 5.1. Mdulos (n m'dulo es un contenedor que se visualiza de forma independiente en el explorador de soluciones y solamente se le puede incluir c'digo y no tendr) interfaz de usuario. *icho m'dulo puede contener variables globales ' p+blicas, procedimientos sub y function y estos pueden ser compartidos por varios formularios. ,ada m'dulo tiene una instancia y no necesita ser creado ni asignado a una variable. *entro de una aplicaci'n pueden existir varios m'dulos, sin embargo, al hacer referencia a alguno de sus miembros (variables, procedimientos, funciones) se debe referenciar con el nombre del modulo adecuado. Ejemplo: Module uno Public a As integer-. End Module Module dos Public a As integer-/ End Module 0i se necesita utilizar la variable a del modulo llamado dos se debe referenciar as!1 dos.a Por defecto el primer m'dulo de un programa tendr) como nombre module1.vb. 0u formato es1 2odificador de acceso (public, friend) Module nombre3modulo variables, procedimientos End Module Por omisi'n cada vez que se crea un m'dulo el modificador de acceso es friend. Para crear un m'dulo dentro de un proyecto ' aplicaci'n existen varias formas1 4. 0eleccionar Agregar Mdulo del men+ Proyecto, donde se visualizara un cuadro de dialogo que le permitir) seleccionar la plantilla modulo y asignarle un nombre a este. 5. (tilizar el bot'n agregar nuevo elemento de la barra de herramientas est)ndar y seleccionar la opci'n Agregar Mdulo.

6. *esde el explorador de soluciones situarse en el nombre del proyecto y dar clic derecho del mouse para seleccionar la opci'n Agregar y despu7s escoger Mdulo. 8a figura que se visualizara al seleccionar cualquiera de los pasos anteriores es la siguiente1 igura 5.1. Agregar un modulo al proyecto

Al hacer clic en el bot'n Agregar, "isual #asic .$%& agregar) al proyecto el m'dulo llamado Module1.vb apareciendo el %ditor de &exto como se muestra a continuaci'n1 igura 5.!. Editor Module1.vb

8uego se podr) observar en el E"plorador de #oluciones proyecto1 igura 5.$. Mdulo en el E"plorador de soluciones

, el m'dulo agregado al

Para declarar una variable p+blica (aquellas que est)n disponibles para todos los procedimientos de la aplicaci'n) en un m'dulo solo se necesita que al inicio del m'dulo se escriba la palabra clave public seguido por el nombre de la variable y el tipo de dato. (na vez declarada esta variable podr) ser utilizada para leerla, modificarla o visualizarla por cualquier procedimiento del programa. 5.!. Procedimientos o funciones %n "isual #asic .$%& existen dos tipos de procedimientos1 unction y #ub. 8os procedimientos unction pueden ser invocados por su nombre desde otros procedimientos, pueden recibir argumentos (son datos necesarios para que un procedimiento trabaje correctamente y deben ir dentro de par7ntesis y separados por comas), y siempre devuelven un valor con el nombre de la funci'n. 8os procedimientos #ub tambi7n pueden ser son invocados por su nombre desde otros procedimientos, pueden recibir argumentos y no devuelven valores. 8os procedimientos unction y #ub se pueden definir en el c'digo de un formulario, pero lo m)s aconsejable es definirlos dentro de un m'dulo para que todos los elementos de un proyecto puedan utilizarlos. (n procedimiento unction es un grupo de c'digo localizado entre una instrucci'n unction y End unction. 0e podr) llamar a un procedimiento unction desde un programa utilizando el nombre asociado al procedimiento junto con los argumentos necesarios. 0u formato es1
[Modificar de acceso] Function nombre_funcin (argumentos) As tipo de dato Instrucciones nombre_function = valor a retornar End Function

9
[Modificar de acceso] Function nombre_funcin (argumentos) As tipo de dato Instrucciones Return = valor a retornar End Function

*onde el modificador de acceso puede ser public, pr%vate, protected o friend. Para llamar al procedimiento unction desde otro procedimiento y suponiendo que se tiene una etiqueta &abel1, ser!a de la siguiente forma1 0e env!a1
Label1. e!t =nombre_funcin (1"# $%ola&)

0e recibe1
Public Function nombre_funcin ('(val entero )s Integer# '(val cadena )s *tring)

(n procedimiento #ub es similar a un procedimiento unction solo que #ub no retorna un valor asociado con su nombre pero pueden devolver uno o m)s valores al procedimiento que lo llamo. %n la llamada al procedimiento el n+mero y el tipo de argumentos enviados deben ser igual al n+mero y tipo de argumentos del procedimiento. 0u formato es1
[Modificar de acceso] Sub nombre_sub (argumentos) Instrucciones End Sub

Para llamar al procedimiento #ub desde otro procedimiento se debe especificar el nombre del procedimiento y el n+mero de argumentos. %l ejemplo ser!a el siguiente1 0e env!a1
Mi*ub (1"# $%ola&)

0e recibe1
Mi*ub ('(val entero )s Integer# '(val cadena )s *tring)

5.!.1. Ejemplo pr'ctico mdulo y procedimientos #ub y unction :ealizar una aplicaci'n llamada ModulosProcedimientos que permita a un usuario capturar un n+mero y retornar en texto si dicho n+mero es P:;2< ' $<. (tilizando los procedimientos unction y #ub. (rear la interfa) de usuario.

(tilizando el cuadro de herramientas haga clic en el control espec!fico y ubique los siguientes controles en el formulario en la posici'n deseada1 5 *e"t+o", 5 &abel, 5 +utton. 0e omitir) la interfaz inicial del proyecto. Establecer las propiedades de los objetos del interfa) de usuario.

Para el caso del ejemplo establezca las siguientes modificaciones a los controles1 *abla 5.1. Propiedades de los controles de la aplicacin ModulosProcedimientos
Control e!t'o!1 e!t'o!" Label1 Label" 'utton1 'utton" Propiedad +ame e!t +ame e!t +ame e!t +ame e!t +ame e!t +ame Valor t!tnumero ,n blanco t!tresultado ,n blanco lblnumero -igite un n.mero/ lblresultado ,l n.mero es/ botonfunction 0erificar +umero 1rimo con 2unction botonsub

2orm1

e!t +ame e!t

0erificar +umero 1rimo con *ub formulario Mdulos ( procedimientos.

8a interfaz de usuario queda como se muestra en la siguiente figura1

igura 5.,. -nterfa) de usuario .ModulosProcedimientos/.

Agregar mdulo

Para agregar el nuevo m'dulo se utilizara el icono agregar nuevo elemento de la barra de herramientas est)ndar y all! se seleccionara la opci'n Agregar Mdulo0 donde se visualizara un cuadro de dialogo que le permitir) seleccionar la plantilla de Mdulo y asignarle un nombre al m'dulo. Por defecto el primer m'dulo de un programa tendr) como nombre module1.vb c)mbielo por mimodulo.vb. igura 5.5. Mdulo mimodulo.vb en la aplicacin ModulosProcedimientos

0i se desea cambiar el nombre del m'dulo, se pueden seleccionar las propiedades del m'dulo dando clic sobre el nombre actual de este. ,omo los m'dulos solo contienen c'digo, las propiedades son m!nimas. (na de las propiedades m)s importantes es nombre de arc1ivo, que permite cambiar el nombre del m'dulo (tenga en cuenta que la extensi'n debe seguir igual a =vb>).

Escribir cdigo en el mdulo

%n el m'dulo de doble clic sobre el nombre de este y entre las instrucciones Module y End Module escriba el siguiente c'digo1
Module mimodulo 1ublic incremento )s Integer 1ublic au!iliar )s Integer 1ublic te!to )s *tring 3iniciamos el procedimiento 2unction 2unction primo_2unction('(0al numero )s Integer) )s *tring au!iliar = 4 incremento = " If (numero 5= 4) %en primo_2unction = 6+o %a( solucin6 ,lse If (numero 7= 1 )nd numero 5 8) %en te!to = 619IM:6 ,lse ;%ile (au!iliar = 4) If ((numero Mod incremento) = 4) %en te!to = 6+o 19IM:6 au!iliar = 1 ,lse incremento <= 1 ,nd If If (numero = incremento) %en

te!to = 619IM:6 au!iliar = 1 ,nd If ,nd ;%ile ,nd If primo_2unction = te!to ,nd If ,nd 2unction 32inali=a el procedimiento funcin 3Inicia el procedimiento *ub *ub primo_*ub('(0al numero )s Integer) au!iliar = 4 incremento = " If (numero 5= 4) %en te!to = 6+o %a( solucin6 ,lse If (numero 7= 1 )nd numero 5 8) %en te!to = 619IM:6 ,lse ;%ile (au!iliar = 4) If ((numero Mod incremento) = 4) %en te!to = 6+o 19IM:6 au!iliar = 1 ,lse incremento <= 1 ,nd If If (numero = incremento) %en te!to = 619IM:6 au!iliar = 1 ,nd If ,nd ;%ile ,nd If ,nd If ,nd *ub 32inali=a el procedimiento *ub End Module

%n el m'dulo se crean tres variables p+blicas au"iliar e incremento de tipo -nteger y te"to de tipo #tring, las cuales pueden ser utilizadas por cualquier procedimiento que este dentro del m'dulo o por cualquier formulario que pertenezca a la aplicaci'n. %n este caso dichas variables son utilizadas por los procedimientos primo2 unction y primo2#ub. &anto en el procedimiento primo2 unction como en el procedimiento primo2#ub se reciben un n+mero el cual es evaluado para determinar si es primo ' no. Por otro lado en el procedimiento primo2 unction se retorna el contenido de la variable global te"to al procedimiento que lo llam' y en el procedimiento primo2#ub el resultado es asignado a la variable te"to. Escribir cdigo en los controles +utton

a) 0eleccione el objeto botonfunction y abra el editor de c'digo y escriba el siguiente c'digo1

-im numero )s Integer numero = t!tnumero. e!t t!tresultado. e!t = primo_2unction(numero)

%l anterior c'digo se define la variable numero de tipo -nteger. A dicha variable se le asigna el valor capturado en el objeto t"tnumero. Por +ltimo a la propiedad *e"t del control t"tresultado se le asigna el valor que retorne el procedimiento primo2 unction. ,omo se puede apreciar a dicho procedimiento se le env!a como argumento la variable numero que es exactamente el n+mero de argumentos que recibe primo2 unction. b) 0eleccione el objeto botonsub y abra el editor de c'digo y escriba el siguiente c'digo1
-im numero )s Integer numero = t!tnumero. e!t primo_*ub(numero) t!tresultado. e!t = te!to

%n este c'digo tambi7n se define la variable numero de tipo -nteger. A dicha variable se le asigna el valor capturado en el objeto t"tnumero. 0e llama al procedimiento primo2#ub y se le env!a como argumento la variable numero. Por +ltimo a la propiedad *e"t del control t"tresultado se le asigna el valor de la variable global te"to. Ejecutar el proyecto

Al ejecutarse el proyecto en el entorno de desarrollo de "isual #asic.$%&, si se digita el valor !31 y pulsando cualquiera de los dos botones se visualizara la siguiente pantalla1 igura 5.4. Ejecucin aplicacin ModulosProcedimientos

5.$. unciones predeterminadas. %n "isual #asic .$%& existen funciones predeterminadas o incorporadas que facilitan la realizaci'n de tareas espec!ficas, entre ellas, se pueden encontrar funciones1 matem)ticas, de fechas, para manipulaci'n de cadenas de caracteres., etc.

5.$.1. uncin de fec1a y 1ora. %l objeto 5ate permite la manipulaci'n de la fecha y la hora. 6o7 y *oday son dos funciones b)sicas para el manejo del tiempo y la fecha. 6o7 muestra en formato num7rico la fecha y la hora del sistema (%j1 64?@A?5@4@ 4.14B15@), mientras que *oday muestra en formato num7rico la fecha del sistema (%j1 64?@A?5@4@). ,on la funci'n ormat se puede manejar diferentes formatos de presentaci'n de fecha y hora utilizando caracteres espec!ficos. %n la siguiente tabla se describe algunos caracteres que permite la creaci'n de formatos de fecha y hora definidos por el usuario1 *abla 5.!. (aracteres para crear formatos de fec1a.
Carcter (>) *eparador de fec%a. Muestra una fec%a con el formato de fec%a larga. 1or e?emplo/ martes# 81 de agosto de "414. d dd ddd dddd M MM MMM MMMM ( (( ((( 2#f Muestra una fec%a con el formato de fec%a corta. 1or e?emplo/ 81>14>"414. Muestra el d@a como un n.mero con cero a la i=Auierda (por e?emplo/ 41). Muestra el d@a de forma abreviada (por e?emplo/ mar). Muestra el d@a de forma completa (por e?emplo/ martes). Muestra el d@a ( el mes de una fec%a (por e?emplo/ 81 agosto). Muestra el mes como un n.mero con cero a la i=Auierda (por e?emplo# 4B). Muestra el mes en forma abreviada (por e?emplo# ago). Muestra el mes en forma completa (por e?emplo/ agosto). Muestra el mes ( el aCo (por e?emplo/ agosto de "414). Muestra el aCo en formato numDrico de dos d@gitos. Muestra el aCo en formato numDrico de cuatro d@gitos. Muestra la fec%a larga ( la %ora corta. 1or e?emplo/ martes# 81 de agosto de "414 11/4E. Descripcin

*abla 5.$. (aracteres para crear formatos de 1ora.


Carcter (/) *eparador de %ora. Descripcin

%%

Muestra la %ora como un n.mero con ceros a la i=Auierda ( en formato de 1" %oras.

FF

Muestra la %ora como un n.mero con ceros a la i=Auierda ( en formato de "G %oras.

mm ss t

Muestra los minutos como un n.mero con ceros a la i=Auierda. Muestra los segundos como un n.mero con ceros a la i=Auierda. Muestra la %ora ( los minutos en formato de "G %oras.

5.$.1.1. Ejemplo pr'ctico funciones de fec1a y 1ora. ,rear una aplicaci'n llamadas unciones ec1as8oras que permita a un usuario pulsar un bot'n y visualizar en cajas de texto alguno de los formatos de fecha y hora. (rear la interfa) de usuario.

(tilizando el cuadro de herramientas haga clic en el control espec!fico y ubique los siguientes controles en el formulario en la posici'n deseada1 4@ &abel, 4@ *e"tbo", 4 +utton. Establecer las propiedades de los objetos de la interfa) de usuario.

Para el caso del ejemplo establezca las siguientes modificaciones a los controles1 *abla 5.,. Propiedades de los controles del proyecto unciones ec1as8oras.
Control Label1 Label" Label8 LabelG LabelJ LabelL LabelE LabelM LabelB Label14 Label1N.Label14 e!t'o!1N e!t'o!14 'utton1 2orm1 Propiedad +ame +ame +ame +ame +ame +ame +ame +ame +ame +ame e!t +ame e!t +ame e!t +ame e!t Valor 2uncin +oH 2uncin :-)I 2ormato d>MM>(/ 2ormato -/ 2ormato dKMMMMK((( 2ormato 2/ 2ormato %/m/s/ 2ormato %%/mm/ss 2ormato FF 2ormato FF/mm te!to1Nte!to14 formato1Nformato14 ,n blanco boton 0er formatos de fec%a>%ora formulario 2ormato de fec%a>%ora

8a interfaz de usuario queda como se muestra en la siguiente figura1 igura 5.9. -nterfa) de usuario . unciones ec1as8oras/.

Escribir cdigo

0eleccione el objeto boton y abra el editor de c'digo y escriba el siguiente c'digo1


formato1. e!t = -ate.+oH formato". e!t = -ate. oda( formato8. e!t = 2ormat(-ate.+oH# 6d>MM>(6) formatoG. e!t = 2ormat(-ate.+oH# 6-6) formatoJ. e!t = 2ormat(-ate.+oH# 6dKMMMMK(((6) formatoL. e!t = 2ormat(-ate.+oH# 626) formatoE. e!t = 2ormat(-ate.+oH# 6%/m/s6) formatoM. e!t = 2ormat(-ate.+oH# 6%%/mm/ss6) formatoB. e!t = 2ormat(-ate.+oH# 6FF6) formato14. e!t = 2ormat(-ate.+oH# 6FF/mm6)

0e utiliza la funci'n ormat (fecha actual del sistema, tipo de formato) para dar un formato espec!fico de fecha u hora a las diferentes cajas de texto en la propiedad *e"t. ,uando el usuario pulse el bot'n :er formatos fec1a;1ora en tiempo de ejecuci'n mostrar) en cada caja de texto el formato respectivo. Ejecutar el proyecto

Al ejecutarse el proyecto en el entorno de desarrollo de "isual #asic.$%&, se deber!a visualizar la siguiente pantalla1

igura 5.3. Ejecucin aplicacin unciones ec1as8oras.

5.$.!. unciones Matem'ticas 8a clase Mat1 de "isual #asic .$%& contiene una serie de funciones trigonom7tricas, logar!tmicas y otras funciones matem)ticas que sirven para realizar c)lculos aritm7ticos, en la siguiente tabla se muestran las funciones m)s comunes1 *abla 5.5. unciones matem'ticas de :isual +asic .6E*.
Mtodo de Visual Basic . E! Mat%.Oeiling(double) Descripcin -evuelve el n.mero entero mPs peAueCo ma(or o igual Aue el n.mero especificado. Mat%.ceiling(1.L)=" Mat%.ceiling(4.M)=1 -evuelve el n.mero entero mPs grande menor o igual Aue el n.mero especificado. Mat%.2loor(1.L)=1 Mat%.2loor(4.M)=4 -evuelve la ra@= cuadrada de un n.mero. -evuelve un n.mero especificado elevado a la potencia especificada. *obrecargado. -evuelve el valor absoluto de un

Mat%.2loor(double)

Mat%.sArt(n) Mat%.poH(n#p) Mat%.)bs(n)

Mat%.sin(n) Mat%.cos(n) Mat%.tan(n) Mat%.Ma!(n1#n") Mat%.min(n1#n") Mat%.'igMul(n1#n") Mat%.round(double)

n.mero especificado. -evuelve el seno del Pngulo especificado. -evuelve el coseno del Pngulo especificado. -evuelve la tangente del Pngulo especificado. -evuelve el ma(or de dos n.meros. -evuelve el menor de dos n.meros. Oalcula el producto de dos n.meros. -evuelve el n.mero mPs pr!imo al valor especificado. Mat%.round(14.J)=14 Mat%.round(14.J1)=11

5.$.!.1. Ejemplo pr'ctico funciones matem'ticas Cacer una aplicaci'n llamadas uncionesMatematicas que permita a un usuario pulsar un bot'n y visualizar en cajas de texto las funciones aritm7ticas b)sicas. (rear la interfa) de usuario.

(tilizando el cuadro de herramientas haga clic en el control espec!fico y ubique los siguientes controles en el formulario en la posici'n deseada1 44 &abel, 44 *e"tbo", 4 +utton. Establecer las propiedades de los objetos de la interfa) de usuario.

Para el caso del ejemplo establezca las siguientes modificaciones a los controles1 *abla 5.4. Propiedades de los controles del proyecto uncionesMatematicas.
Control Label1 Label" Label8 LabelG LabelJ LabelL LabelE LabelM LabelB Label14 Propiedad +ame e!t +ame e!t +ame e!t +ame e!t +ame e!t +ame e!t +ame e!t +ame e!t +ame e!t +ame e!t Valor 2uncin Mat%.Oeiling(M.J) te!to1 2uncin Mat%.2loor(M.J) te!to" 2uncin Mat%.9ound(14.J) te!to8 2uncin Mat%.9ound(14.J1) te!toG 2uncin Mat%.Ma!(E#J) te!toJ 2uncin Mat%.Min(E#J) te!toL 2uncin Mat%.1oH(J#") te!toE 2uncin Mat%.*Art(8) te!toM 2uncin Mat%.*in(1.4) te!toB 2uncin Mat%.cos(1.4) te!to14

Label11 e!t'o!1N e!t'o!11 'utton1 2orm1

+ame e!t +ame e!t +ame e!t +ame e!t

2uncin Mat%.tan(1.4) te!to11 campo1Ncampo14 ,n blanco boton 0er funciones matemPticas. formulario 2unciones matemPticas.

8a interfaz de usuario queda como se muestra en la siguiente figura1

igura 5.<. -nterfa) de usuario . uncionesMatematicas/

Escribir cdigo

0eleccione el objeto boton y abra el editor de c'digo y escriba el siguiente c'digo1


campo1. campo". campo8. campoG. campoJ. e!t = Mat%.Oeiling(M.J) e!t = Mat%.2loor(M.J) e!t = Mat%.9ound(14.J) e!t = Mat%.9ound(14.J1) e!t = Mat%.Ma!(E# J)

campoL. e!t = Mat%.Min(E# J) campoE. e!t = Mat%.1oH(J# ") campoM. e!t = Mat%.*Art(8) campoB. e!t = Mat%.*in(1.4) campo14. e!t = Mat%.Oos(1.4) campo11. e!t = Mat%. an(1.4)

%l anterior c'digo se le asigna una funci'n matem)tica a la propiedad *e"t de cada caja de texto. ,uando el usuario pulse el bot'n :er unciones matem'ticas en tiempo de ejecuci'n mostrar) en cada caja de texto el valor respectivo de la operaci'n que le fue asignada. Ejecutar el proyecto

Al ejecutarse el proyecto en el entorno de desarrollo de visual #asic.$%&, se debe visualizar1

igura 5.1=. Ejecucin aplicacin uncionesMatematicas.

5.$.$. unciones para cadenas de caracteres. "isual #asic .$%& contiene una serie de funciones para la manipulaci'n de cadenas de caracteres que sirven para realizar diferentes operaciones entre caracteres, en la siguiente

tabla se muestran las funciones m)s comunes1 *abla 5.9. unciones para manipulacin de cadenas.
Funcin C#ars(n)/ 1ermite obtener un carPcter espec@fico de una cadena de caracteres. $en%t#/ 1ermite obtener la longitud de de una cadena de caracteres. Concat(te!to1# te!to#....# te!ton)/ 1ermite unir dos o mPs cadenas de caracteres. !o&pper/ Oonvierte una cadena de caracteres de min.scula a ma(.scula. !o$o'er/ Oonvierte una cadena de caracteres de ma(.scula a min.scula. Remo(e(posicin inicial# n.mero de caracteres)/ 1ermite eliminar una cantidad determinada de caracteres en una posicin espec@fica de una cadena de caracteres. )nsert (posicin de insercin#&cadena de caracteres&)/ 1ermite insertar una cantidad determinada de caracteres en una posicin espec@fica de una cadena de caracteres. SubStrin%((posicin inicial# n.mero de caracteres)/ 1ermite obtener una subcadena de una cadena de caracteres. Replace(cadena de caracteres# carPcter original# nuevo carPcter)/ 1ermite reempla=ar una subcadena determinada por otra subcadena especificada. StrRe(erse(cadena de caracteres)/ -evuelve una cadena de caracteres invertida seg.n el orden de los caracteres de la cadena especificada. Mid (cadena de caracteres# posicin inicial# numero de caracteres)# Mid (cadena de caracteres# posicin inicial)/ -evuelve una subcadena Aue E"emplo -im micadena )s *tring = 6)'O-,6 -im micaracter )s O%ar micaracter = micadena.O%ars(8) micaracter = 6-6 -im micadena )s *tring = 6)'O-,6 -im ,ntero )s Integer entero=cadena.lengt% entero=J -im micadena )s *tring = 6%ola6 -im unircadena )s *tring unircadena= *tring.Ooncat(micadena# 6 6# 6pueblo6) unircadena=& %ola pueblo& -im micadena )s *tring = 6%ola6 micadena= micadena. oQpper() micadena=& F:L)& -im micadena )s *tring = 6F:L)6 micadena= micadena. oLoHer() micadena=& %ola& -im micadena )s *tring = 6campoalegre6 micadena= micadena.9emove("#8) micadena=& caalegre& -im micadena )s *tring = 6campoalegre6 micadena= micadena.insert(G#& mPs &) micadena=& campo mPs alegre& -im micadena )s *tring = 6campoalegre6 -im subcadena )s *tring subcadena= micadena.substring(J#G) subcadena=&aleg& -im micadena )s *tring = 6campoalegre6 -im +uevacadena )s *tring nuevacadena =replace* m i c a d e n a # 6e6# 6i6) nuevacadena=&campoaligri& -im micadena )s *tring = 6campoalegre6 -im +uevacadena )s *tring nuevacadena =*tr9everse* m i c a d e n a ) nuevacadena=&ergelaopmac -im micadena )s *tring = 6campoalegre6 -im +uevacadena )s *tring nuevacadena =Mid* m i c a d e n a # 1 # J ) nuevacadena=&campo&

a su ve= contiene un n.mero especificado de caracteres de una cadena de caracteres.

$en (cadena de caracteres)/ -evuelve un entero Aue contiene el n.mero de caracteres de una cadena de caracteres. !oc#arArra+/ Oonvierte una cadena de caracteres en un arreglo de caracteres. Split (cadena de caracteres# delimitador)/ -evuelve un arreglo unidimensional Aue contiene un n.mero espec@fico de subcadenas. !rim (cadena)/ ,limina los espacios de ambos lados de una cadena de caracteres. Asc (carPcter)/ -evuelve el numero )scci de un carPcter. C#r (numero)/ -evuelve el carPcter )scci de un n.mero. Strin%.Cop+ (cadena)/ Oopia una cadena de caracteres. )nde,-. (carPcter a buscar)/ -evuelve la posicin de un carPcter espec@fico.

-im micadena )s *tring = 6campoalegre6 -im +uevacadena )s *tring nuevacadena =Mid* m i c a d e n a # J ) nuevacadena=&alegre -im micadena )s *tring = 6)'O-,6 -im ,ntero )s Integer entero=len(micadena) entero=J -im micadena )s *tring = 6campeon6 -im arreglo() )s c%ar arreglo=mi cadena. oO%ar)rra(() arreglo=R3cS#SaS#SmS#SpS#SeS#SoS#SnST -im cadena as *tring=&G"#"1#J4#88& -im subcadenas() )s *tring *ubcadenas=*plit(subcadenas#&#&) 9etorna=R&G"& $"1& $J4& $88&T -im cadena )s *tring=& Oolombia $ cadena= rim(cadena) -im numero )s Integer numero=)sc($a&) 3-evuelve BE -im letra )s c%ar letra=O%r(BE) 3-evuelve $a& -im cadena )s *tring=&Fola& -im copia as *tring copia=*tring.Oop((cadena) -im cadena as *tring=&Oolombia& -im posicin )s Integer posicin=cadena.Inde!:f($m&) 3-evuelve G

5.$.$.1. Ejemplo pr'ctico funciones de cadena de caracteres. *ise ar una aplicaci'n llamada unciones(adenas que permita a un usuario visualizar en una caja de texto las funciones de manipulaci'n de cadena de caracteres b)sicas cuando se pulse un bot'n espec!fico. (rear la interfa) de usuario.

(tilizando el cuadro de herramientas haga clic en el control espec!fico y ubique los siguientes controles en el formulario en la posici'n deseada1 5 &abel, 5 *e"tbo", 45 +utton. Establecer las propiedades de los objetos de la interfa) de usuario.

Para el caso del ejemplo establezca las siguientes modificaciones a los controles1 *abla 5.3. Propiedades de los controles del proyecto unciones(adenas.
Control Label1 Propiedad +ame Valor lblcadena

Label" 'utton1 'utton" 'utton8 'uttonG 'uttonJ 'uttonL 'uttonE 'uttonM 'uttonB 'utton14 'utton11 'utton1" e!t'o!1 e!tbo!" 2orm1

e!t +ame e!t +ame e!t +ame e!t +ame e!t +ame e!t +ame e!t +ame e!t +ame e!t +ame e!t +ame e!t +ame e!t +ame e!t +ame e!t +ame e!t +ame e!t +ame e!t

Oadena origonal lblresultado Oadena resultante boton1 O%ars(n) boton" Lengt% boton8 oQpper botonG oLoHer botonJ 9emove botonL Insert botonE *ubstring botonM Mid botonB *tr9everse boton14 9eplace boton11 )sc boton1" Ooncat t!tcadena ,sternomPscleoide t!tresultante ,n blanco formulario 2unciones de cadenas de caracteres.

8a interfaz de usuario queda como se muestra en la siguiente figura1 igura 5.11. -nterfa) de usuario . unciones(adenas/

Escribir cdigo

0eleccione el objeto boton1 y abra el editor de c'digo y escriba el siguiente c'digo1


resultado. e!t = te!to. e!t.O%ars(J)

0eleccione el objeto boton! y abra el editor de c'digo y escriba el siguiente c'digo1


resultado. e!t = te!to. e!t.Lengt%

0eleccione el objeto boton$ y abra el editor de c'digo y escriba el siguiente c'digo1


resultado. e!t = te!to. e!t. oQpper

0eleccione el objeto boton, y abra el editor de c'digo y escriba el siguiente c'digo1


resultado. e!t = te!to. e!t. oLoHer

0eleccione el objeto boton5 y abra el editor de c'digo y escriba el siguiente c'digo1


resultado. e!t = te!to. e!t.9emove("# J)

0eleccione el objeto boton4 y abra el editor de c'digo y escriba el siguiente c'digo1


resultado. e!t = te!to. e!t.Insert(J# 6+Q,0:6)

0eleccione el objeto boton9 y abra el editor de c'digo y escriba el siguiente c'digo1


resultado. e!t = te!to. e!t.*ubstring("# J)

0eleccione el objeto boton3 y abra el editor de c'digo y escriba el siguiente c'digo1


resultado. e!t = Mid(te!to. e!t# "# J)

0eleccione el objeto boton< y abra el editor de c'digo y escriba el siguiente c'digo1


resultado. e!t = *tr9everse(te!to. e!t)

0eleccione el objeto boton1= y abra el editor de c'digo y escriba el siguiente c'digo1


resultado. e!t = te!to. e!t.9eplace(6e6# 6!6)

0eleccione el objeto boton11 y abra el editor de c'digo y escriba el siguiente c'digo1


resultado. e!t = )sc(te!to. e!t.O%ars(J))

0eleccione el objeto boton1! y abra el editor de c'digo y escriba el siguiente c'digo1


resultado. e!t = *tring.Ooncat(te!to. e!t# 6 Aue palabrita6)

%n el anterior c'digo se le asigna una funci'n de manipulaci'n de cadenas en la propiedad *e"t de cada caja de texto. ,uando el usuario pulse un bot'n en tiempo de ejecuci'n mostrar) en el objeto resultado el valor respectivo de la operaci'n que le fue asignada. Ejecutar el proyecto

Al ejecutarse la aplicaci'n se visualizara la figura /.44., 0e puede pulsar cada uno de los botones para ver los resultados de la funci'n especificada. Por ejemplo si se pulsa el bot'n (oncat, se obtendr) la siguiente figura1 igura 5.1!. Ejecucin aplicacin cadenas2caracteres

5.,. Ejercicios procedimientos. 4. ,rear un programa que contenga un m7todo llamado perfecto que reciba un par)metro entero e imprima si este es o no perfecto. 0e dice que un n+mero es =un n+mero perfecto> si la suma de sus factores, incluido el 4, da como resultado el n+mero. Por ejemplo, . es un n+mero perfecto porque .-4D5D6. 5. *ise ar un programa que contenga un m7todo llamado ,elsius que reciba un valor representado en grados ,elsius y retorne el valor representado en grados Eahrenheit digitado desde el teclado.

6. %laborar un programa que contenga un m7todo que reciba un n+mero entero y retorne el n+mero con sus d!gitos invertidos. %jemplo1 dado el n+mero F.64 el m7todo deber) retornar 46.F. B. %scribir un programa que capture dos n+meros y por medio de un m7todo imprima la multiplicaci'n de estos por medio de las sumas sucesivas. %jemplo1 5@ es igual a BDBDBDBDB ' /D/D/D/. /. :ealizar un programa con un m7todo que calcule las ra!ces de una ecuaci'n de segundo grado.%l discriminante es (bG5H BIaIc). 0e deben tener en cuenta todas las posibles validaciones. .. %laborar un programa utilizando un m7todo que determine cuantas cifras posee un n+mero entero positivo introducido por teclado. F. Cacer un programa que lea una cadena de caracteres, digitar un car)cter que se quiera eliminar y por medio de un m7todo imprimir la cadena resultante. A. *ise ar el programa para imprimir la suma de los n+meros impares menores o iguales que $ por medio de un m7todo. J. ,rear un programa que reciba un n+mero entero y por medio de un m7todo retorne el n+mero con sus d!gitos invertidos. %jemplo1 dado el n+mero F.64 el m7todo deber) retornar 46.F. 4@. Cacer un programa utilizando m7todos que lea un n+mero no mayor de 4@@@ e imprima ese n+mero en letras.

You might also like