Vous êtes sur la page 1sur 8

| Jack ksoft | - Tcn nicas de progra amacin Leccin 014 v1.0 | Pg.

1 de 8

Tcn nicas de progra e amacin | Lecci n in 014 v1.0

Arra Bid ens nal A ay B dime sion I


| Por Jackso r oft |

El array bidimension se puede considerar como un vector de ve nal e r v ectores. Es, por consigu uiente un conjunto de eleme o entos, todos del mismo tipo, en el cual el orden de lo compone s o os entes es significativo y en el q se necesita especificar dos sub que ndice o ndices (filas y c columnas) pa poder ara ar mento del arr ray. identifica cada elem A contin nuacin cre earemos un array bidim mensional llamado Mat trix que contendr 3 filas y 5 f columna as. Creando la matriz llamada Matr de orden 3x5. Una matriz bidimensional pos o rix n m see filas y columnas c obligatoriamente. Ve la siguient imagen. er te Fila 1 Fila 2 Fila 3 Columna 1 Column 2 na Columna 3 Columna 4 Column 5 na

dimensionale empiezan por cero, es decir fila 0, columna 0. Para es n a a Los ndices de las matrices bid mayor detalle ver la siguiente tab bla Fila 1 Fila 2 Fila 3 Matrix[0,0] ] Matrix[1,0] ] Matrix[2,0] ] Columna 1 Nota: Explican que significada cada numero, po ejemplo: ndo or Matrix: Nombre de la matriz. tra x. er epresenta 1: Es el ndice de la fila de nuest matriz llamada Matrix Recuerde que el prime nmero re el ndice de la fila. e 2: Es el ndice de la columna de nuestra m a matriz llamada Matrix. Re ecuerde que el segundo nmero e o represen el ndice de la columna. nta Matrix[1,2] Matrix[0 0,1] Matrix[1,1] Matrix[2,1] Column 2 na Matr rix[0,2] Matr rix[1,2] Matr rix[2,2] Columna 3 Matrix[0,3] ] Matrix[1,3] ] Matrix[2,3] ] Columna 4 Matrix[0 0,4] Matrix[1,4] Matrix[2,4] Column 5 na

e-mail: jac cksoft@live.co om

http:// //jacksoft.word dpress.com

| Jack ksoft | - Tcn nicas de progra amacin Leccin 014 v1.0 | Pg. 2 de 8

Sintaxis de un array bidimensio s y onal:

Tipo_ _de_dato nom mbre_del_arr ray[Numero_ _de_Filas, Numero_de_Co N olumnas]

n mensional: Crear un array bidim Enter matrix(2, 3) ro Dim m matrix(1, 2) As Integer Esto es en pseudo s ocdigo. Asi ser en Visual Basic. ra

creado un ar rray bidimen nsioanl llama matrix (i ado identificado que cuen con dos filas(2) or) nta Hemos c y tres c columnas(3). El numero total de e o elementos se ern 6. Escribir elementos a un array b bidimensional (llenar) Entero matrix(2, 3) E matrix(0, 0) = 10 m matrix(0, 1) = 20 m matrix(0, 2) = 30 m matrix(1, 0) = 40 m matrix(1, 1) = 50 m matrix(1, 2) = 60 m Dim m matrix(1, matrix(0, m matrix(0, m matrix(0, m matrix(1, m matrix(1, m matrix(1, m 2) 0) 1) 2) 0) 1) 2) As Integer = 10 = 20 = 30 = 40 = 50 = 60 Esto es en pseudo s ocdigo.

Asi ser en Visual Basic ra

Toda la escritura ha sido de fo a orma manua ahora rea al, alizaremos e esta labor d forma au de utomtica (repetitiv para ello utilizaremos la instrucci for. va) s n Entero i, j, nume o ero Entero matrix(2, 3) o numero = 10 o Para i = 0 Hasta 1 Par j = 0 Has 2 ra sta matrix(i, j = numero j) numero += 1 10 Con ntinuar Contin nuar Dim i, j, numero As Integer Dim matri ix(1, 2) As Integer numero = 10 For i = 0 To matrix. .GetUpperBou und(0) For j = 0 To matr rix.GetUpper rBound(1) matrix(i, j) = numero numero += 10 Next Next

