República Bolivariana de Venezuela Instituto Universitario Politécnico “Santiago Mariño” !tensi"n Puerto #rdaz
MAT MA TRICES Y VECTORES EN EN VISUAL BASIC
Pro$esor% &osé 'uz()n
Integrantes% Suarez *arolina V+ ,-./01.23, Rangel 4abiola V+ ,2.561.535 7izardi 8éctor 8éctor
V+ 3-.560.,06
Valencia di!on V+
*iudad 'ua9ana: ,; de
INDICE
Introducci"n===========================...=.= / >rreglos ? Vectores Vectores n Visual Basic======.======== Basic======.==========......=. ==......=. 5
7as Matrices%========= Matrices%=================== ==============.=....... ====.=................... ..............
Vectores @in)(icos%=============..======.=.. @in)(icos%=============..======.=.. ===== 0
4unciones de VB para traba
rreglos======.==..======.... >rreglos======.==..======.... ,1
7bound 9 Ubound ======================== ======================== ,1 &oin======================..======== ,, Split =======================.======... ,/ 4ilter================== 4ilter============================= ============ = ,5
>rreglos de *ontroles================..==. *ontroles================..==............... ........................ .......... ,;
*o(partir controladores de eventos========..=======... eventos========..=======... ,; Recorrer controles en iteraci"n==================. iteraci"n==================. ,2 >gregar controles en tie(po de e
*onclusi"n============================== 31 Bibliogra$Aa============================== 3,
2
INTRODUCCIÓN
l presente trabauA les estare(os aclarando ()s acerca del te(a de Vectores 9 Matrices: para ue sirve dentro del progra(a en Visual Basic. 7os puntos a tratar en nuestra e!posici"n 9 a continuaci"n en este traba
Arreglos y Vectores Matrices Arreglos y Vectores din!icos" #$nciones de Vis$al Basic %ara tra&a'ar con arreglos Los arreglos de controles"
3
ARRE(LOS Y VECTORES EN VISUAL BASIC Un >rreglo es un con los arreglos tienen un no(bre pues se consideran un tipo de variable. >sA co(o cada variable reuiere de una localidad de (e(oria para al(acenar su valor: asA ta(bién: cada uno de los ele(entos del arreglo reuieren de una localidad de (e(oria para al(acenar su valor. Por esta raz"n: a los ele(entos de un arreglo se denotan de acuerdo al siguiente criterio% MD,E: MD3E: = : MD,1E
corresponde a un arreglo lineal de ,1 ele(entos
FD,:,E FD,:3E FD,:/E FD,:5E DFD,:6E FD3:,E FD3:3E FD3:/E FD3:5E DFD3:6E s un arreglo bidi(ensional de 3 $iles con 6 colu(nas. Godo tipo de arreglo usado en VB> debe ser declarado (ediante la instrucci"n @IM S IHG'R 4
n este eS Integer n este e
Nota) Si en el caso del arreglo F: se intenta usar el ele(ento FD,,E: se estar) usando un subAndice $uera de lA(ite. sto signi$ica ue los arreglos deben ser declarados to(ando en cuenta su ()!i(o ta(año.
E'e!%lo scriba Un progra(a ue lea un con
Sol$ci*n Sea @atos el no(bre del arreglo. Supondre(os ue tiene 61 ele(entos. Usare(os la sentencia @IM para de$inir el arreglo co(o de tipo Integer. ?a ue se trata de introducir ,1 datos: usare(os 4or = He!t para ingresar los datos repetida(ente. 7a variable de conteo en el 4or ser) I: no ser) necesario de$inirla. Usare(os 4#R %%% HFG para leer los datos 9 otro para i(pri(ir los valores leAdos. >unue bien podrAa(os leer e i(pri(irlos dentro del (is(o 4#R = HFG. Usare(os a InputBo!D=E co(o $unci"n para ingresar los datos
5
El c*digo es el sig$iente) Sub >rreglos1,DE @i( @atosD,1E >s Integer 7ectura de datos 4or I J , Go ,1 @atosDIE J InputBo!DKIngrese el dato% KE He!t I(presi"n de los datos MsgBo! DKstos son los datos leAdos%KE 4or I J , Go ,1 MsgBo! D@atosDIEE He!t nd Sub
LAS MATRICES) Una (atriz es un con una (atriz de / di(ensiones o ta(bién lla(ada tridi(ensional se la puede i(aginar con las coordenadas F: ?: L: 9 esta es ideal para representar $iguras en el espacio por e
6
7as (atrices se declaran en el c"digo de (anera igual ue los vectores: con la di$erencia ue debe(os indicar ()s subAndices de acuerdo a la cantidad de di(ensiones ue posea la (atriz. Por lo general no se suele utilizar (atrices de ()s de / di(ensiones.
E'e!%lo de !atri+ de , di!ensiones Matrices bidi(ensionales de - ! 2 Dde 3 di(ensionesE. @i( personas D, to -: , to 2E as string Si luego uisiera acceder a los datos de la (is(a basta con re$erirnos a los subAndices Por e
En este e'e!%lo crea!os $na !atri+ de - di!ensiones de - . - . @i( cubo D, to /: , to /: , to /E as integer
7
Para acceder a los datos serAa e!acta(ente de la (is(a (anera pero debe(os utilizar un Andice ()s.
cubo D/: / : ,E J 61 cubo D/: / : 3E J 61 cubo D/: / : /E J 61 n el e
VECTORES DIN/MICOS) Visual Basic posee una sentencia o $unci"n ue nos per(ite ca(biar el largo de un vector en tie(po de e
E'e!%lo de 0ectores y arreglos din!icos n lo siguiente: pri(ero declara(os un vector de la $or(a co(o lo ace(os sie(pre con la di$erencia de ue en vez de colocar un ta(año declara(os el vector solo con los paréntesis% @i( alu(nos DE as string >ora le establece(os un ta(año: por es String alu(nosD,E J K7ucianoK alu(nosD3E J KstebanK alu(nosD/E J KMarianoK alu(nosD5E J KPedroK 9
>ora para redi(ensionar el ta(año del vector por e
Nota) si utiliza(os la sentencia Re@i(: o (e
Eli!inar o 0aciar $n 0ector Para eli(inar un arra9: arreglo o vector: pode(os utilizar rase: por e
#UNCIONES DE VB 1ARA TRABA2AR CON ARRE(LOS stas $unciones son ideales para traba
LBOUND Y UBOUND Hos devuelve un nú(ero de tipo 7ong ue nos per(ite saber el lA(ite superior e in$erior de un vector o una (atriz.
E'e!%lo de U&o$nd y Bo$nd Si desea(os recorrer todos los ele(entos de un vector o una (atriz pode(os acerlo (ediante un bucle 4or de la siguiente (anera% 4or ! J 7BoundDvectorE Go UBoundDvectorE 10
MsgBo! vectorD!E He!t i
2OIN sta $unci"n devuelve en una cadena el contenido de un arra9: cada ele(ento del arra9 se inclu9e en esa cadena 9 se separa cada ele(ento con el separador indicado. l separador no se añade al $inal de la cadena: s"lo entre cada ele(ento. 7a $or(a de usar esta $unci"n es% &oinDlist: deli(iterQE d"nde% list% es un arra9 con los ele(entos ue uere(os Krra9DE >s String @i( i >s 7ong @i(ensiona(os el arra9 con cuatro ele(entos Dde 1 a /E Re@i( t>rra9D/E >signa(os valores al arra9
11
4or i J 1 Go / t>rra9DiE J Kle(entoOK T i He!t JJJ Para acer otras pruebas JJJ Separa cada palabra con el caracter indicado Ge!t, J &oinDt>rra9: KCKE Godas las palabras rra9: KKE 7as palabras se separan por un espacio: Dvalor por de$ectoE Ge!t, J &oinDt>rra9E nd Sub Si no se indica deli(itador% Ge!t, J &oinDt>rra9E: el contenido de Ge!t, ser)% le(entoO1 le(entoO, le(entoO3 le(entoO/ *ada ele(ento se separa con un espacio. Si se especi$ica un caracter co(o deli(itador% Ge!t, J &oinDt>rra9: KCKE: el contenido de Ge!t, ser)% le(entoO1Cle(entoO,Cle(entoO3Cle(entoO/ 4Arra9: KKE: el contenido de Ge!t, ser)% le(entoO1le(entoO,le(entoO3le(entoO/ s decir todos
12
S1LIT sta $unci"n es la inversa de &oin: es decir: to(a el contenido de una cadena 9 $or(a un arra9 con cada una de las palabras: Do serie de palabras separadas por un deli(itador dado: subcadena ue la lla(anE. 7a $or(a de usar esta $unci"n es% SplitDe!pression: deli(iter: count: co(pareQQQE d"nde% e!presion% es una cadena: o e!presi"n ue de co(o resultado una cadena: de la ue uere(os sacar los ele(entos. deli(iter% DopcionalE: es el separador ue le indicar) a la $unci"n co(o est)n separados los ele(entos por de$ecto es un espacio. Si el deli(itador es una cadena vacAa: se devolver) un arra9 con s"lo un ele(ento conteniendo toda la cadena. count% DopcionalE: el nú(ero de ele(entos ue se devolver) en el arra9: si no se indica o se usa +,: se devolver) cada subcadena en un ele(ento del arra9. Si este valor es (enor ue el nú(ero de subcadenas: en el últi(o ele(ento del arra9 se asignar) el resto de la cadena. co(pare% DopcionalE: el tipo de co(paraci"n ue se realizar) para evaluar el deli(itador dentro de la e!presi"n.
e'e!%lo) Desta $unci"n puede servir: entre otras cosas: para asignar a un arra9 los par)(etros de la lAnea de co(andosE Private Sub c(dSplitO*licDE @evolver una cadena con una serie de palabras de un arra9 @i( t>rra9DE >s String @i( sG(p >s String @i( i >s 7ong 13
>signa(os valores de prueba a una cadena sG(p J K8ola Mundo: esto es una prueba de Split en VB-K *rea(os un arra9: cada KsubstringK se asignar) a un ele(ento del arra9 t>rra9 J SplitDsG(pE >ora s"lo creare(os un arra9 de tres ele(entos t>rra9 J SplitDsG(p: : /E Ga(bién se puede usar para desglosar los par)(etros de la lAnea de co(andos $icero.t!t CB CSCI t>rra9 J SplitD*o((and: KCKE Mostra(os la in$or(aci"n 7ist3.*lear Si no conoce(os los Andices del arra9: usa(os 7Bound 9 UBound para ue nos lo indiue 4or i J 7BoundDt>rra9E Go UBoundDt>rra9E 7ist3.>ddIte( t>rra9DiE He!t nd Sub
#ILTER sta $unci"n devuelve un arra9 ue contiene los ele(entos de otro arra9: sie(pre ue coincida con el criterio de búsueda especi$icado. >(bos arra9s deben ser del tipo String DcadenaE 7a $or(a de usar esta $unci"n es% 4ilterDInputStrings: Value: Include: *o(pareQQE
14
d"nde% InputStrings% es un arra9 unidi(ensional del tipo cadena Value% la cadena a buscar en InputStrings Include% DopcionalE Si se uiere ue los ele(entos devueltos sean los ue inclu9en la cadena indicada en Value o no: el valor por de$ecto es Grue: es decir: ue se devuelvan las ue inclu9an esa cadena a buscar. *o(pare% DopcionalE: el tipo de co(paraci"n a realizar .
E'e!%lo) Private Sub c(d4ilterO*licDE 4iltra un arra9 con la cadena indicada 9 devuelve un arra9 @i( t>rra9,DE >s String @i( t>rra93DE >s String @i( i >s 7ong @i( s4ilter >s String @i( b!clude >s Boolean
7lenar un list con datos de e
.*lear .>ddIte( K'uiller(oK T vbGab T KHerddIte( KPepitoK T vbGab T KHerddIte( K&uanitoK T vbGab T KM)lagaK .>ddIte( K&ordiK T vbGab T KBarcelonaK .>ddIte( K'uiller(oK T vbGab T KBarcelonaK 15
.>ddIte( KPilarK T vbGab T KLaragozaK Re@i( t>rra9,D.7ist*ount + ,E 4or i J 1 Go .7ist*ount + , t>rra9,DiE J .7istDiE
He!t nd it
s4ilter J K'uilleK s4ilter J Ge!t6
Incluir en t>rra93 los ele(entos de t>rra9, ue tengan lo especi$icado en s4ilter: sin distinguir (a9úsculas de (inúsculas I$ *ec,.Value J vb*eced Gen
t>rra93 J 4ilterDt>rra9,: s4ilter: Grue: vbGe!t*o(pareE
lse
n esete caso se devuelven los ele(entos ue no lo tengan
t>rra93 J 4ilterDt>rra9,: s4ilter: 4alse: vbGe!t*o(pareE
nd I$
Ga(bién se puede acer asA% t>rra93 J 4ilterDt>rra9,: s4ilter: *ec,.Value: vbGe!t*o(pareE Mostrar los ele(entos obtenidos it 7ist/D,E
.*lear 4or i J 7BoundDt>rra93E Go UBoundDt>rra93E .>ddIte( t>rra93DiE
He!t
16
nd it nd Sub n este e
ARRE(LOS DE CONTROLES n Visual Basic -.1: las (atrices de controles se pueden utilizar para ad(inistrar los controles de un $or(ulario proporcionaban $unciones para co(partir controladores de eventos: recorrer en iteraci"n grupos de controles 9 agregar controles en tie(po de e
Co!%artir controladores de e0entos n Visual Basic -.1: se pueden usar (atrices de controles para especi$icar un grupo de controles ue co(partAan un con
e
es
posible
ue
uiera
agregar
dos
controles Button DButton, 9 Button3E 9 un control *ecBo! D*ecBo!,E a un
17
$or(ulario 9: a continuaci"n: crear un controlador de eventos a $in de controlar el evento *lic para los tres controles. Private Sub Mi!ed*ontrolsO*licDB9Val sender >s S9ste(.#bs S9ste(.vent>rgsE 8andles Button,.*lic: Button3.*lic: *ecBo!,.*lic
Recorrer controles en iteraci*n #tra caracterAstica de (atrices de controles de Visual Basic -.1 era la capacidad de recorrer en iteraci"n un grupo de controles (ediante la propiedad Inde!. Por e
en
contenedores
di$erentes.
Por
e
los
controles Ge!tBo! contenidos en dos controles 4ra(e di$erentes podAan $or(ar parte de la (is(a (atriz de control.
Agregar controles en tie!%o de e'ec$ci*n n Visual Basic -.1: los controles se podAa agregar a una (atriz de control en tie(po de e
Agregar controladores de e0entos en tie!%o de e'ec$ci*n n Visual Basic -.1: cuando se agregaba un control a una (atriz de control en tie(po de es S9ste(.#b
B9Val e >s S9ste(.vent>rgsE 8andles Ge!tBo!,.Ge!t*anged: O Ge!tBo!3.Ge!t*anged: Ge!tBo!/.Ge!t*anged Select *ase @irect*astDsender: Ge!tBo!E.Ha(e *ase Ge!tBo!,.Ha(e MsgBo!DKGe te!t in te $irst Ge!tBo! as cangedKE *ase Ge!tBo!3.Ha(e MsgBo!DKGe te!t in te second Ge!tBo! as cangedKE *ase Ge!tBo!/.Ha(e MsgBo!DKGe te!t in te tird Ge!tBo! as cangedKE nd Select nd Sub
19
CONCLUSIÓN
>l analizar toda la in$or(aci"n del trabade()s: conoci(os la $unci"n Redi(: ue nos sirve para agregar valores (anteniendo 9a los ue est)n presentes sin tener ue crear una nueva (atriz: esto nos sirve para no ocupar tanto espacio en la (e(oria de nuestro euipo.
20
BIBLIO(RA#3A
ttp%CCWWW.recursosvisualbasic.co( ttp%CCWWW.(undoprogra(acion.co(C ttp%CCuc9tprog.blogspot.co(C ttp%CCaprenderaprogra(ar.co(C
21