Sunteți pe pagina 1din 14

6. Matrices y Colecciones Las matrices y las colecciones son conjuntos de elementos afines.

Una matriz es un grupo de posiciones de memoria contiguas, que almacenan el mismo nombre y tipo de dato, estas pueden ser de una o ms dimensiones. Para referirse a un elemento de la matriz se debe especificar el nombre de la matriz seguido de uno o ms subndices encerrados entre parntesis. Una coleccin se define por medio del objeto Collection donde se ace referencia a un grupo de elementos relacionados como un objeto !nico. 6.1. Matrices de una Dimensin o Unidimensionales Una matriz de una dimensin se declara de la siguiente forma"
Dim <nombre matriz> (<numero de elementos>) AS Tipo de dato; Dim mercanca (12) As Integer

#ambin se puede inicializar una matriz, de la siguiente manera"


Dim ventas () As Double = 1!!"!# 2$%"$# %&'"$# 12$"'# %$'"(() Dim vendedores () AS *tring = +,ulieta-# +.aria-# +,enn/-# +*ara-# +0ina-)

Para almacenar $alores en una matriz se debe utilizar el nombre de la matriz y un subndice que indica en qu posicin se almacenara el $alor especificado. %n las siguientes lneas se creara una matriz de & posiciones, 'el primer $alor se almacenara en la posicin () y se le asignaran $alores a la matriz. Por lo general para almacenar o mostrar los $alores de una matriz se utilizan las estructuras repetiti$as, tambin llamadas ciclos.
Dim ventas ($)# i# z As Integer For i= ! To % 1entas (i)= i23 Next

Para acceder a los $alores de una matriz, se debe utilizar un $alor de ndice para especificar la posicin a la que se desea acceder. #ambin se pueden utilizar ciclos para recorrer toda la matriz y acceder a todos los $alores.
z = ventas (2) 4a z se le asignara el valor de $ de acuerdo al e5emplo anterior"

6.1.1. Ejemplo prctico matrices unidimensionales *acer una aplicacin llamada MatricesUnidimensionales que permita a un usuario capturar +( n!meros enteros positi$os o negati$os e imprima los $alores en el orden que se capturan, como tambin, los $alores pares e impares ordenados de menor a mayor. Crear la interfaz de usuario.

Utilizando el cuadro de erramientas aga clic en el control especfico y ubique los siguientes controles en el formulario en la posicin deseada" , Text ox, , !a"el, +

utton. Esta"lecer las propiedades de los o"jetos del interfaz de usuario.

-espus de colocar los controles u objetos en el formulario, establezca las siguientes propiedades a los controles" Ta"la 6.1. #ropiedades de los controles de la aplicacin MatricesUnidimensionales.
Control Te6t7o61 Te6t7o62 Te6t7o63 Te6t7o6% 0abel1 0abel2 0abel3 0abel% 7utton1 ;orm1 Propiedad 8ame Te6t 8ame Te6t 8ame Te6t 8ame Te6t 8ame Te6t ;ont<7old 8ame Te6t ;ont<7old 8ame Te6t ;ont<7old 8ame Te6t ;ont<7old 8ame Te6t 8ame Te6t Valor t6toriginal 9n blanco t6tordenada 9n blanco t6tpares 9n blanco t6timpares 9n blanco lbloriginal .atriz :riginal True lblordenado .atriz :riginal True lblpares 8=meros >ares? True lblimpares 8=meros Impares? True boton @apturar valores Aormulario .atrices Bnidimensionales

La interfaz de usuario queda como se muestra en la siguiente figura" $i%ura 6.1. &nterfaz de usuario 'MatricesUnidimensionales(

Escri"ir cdi%o

.eleccione el objeto "oton y abra el editor de cdigo y escriba el siguiente cdigo"


Dim datos (1!) Cs Integer Dim i# 5# numero# temporal Cs Integer t6toriginal"Te6t = D D t6tordenada"Te6t = D D ;or i = ! To E numero = Input7o6(DDigite un n=umero enteroD# D@apturar valoresD) datos (i) = numero t6toriginal"Te6t = t6toriginal"Te6t F datos (i) F D # D 8e6t ;or i = ! To E ;or 5 = i To E IA (datos (i) > datos (5)) TGen temporal = datos (i) datos (i) = datos (5) datos (5) = temporal 9nd IA 8e6t 8e6t ;or i = ! To E t6tordenada"Te6t = t6tordenada"Te6t F datos (i) F D # D IA (datos (i) .od 2 = !) TGen t6tpares"Te6t = t6tpares"Te6t F datos (i) F D # D 9lse t6timpares"Te6t = t6timpares"Te6t F datos (i) F D # D 9nd IA 8e6t

%n el anterior cdigo se define una matriz llamada datos, la cual permitir almacenar +( $alores enteros, como tambin, se definen las $ariables i) j) numero de tipo &nte%er. Los controles txtori%inal y txtordenada se inicializan en su propiedad Text en blanco. .e realiza la programacin utilizando cuatro ciclos $or" el primero permite la capturar de cada uno de los $alores digitados por teclado y se le asigna a la $ariable numero, luego dic o $alor es almacenado en la posicin i de la matriz y por ultimo al control txtori%inal en su propiedad Text se le asigna lo que contena anteriormente ese control ms el $alor que a sido almacenado en datos 'i( agregndole una coma ',). %l segundo y tercer ciclo se utilizan para comparar pares de elementos adyacentes e intercambiarlos cuando se cumpla la condicin definida dentro del ciclo ms interno, este mtodo de comparacin es conocido como el mtodo de "*r"uja. %l cuarto ciclo sir$e para recorrer la matriz e ir imprimiendo cada uno de los elementos de la matriz en el control txtordenada en su propiedad Text. /dems se determinar si el $alor datos 'i) es par o impar utilizando el operador Mod. -ependiendo de la e$aluacin se imprimir dic o $alor en el objeto txtpares o txtimpares.