En mem moria esto seria represent tado de la siguiente form ma: 20 10 30 40 50 60

En la pri imera fila:


En la po osicin (ndic 0,0 se en ce) ncuentra el v valor 10, en la posicin ( (ndice) 0,1 s encuentra el valor se a de 20, en la posicin (ndice) 0,2 se encuent el valor de 30. n 2 tra e

En la seg egunda fila:


En la po osicin (ndic 1,0 se encuentra el valor de 40, en la posic ce) cin (ndice) 1,1 se encuentra el valor de 50, y en la p posicin (ndice) 1,2 se e encuentra el valor de 60.

e-mail: jac cksoft@live.co om

http:// //jacksoft.word dpress.com

| Jack ksoft | - Tcn nicas de progra amacin Leccin 014 v1.0 | Pg. 3 de 8

Sabiendo que una m matriz bidime ensional posee filas y co olumnas, entonces ser n necesario ut tilizar dos encargara de recorrer lo ndices q e os que correspo onde a las filas y el bucles, el primer bucle (i) se e segundo bucle (j) se encargara d recorrer la columnas. o de as Nota: rBound(0): E Este mtodo obtiene el lmite superio de la fila d un array b o or de bidimensiona al. GetUpper GetUpper rBound(1): E Este mtodo obtiene el lmite superio de la columna de un a o or array bidimensional.

s iz ional Leer los elementos a una matri bidimensi Para i = 0 Hasta 1 a Par j = 0 Hasta 2 ra atrix(i, j) Imprimir ma Con ntinuar Continuar For i = 0 To matrix. .GetUpperBou und(0) For j = 0 To matr rix.GetUpper rBound(1) lstvector.Item ms.Add(matri ix(i, j)) Next Next

Para lee cada uno elemento de la matriz haremos uso de la in er z u nstruccin f for, para tal objetivo utilizarem dos buc mos cles, el primer bucle (i) se encargara de recorre los ndice que corres ) er es sponde a las filas y el segundo bucle (j) s encargara de recorrer las columna o se a as. De acue erdo a los va alores que va ayan obtenie endo las variables i y j (que usan lo bucles fo se irn os or) obtenien los valor de los ele ndo res ementos de la matriz. Donde: lstvector Es el nombr asignado a control Lis re al stBox (caja d lista). de

Mos strando todo el pseudoc o cdigo y el cdigo en V c Visual Basic 2005 Enter i, j, num ro mero Enter matrix(2, 3) ro , numer = 10 ro Para i = 0 Hasta 1 a Pa j = 0 Ha ara asta 2 matrix(i, j) = numero o numero += 10 Co ontinuar Conti inuar Para i = 0 Hasta 1 a Pa j = 0 Ha ara asta 2 Imprimir m matrix(i, j) ) Co ontinuar Conti inuar Dim i, j, numero As Integer s Dim matrix(1, 2) As Integer s numero = 10 For i = 0 To matrix x.GetUpperBo ound(0) For j = 0 To matrix.GetUppe erBound(1) mat trix(i, j) = numero num mero += 10 Next Next For i = 0 To matrix x.GetUpperBo ound(0) For j = 0 To matrix.GetUppe erBound(1) lst tvector.Item ms.Add(matr rix(i, j)) Next Next

e-mail: jac cksoft@live.co om

http:// //jacksoft.word dpress.com

| Jack ksoft | - Tcn nicas de progra amacin Leccin 014 v1.0 | Pg. 4 de 8

