8/15/2019 Arreglos Bidimensionales Otg (2)
1/23
ARREGLOSBIDIMENSIONALES
8/15/2019 Arreglos Bidimensionales Otg (2)
2/23
Arreglo bidimensionalEs un conjunto de datos homogéneo !nito" ordenado donde se hace re#erencia a
cada elemento $or medio de dos %ndices&
El $rimero se utili'a $ara los renglones(!las) " el segundo $ara las columnas&
8/15/2019 Arreglos Bidimensionales Otg (2)
3/23
CONCEPTOS BÁSICOS*na matriz es un arreglo de + dimensiones&
Declaración:int notas,-.,/0.1 Arra" bidimensional de - 2/0
enteros (matriz)3oat $lan,4.,+.,5.1 Arra" tridimensional de
42+25 reales (cubo)
8/15/2019 Arreglos Bidimensionales Otg (2)
4/23
MATRICES
Arreglos bi-dimensionales en C
Ejemplo:
Matriz M(3,3) =
_ _ | 1 2 3 || 4 5 6 || 7 8 9 |- -
M M(,)
M(,1)
M(,2)
1
2
3
!"#i$e %ila&
4
5
6
7
8
9
M(1,1)
M(2,1)
!"#i$e $ol'm""a&
En C++:
int M33*M = 1*M1 = 2*M2 = 3*M1 = 4*
M11 = 5*M12 = 6*M2 = 7*M21 = 8*M22 = 9*
cout
8/15/2019 Arreglos Bidimensionales Otg (2)
5/23
8/15/2019 Arreglos Bidimensionales Otg (2)
6/23
8/15/2019 Arreglos Bidimensionales Otg (2)
7/23
Pseudocódigo (recorrido !las"6onst
M89alor/
N8 9alor+ :i$o Arra",/&&M/&&N. de real;matri'
8/15/2019 Arreglos Bidimensionales Otg (2)
8/23
Pseudocódigo (recorrido columnas"El recorrido $or columnas se hace de manerasimilar in9irtiendo el sentido de los %ndices&
Desde j 8 / hasta N hacer Desde i 8 / hasta M hacer Escribir (A,ij.)
=in>desde=in>desde
8/15/2019 Arreglos Bidimensionales Otg (2)
9/23
E#em$lo 0/?include @iostreamusing names$ace std1main()
int i C m n 1 int A,/00.,/00.1 cout@@ ingresar el 9alor de m;1 cin m1 cout@@ ingresar el 9alor de n;1 cin n1 cout@@Ingresar com$onentes@@endl1
#or ( i 8 /1 i @8 m1 i ) #or ( C 8 /1 C @8 n1 C ) cin A,i.,C.1 F cout@@Mostrar com$onentes@@endl1 #or ( i 8 /1 i @8 m1 i )
#or ( C 8 /1 C @8 n1 C ) cout@@ A,i.,C.@@ 1 cout@@endl1F return 01F
8/15/2019 Arreglos Bidimensionales Otg (2)
10/23
%&&E'OS BIDI)ENSION%ES:OPE&%CIONES BÁSIC%S CON )%T&ICES
%cciones &esultadosngreso #or(i8o1i@n1i)
#or(j801j@n1j) cout@@HM,H@@i@@H.@@H,H@@j@@H.;1 cinmatri',i.,j.1 F F
Escritura #or(i8o1i@n1i) #or(j801j@n1j)
cout@@HM,H@@i@@H.@@H,H@@j@@H.;@@matri',i.,j.1
F F
Suma #or(i8o1i@n1i) #or(j801j@n1j) c,i.,j. 8 a,i.,j. b,i.,j.1 F F
Jroductoescalar
#or(i8o1i@n1i) #or(j801j@n1j)
c,i.,j. 8 a,i.,j. K numero F F
8/15/2019 Arreglos Bidimensionales Otg (2)
11/23
) TODOS DE B S,-ED% DE D%TOSEN )%T&ICES: B+S,-ED%SEC-ENCI%
8/15/2019 Arreglos Bidimensionales Otg (2)
12/23
?include @iostreamusing names$ace std1main ()
int $os#$osc1int a,50.,50.nij#c1cout@@INGRESAR EL N*MERO
DE =ILAS DE LA MA:RI; 1cin#1cout@@endl1cout@@INGRESAR EL N*MERO
DE 6OL*MNAS DE LA MA:RI; 1cinc1cout@@endl1#or(i801i@#1i)
#or(j801j@c1j)cout@@Ingresar
elemento M,@@i/@@j/@@.; 1cin a,i.,j.1cout@@endl1
FF
$o't++./0E0 EEME. 0 E. E 00: *$i";*$o't++e"#l*%or(i=*i+%*i
8/15/2019 Arreglos Bidimensionales Otg (2)
13/23
8/15/2019 Arreglos Bidimensionales Otg (2)
14/23
&amo& la e&tr'$t'ra Aor! para a$$e#er lo& eleme"to& #e la matriz
"deine BM1 3"deine BM2 3#
int i, j, C*int MBM1BM2 = 1,2,3,4,5,6,7,8,9?* Di"i$ializa la matriz M D
C=1*or ( i=* i+BM1* i
8/15/2019 Arreglos Bidimensionales Otg (2)
15/23
$roblema: E&$ri@a '" proGrama H'e lea '"a matriz $'a#ra#a, la
pre&e"te e" pa"talla, I "o& e&$ri@a la &'ma #e to#o& lo& "Jmero& H'e"o e&tK" e" la #iaGo"al
"include +io&tream&i"G "ame&pa$e &t#*"deine L 3deine M 3 mai"() D Be$lara$io" #e Naria@le& D int MLM D E.0B &e G'ar#a e" arreGlo #e 2 #ime"&io"
int i, j, &'ma*
D le$t'ra por %ila&, la matriz e& $'a#ra#a D or ( i=* i+L* i
8/15/2019 Arreglos Bidimensionales Otg (2)
16/23
D e&$rit'ra por %ila&, la matriz e& $'a#ra#a D or ( i=* i+L* i
8/15/2019 Arreglos Bidimensionales Otg (2)
17/23
MATRICES
Arreglos multi-dimensionales en C
%eclarar un arreglo multidimensional en C:
tipo "om@re-arreGlo#im-1#im-2P#im-"* &so del or para acceder a sus elementos:
int "om@re-arreGlo#im-1#im-2P#im-"*
or ( i=* i+#im-1* i
8/15/2019 Arreglos Bidimensionales Otg (2)
18/23
E#ercicioeer lo& #ato& #e '"a matriz 3 ; 4, #e"omi"a#aMatriz, I mo&trar la &'ma #e lo& #ato& #e $a#a %ila
8/15/2019 Arreglos Bidimensionales Otg (2)
19/23
i"$l'#e +io&tream'&i"G "ame&pa$e &t#*i"t mai"()i"t matriz34*i"t arreGlo3*i"t i,j*DD"Gre&o #e lo& #ato&%or (i=*i+3*i
8/15/2019 Arreglos Bidimensionales Otg (2)
20/23
E#ercicio
8/15/2019 Arreglos Bidimensionales Otg (2)
21/23
Caso $ara resol.er en gru$oEl #'eRo #e '"a $a#e"a #e tie"#a& #e artS$'lo&#eportiNo& #e&ea $o"trolar &'& Ne"ta& por me#io #e '"a$omp'ta#ora T o& #ato& #e e"tra#a &o" :a) El "'mero #e la tie"#a (1 a 1)
@) " "'mero H'e i"#i$a el #eporte #el arti$'lo (1 a 2)$) El $o&to #el arti$'loTUa$er '" proGrama H'e e&$ri@a al %i"al #el #Sa lo&iG'ie"te1T a& Ne"ta& totale& e" el #Sa para $a#a tie"#a2Ta& Ne"ta& totale& para $a#a '"o #e lo& #eporte&T3T a& maIor Ne"ta #e to#a& la& tie"#a I a H'e #eporteperte"e$eT
8/15/2019 Arreglos Bidimensionales Otg (2)
22/23
CA%E(AS) como arreglos de caracteres
c*ar $a#e"a5*
$a#e"a1 = AUF*$a#e"a2 = AoF*$a#e"a3 = AlF*$a#e"a4 = AaF*$a#e"a5 = AQF*
#i%ere"$ia #e otro& le"G'aje& #e proGrama$i>" H'e emplea" '" tipo#e"omi"a#o $a#e"a string para ma"ip'lar '" $o"j'"to #e &Sm@olo&, e"
, &e #e@e &im'lar me#ia"te '" arreGlo #e $ara$tere&, e" #o"#e latermi"a$i>" #e la $a#e"a &e #e@e i"#i$ar $o" "'loT
" "'lo &e e&pe$i%i$a $omo '\0' T Vor lo a"terior, $'a"#o &e #e$lare '"arreGlo #e $ara$tere& &e #e@e $o"&i#erar '" $arK$ter a#i$io"al a la
$a#e"a mK& larGa H'e &e NaIa a G'ar#arT
cadena
o
l
a
,
8/15/2019 Arreglos Bidimensionales Otg (2)
23/23
CA%E(AS) como arreglos de caracteres
l i"i$ializar arreGlo& #e $ara$tere& al mome"to #e #e$lararlo& a'tomKti$ame"te a&iG"a el $arK$ter "'lo al %i"al #e la $a#e"a
c*ar "om@re_arr 7 = $a#e"a* c*ar ejemplo7*
E& eH'iNale"te a:
"om@re_arr = A$F*
"om@re_arr 1 = AaF*"om@re_arr 2 = A#F*"om@re_arr 3 = AeF*"om@re_arr 4 = A"F*"om@re_arr 5 = AaF*
"om@re_arr 6 = AQF*
i" em@arGo, . E VEBE /.0 '"a $a#e"a a '" arreGlo
"om@re-arr = WB_EX* D E000 Dejemplo = "om@re-arr* D E000 Di (op$io" == W&iX) D E000 D