Ejecutar el proyecto

/l ejecutar el proyecto en el entorno de desarrollo de $isual 0asic.1%#, se debe $isualiza la figura 2.+. .i se pulsa el botn Capturar +alores y se digitan los n!meros" ,, 3, +4, ,2, 5&, ,+, &6, 37, ,(, 55, se $isualizara la siguiente pantalla" $i%ura 6.,. Ejecucin aplicacin MatricesUnidimensionales.

6.,. Matrices de ms de una Dimensin. Una matriz puede ser definida de dos, tres o ms dimensiones, de cualquier tipo de dato. Para crear una matriz de ms de una dimensin en los parntesis se separa cada dimensin por medio de comas ',). %l formato para declarar una matriz bidimensional es"
Dim nombreHmatriz (Ailas# columnas) As Integer Dim notas (2# 3) As Integer

Para almacenar $alores en la matriz bidimensional se utilizan dos subndices, el primero indica las filas y el segundo las columnas donde se localiza el $alor. %l primer $alor de las filas y de las columnas es cero '(). %n las siguientes lneas se creara una matriz bidimensional de , filas y 5 columnas, y se le asignaran $alores a la matriz. Para almacenar los $alores se utilizan dos ciclos.
Dim ventas (2# 3)# i# 5 As Integer For i= ! To 1 For 5=! To 2 ventas (i# 5) = i23 Next Next

Para acceder a los $alores de una matriz bidimensionales, se debe utilizar los dos subndices, como tambin, dos ciclos para recorrer toda la matriz y acceder a cada uno de los $alores.
Dim ventas (2# 3)# i# 5# z As Integer For i= ! To 1 For 5=! To 2 z=ventas (i# 5) 4C z se le asignara el valor de la posiciIn (i# 5)" Next Next

6.,.1. Ejemplo prctico matrices "idimensionales. %laborar una aplicacin llamada Matrices idimensionales que permita capturar oc o '3) palabras en una matriz bidimensional. .e deber imprimir cada palabra digitada en un campo de te8to, como tambin, imprimir en otro campo de te8to todas las palabras que empiecen con 9/. Crear la interfaz de usuario.

Utilizando el cuadro de erramientas aga clic en el control especfico y ubique los siguientes controles en el formulario en la posicin deseada" , !a"el, , Text ox, + utton. Esta"lecer las propiedades de los o"jetos del interfaz de usuario.

-espus de colocar los controles u objetos en el formulario, establezca las siguientes propiedades a los controles" Ta"la 6.,. #ropiedades de los controles de la aplicacin Matrices idimensionales.
Control 0abel1 0abel2 Te6tbo61 Te6t7o62 7utton1 ;orm1 Propiedad 8ame Te6t 8ame Te6t 8ame Te6t .ultiline 8ame Te6t .ultiline 8ame Te6t 8ame Te6t Valor lblpalabras >alabras Digitadas lblca >alas Jue empiezan con @C" t6tpalabras 9n 7lanco True t6tca 9n 7lanco True boton @apturar palabras Aormulario .atrices 7idimensionales

La interfaz de usuario queda como se muestra en la siguiente figura" $i%ura 6.-. &nterfaz de usuario 'Matrices idimensionales(

Escri"ir

cdi%o

.eleccione el objeto "oton y abra el editor de cdigo y escriba el siguiente cdigo"


Dim palabras(2# %) Cs *tring Dim i# 5 Cs Integer ;or i = ! To 1 ;or 5 = ! To 3 palabras(i# 5) = Input7o6(DDigite una palabra?D# D@apturar >alabrasD) t6tpalabras"Te6t = t6tpalabras"Te6t F palabras(i# 5) F vbTab IA (palabras(i# 5)"*ubstring(!# 2)"9Juals(DcaD)) TGen t6tca"Te6t = t6tca"Te6t F palabras(i# 5) F vb@r0A 9nd IA 8e6t t6tpalabras"Te6t = t6tpalabras"Te6t F vb@r0A F vb@r0A 8e6t

%n el anterior cdigo se define una matriz de , filas 8 6 columnas llamada pala"ras, la cual permitir almacenar 3 cadenas de caracteres, tambin se definen las $ariables i) j de tipo &nte%er. .e utilizan dos ciclos $or" el primero realizara el recorrido por las filas y el segundo lo realizara por las columnas, adems, en este ciclo se capturan las palabras digitadas. 9ada palabra capturada es asignada a la matriz pala"ras en su posicin i) j. /l objeto txtpala"ras en su propiedad Text se le asigna el te8to que contiene dic o control agregndole la nue$a palabra concatenada con una tabulacin ' +"ta"). .e e$alua si la palabra capturada contiene en las dos primeras posiciones la silaba C.. .i la condicin es $erdadera, al objeto txtca en su propiedad Text se le asigna el te8to que contiene dic o control agregndole la palabra con C. concatenada con una tabulacin '+"ta"). /l terminar de ejecutarse el segundo $or se retorna al primer ciclo donde al objeto txtpala"ras en su propiedad Text se le asigna el te8to que contiene dic o control agregndole dos saltos de lnea utilizando la funcin +"crlf. Ejecutar el proyecto.

/l ejecutar el proyecto se $isualizara la figura 2.5. /l pulsar el botn Capturar pala"ras, se mostrara la $entana para la captura de las palabras, como se aprecia en la siguiente

figura" $i%ura 6./. 0entana para capturar pala"ras.

.i se digitan las palabras" ana, dedos, cali, azules, cadena, apoyo, alcanza, capota, en el objeto txtpala"ras se $isualizaran las palabras digitadas y en el objeto txtca todas las palabras que empiezan con C.. .e mostrara la siguiente figura" $i%ura 6.1. Matriz "idimensional al capturar las pala"ras

6.-. Colecciones. Las colecciones es un objeto !nico donde se relacionan un grupo de elementos. Los elementos de una coleccin no tienen que compartir el mismo tipo de datos. %l ndice de los elementos puede ser ( +. .u formato es"

Dim nombrecoleccion .s 2e3 9ollection -onde 2e3 es el operador para asignar espacio de memoria de tipo Collection. 9uando se crea una coleccin, esta se puede manipular con las siguientes funciones" /dd" permite agregar un nue$o elemento a la coleccin. :emo$e" permite eliminar un elemento que e8ista en la coleccin. 9lear" quita todos los elementos de una coleccin. 9ount" cuenta cuantos elementos tiene una coleccin. 6.-.1. Ejemplo prctico colecciones. -ise;ar una aplicacin llamada Colecciones que permita adicionar, eliminar, buscar elementos en una coleccin. /l realizar la operacin de adicin o eliminacin se deben $isualizar como queda la coleccin y por la operacin de b!squeda se debe $isualizar la posicin donde se encuentra el elemento. Crear la interfaz de usuario.

Utilizando el cuadro de erramientas aga clic en el control especfico y ubique los siguientes controles en el formulario en la posicin deseada" , !a"el, , Text ox, + utton. Esta"lecer las propiedades de los o"jetos del interfaz de usuario.

-espus de colocar los controles u objetos en el formulario, establezca las siguientes propiedades a los controles" Ta"la 6.,. #ropiedades de los controles de la aplicacin Colecciones.
Control 0abel1 Te6tbo61 Te6t7o62 7utton1 7utton2 7utton3 ;orm1 Propiedad 8ame Te6t 8ame Te6t .ultiline 8ame Te6t 8ame Te6t 8ame Te6t 8ame Te6t 8ame Te6t Valor lblelementos 9lementos de la @olecciIn t6telementos 9n 7lanco True t6tbuscar 9n 7lanco botonadicionar Cdicionar elementos botoneliminar 9liminar elementos botonbuscar 9lemento a 7uscar? Aormulario :b5eto @ollection

La interfaz de usuario queda como se muestra en la siguiente figura"

$i%ura 6.6. &nterfaz de usuario 'Colecciones(

Escri"ir cdi%o

a) /ntes de la apertura de la clase declare la coleccin para que esta sea publica a cada uno de los procedimientos de la aplicacin. -e doble clic sobre el formulario y busque #u"lic class formulario y antes de este codigo escriba"
Dim coleccion Cs 8eK @ollection

b) .eleccione el objeto "otonadicionar) abra el editor de cdigo y escriba el siguiente cdigo"


Dim dato Cs Integer dato = Input7o6(DDigite elemento a Cdicionar?D# DCdicionar elemento a una coleccionD) coleccion"Cdd(dato) elementos"Te6t = DD ;or 9acG elemento Cs Integer In coleccion elementos"Te6t = elementos"Te6t F elemento F vb@r0A 8e6t

.e declara una $ariable llamada dato de tipo &nte%er. / dic a $ariable se le asigna el elemento digitado por teclado. Utilizando la funcin .dd se adiciona el elemento a la coleccin y se limpia el objeto elementos. 9on la estructura $or<Eac4 se $isualizan cada uno de los elementos e8istentes en la coleccin.

c) .eleccione el objeto "otoneliminar y abra el editor de cdigo y escriba el siguiente cdigo"


Dim dato# nroelementos Cs Integer nroelementos = coleccion"@ount dato = Input7o6(DDigite elemento a 9liminar?D# D9liminar elemento de una coleccionD) IA ( dato>nroelementos) TGen .sg7o6(D9lemento no e6isteD# .sg7o6*t/le"InAormation) 9lse coleccion"Lemove(dato) 9nd IA elementos"Te6t = DD ;or 9acG elemento Cs Integer In coleccion elementos"Te6t = elementos"Te6t F elemento F vb@r0A 8e6t

/ la $ariable nroelementos se le asigna la cantidad de elementos que tiene la coleccin utilizando la funcin Count. .i el $alor de la $ariable dato es mayor que el $alor de la la $ariable nroelementos se $isualizara el mensaje =Elemento no existe>. %n caso contrario se eliminara el elemento en la posicion indicada utilizando la funcin 5emo+e. .e debe tener en cuenta que se elimina es la posicion de un elemento en la coleccin. d) .eleccione el objeto "oton"uscar y abra el editor de cdigo y escriba el siguiente cdigo"
Dim dato# posicion# au6iliar Cs Integer dato = Input7o6(DDigite elemento a 7uscar?D# D7uscar elementoen a una coleccionD) posicion = 1 au6iliar = ! ;or 9acG elemento Cs Integer In coleccion IA (elemento = dato) TGen t6tbuscar"Te6t = Del elemento?D F dato F D e6iste en la posiciIn?D F posicion au6iliar = 1 9nd IA posicion = posicion 2 1 8e6t IA (au6iliar = !) TGen t6tbuscar"Te6t = D8o e6iste el elemento?D F dato 9nd IA

.e crean tres $ariables de tipo &nte%er" dato, posicion, auxiliar. / la $ariable dato se le asigna el elemento digitado por teclado? La $ariable posicion se inicializa en uno '+) y la $ariable auxiliar en cero '(). 9on la estructura $or<Eac4 se recorre cada uno de los elementos de la coleccin. .e e$alua si el elemento encontrado es igual al $alor de la $ariable dato. .i se cumple la condicion se le asigna al objeto txt"uscar el te8to =el elemento> concatenado al $alor de la $ariable dato junto con el te8to =existe en la posicin"> unido al $alor de la $ariable posicion) adems, se le asigna a la $ariable auxiliar el $alor uno '1( . .i no ingresa a la estructura &f se incrementara el $alor de la $ariable posicion. /l terminarse de recorrer la coleccin, si el $alor de la $ariable auxiliar es igual a

cero ' no se encontr el elemento buscado) se le asignara al objeto txt"uscar el te8to =2o existe el elemento> unido al $alor de la $ariable dato. Ejecutar el proyecto.

/l ejecutar el proyecto se $isualizara la figura 2.2. /l pulsar el botn .dicionar elementos, se mostrara la $entana para la adicionar un elemento a la coleccin. .e debe pulsar el botn tantas $eces como elementos se desee adicionar. .e apreciara la siguiente figura" $i%ura 6.6. 0entana para adicionar elementos a la coleccin.

.i se adicionan los elementos" ,, &, , 4, +, se obtendr la siguiente figura"

$i%ura 6.7. .plicacin con los elementos de la coleccin.

/l pulsar el botn Eliminar elementos, se mostrara la $entana para la eliminar un elemento a la coleccin. .e debe pulsar el botn tantas $eces como elementos se desee eliminar. .e mostrara la siguiente figura" $i%ura 6.8. 0entana para eliminar elementos de la coleccin.

.i se digita el n!mero +&, se obtendr la siguiente figura" $i%ura 6.19. Mensaje de 2o existencia de un elemento en la coleccin.

/l pulsar el botn Elemento a uscar, se mostrara la $entana para realizar la b!squeda de un elemento en la coleccin. .e debe pulsar el botn tantas $eces como elementos se desee buscar. .e mostrara la siguiente figura" $i%ura 6.11. 0entana para eliminar elementos de la coleccin.

.i se digita el n!mero 4, se $isualizara la siguiente figura" $i%ura 6.1,. .plicacin con el elemento encontrado.

6./. Ejercicios Matrices. +. %scribir un programa que permita capturar +( n!meros e imprima los n!meros positi$os. ,. :ealizar un programa que capture ,( n!meros enteros e imprima la cantidad y la suma de" negati$os, cero y positi$os. 5. *acer un programa que imprima la suma de los elementos de las diagonales de una matriz cuadrada. .e debe capturar la dimensin de la matriz. 6. %laborar un programa que capture notas de ,( alumnos de una clase. 9ada alumno debe tener tres notas. .e debe imprimir las notas de cada alumno, su nota definiti$a,

adems, las notas definiti$as menores de 2.( &. 9rear un programa que imprima ,( n!meros aleatorios entre + y +(((. /dems se deber imprimir el $alor m8imo y la posicin que ocupa en la matriz. 2. %scribir un programa que permita insertar o eliminar elementos de un arreglo 'los elementos deben mostrarse como se ingresaron). 4. -ise;ar un programa que permita capturar +( palabras en un arreglo bidimensional e imprimir dic o arreglo ordenado alfabticamente. 3. @mplementar un programa que capture +( palabras e imprimir aquellas palabras que contengan la silaba P%. 7. *acer un programa que intercambie las filas de una matriz. Los elementos de la fila ( deben intercambiarse con los de la fila 1, la fila + con los de la fila 1<+ y as sucesi$amente. @mprimir las dos matrices. +(. :ealizar un programa que capture +( n!meros en una matriz unidimensional e imprimir el mayor y menor $alor.

S-ar putea să vă placă și