EJERCIC CIOS DE ARR RAY BIDIME ENSIONAL O MATRIZ 1. Se pide crea una matriz que almac ar cene en una fila 3 nombres de varones y en otra fila 3 a o nombres de mujeres. Pseudoc digo Entero i, j, numero Cadena matr C rix(2, 3), n nombre Para i = 0 Hasta 1 Para j = 0 Hasta 2 Si i = 0 Entonces Leer nombre va r aron Sino Leer nombre mu r ujer Fin_si matrix( (i, j) = nom mbre Continuar Continuar C Para i = 0 Hasta 1 Para j = 0 Hasta 2 Imprimi matrix(i, j) ir , Continuar Continuar C cacin en Visual Basic 2 2005 Codific Dim i, j As Integer D s Dim matrix(1, 2), nomb D bre As Strin ng For i = 0 T matrix.Ge To etUpperBound d(0) For j = 0 To matri ix.GetUpperB Bound(1) If i = 0 Then nombre = I InputBox("No ombre de Var ron", "Nomb bre") Els se nombre = I InputBox("No ombre de Mujer", "Nomb bre") End If d mat trix(i, j) = nombre Next Next N For i = 0 T matrix.Ge To etUpperBound d(0) For j = 0 To matri ix.GetUpperB Bound(1) lst tarray.Items s.Add(matrix x(i, j)) Next Next N 2. Se pide cre una matr que alma ear riz acene los nombres y apellidos de tres alumno En la os. primera fila se almace enaran los nombres y en la seg gunda fila s almacena se aran sus respectivos apellidos. Pseudoc digo Entero i, j Cadena matr C rix(2, 3), a alumno, mezc cla mezcla = m Para i = 0 Hasta 1 Para j = 0 Hasta 2 Si i = 0 Entonces Leer alumno no r ombre Sino
e-mail: jac cksoft@live.co om http:// //jacksoft.word dpress.com

| Jack ksoft | - Tcn nicas de progra amacin Leccin 014 v1.0 | Pg. 5 de 8

Leer alumno ap r pellido Fin_si matrix( (i, j) = alu umno Continuar Continuar C Para i = 0 Hasta 1 Para j = 0 Hasta 2 mezcla += matrix(i j) i, Continuar Imprimir m mezcla mezcla = Continuar C cacin en Visual Basic 2 2005 Codific Dim i, j As Integer D s Dim matrix(1, 2), alum D mno, mezcla As String mezcla = No m othing For i = 0 T matrix.Ge To etUpperBound d(0) For j = 0 To matri ix.GetUpperB Bound(1) If i = 0 Then alumno = I InputBox("Es scriba el No ombre", "Alumno") Els se alumno = I InputBox("Es scriba el ap pellido", "Alumno") End If d mat trix(i, j) = alumno Next Next N For i = 0 T matrix.Ge To etUpperBound d(0) For j = 0 To matri ix.GetUpperB Bound(1) mez zcla += matr rix(i, j) & vbTab Next lstarra ay.Items.Add d(mezcla) mezcla = Nothing Next N 3. Crear una m matriz de orden 3 x 3, lle enar dicha matriz con nmeros enter y luego visualizar m ros las siguiente sumas de sus elemen es ntos. a. a Sumar s solo los elem mentos de la primera fila. b. Sumar s solo los elem mentos de la primera colu umna. c. Sumar s solo los elem mentos de la diagonal em mpezando por el ndice 0, 0. , Pseudoc digo Entero matr rix(3, 3), i j, numer i, ro, sumaA, sumaB, sum maC Cadena mezc C cla mezcla = m Para i = 0 Hasta 2 Para j = 0 Hasta 2 Leer nu umero matrix( (i, j) = num mero Continuar Continuar C Para i = 0 Hasta 2 Para j = 0 Hasta 2 mezcla += matrix(i j) i, Continuar Imprimir m mezcla mezcla = Continuar C
e-mail: jac cksoft@live.co om http:// //jacksoft.word dpress.com

| Jack ksoft | - Tcn nicas de progra amacin Leccin 014 v1.0 | Pg. 6 de 8

Para i = 0 Hasta 2 Para j = 0 Hasta 2 Si i = 0 Entonces suma += matrix aA x(i, j) Fin_si Continuar Continuar C Imprimir su umaA Para i = 0 Hasta 2 Para j = 0 Hasta 2 Si j = 0 Entonces suma += matrix aB x(i, j) Fin_si Continuar Continuar C Imprimir su umaB Para i = 0 Hasta 2 Para j = 0 Hasta 2 Si i = j Entonces suma += matrix aC x(i, j) Fin_si Continuar Continuar C Imprimir su umaC cacin en Visual Basic 2 2005 Codific Dim matrix(2, 2), i, j numero, s D j, sumaA, sumaB sumaC As Integer B, Dim mezcla As String D mezcla = No m othing For i = 0 T matrix.Ge To etUpperBound d(0) For j = 0 To matri ix.GetUpperB Bound(1) num mero = CType e(InputBox(" "Escriba un numero", "Numero"), I Integer) mat trix(i, j) = numero Next Next N For i = 0 T matrix.Ge To etUpperBound d(0) For j = 0 To matri ix.GetUpperB Bound(1) mez zcla += matr rix(i, j) & vbTab Next lstarra ay.Items.Add d(mezcla) mezcla = Nothing Next N ' A. Sumand la primer fila do ra For i = 0 T matrix.Ge To etUpperBound d(0) For j = 0 To matri ix.GetUpperB Bound(1) If i = 0 Then sumaA += m matrix(i, j) ) End If d Next Next N lstarray.It tems.Add("Su uma A: " & s sumaA) ' B. Sumand la primer columna do ra For i = 0 T matrix.Ge To etUpperBound d(0) For j = 0 To matri ix.GetUpperB Bound(1) If j = 0 Then sumaB += m matrix(i, j) )
e-mail: jac cksoft@live.co om http:// //jacksoft.word dpress.com

| Jack ksoft | - Tcn nicas de progra amacin Leccin 014 v1.0 | Pg. 7 de 8

End If d Next Next N lstarray.It tems.Add("Su uma B: " & s sumaB) ' C. Sumand la diagon do nal For i = 0 T matrix.Ge To etUpperBound d(0) For j = 0 To matri ix.GetUpperB Bound(1) If i = j Then sumaC += m matrix(i, j) ) End If d Next Next N lstarray.It tems.Add("Su uma C: " & s sumaC) 4. Crear una m matriz de ord den 3 x 3, ll lenar dicha matriz con c ceros y unos segn la siguiente imagen. digo Pseudocd rix(3, 3), i j i, Entero matr Cadena mezc C cla mezcla = m Para i = 0 Hasta 2 Para j = 0 Hasta 2 Si i = 0 Entonces matr rix(i, j) = 1 else matr rix(i, j) = 1 Fin_si Continuar Continuar C Para i = 0 Hasta 2 Para j = 0 Hasta 2 mezcla += matrix(i j) i, Continuar Imprimir m mezcla mezcla = Continuar C cacin en Visual Basic 2 2005 Codific Dim matrix(2, 2), i, j As Integer D r Dim mezcla As String D mezcla = No m othing For i = 0 T matrix.Ge To etUpperBound d(0) For j = 0 To matri ix.GetUpperB Bound(1) If i = 0 Then matrix(i, j) = 1 Els se matrix(i, j) = 0 End If d Next Next N For i = 0 T matrix.Ge To etUpperBound d(0) For j = 0 To matri ix.GetUpperB Bound(1) mez zcla += matr rix(i, j) & vbTab Next lstarra ay.Items.Add d(mezcla) mezcla = Nothing
e-mail: jac cksoft@live.co om http:// //jacksoft.word dpress.com

| Jack ksoft | - Tcn nicas de progra amacin Leccin 014 v1.0 | Pg. 8 de 8

Next N matriz de ord den 5 x 5, ll lenar dicha matriz con c ceros y unos segn la siguiente 5. Crear una m imagen.

matriz de ord den 5 x 5, ll lenar dicha matriz con c ceros y unos segn la siguiente 6. Crear una m imagen.

7. Crear una m matriz de ord den 5 x 5, ll lenar dicha matriz con c ceros y unos segn la siguiente imagen.

matriz de ord den 5 x 5, ll lenar dicha matriz con c ceros y unos segn la siguiente 8. Crear una m imagen.

ADVERTENCIA!!! A El present documento h sido escrito con fines educa te ha acionales e inve estigacin, pudiendo ser librem mente distribuid siempre do y cuando se mantenga i o intacto el conte enido y se recon nozca la autora del mismo a: J Jacksoft Los nombres y/o m s marcas de productos utilizados en este docum s mento son mencionados nicamente con fine de es identific cacin y son pro opiedad de sus respectivos cre eadores.

--- El autor pu -| uede ser con ntactado en |--e-mail: jacksoft@ @msn.com jacksoft@ @live.com

e-mail: jac cksoft@live.co om

http:// //jacksoft.word dpress.com

Vous aimerez peut-être aussi