14
Bài 11 Mng Mc tiêu:  Kết thúc bài hc này , bn có th: Hiu được các phn tca mng và các chsmng Khai báo mt mng Hiu cách qun ! mng t"ong # Hiu mt mng được $h%i t&o như th' nào Hiu mng chu(i) $! t* Hiu mng hai chi+u Hiu cách $h%i t&o mng nhi+u chi+u, Gii thiu: #- thb&n s. g/p $h- $h0n $hi ưu t"1 mt t2p hp các phn t31 i4u ging nhau t"ong các bi'n $hác nhau, 56 378 đim cho t9t c:: cu thca mt đội b-ng đá phi được ghi nh2n t"ong mt t"2n đ9u, ;* ưu t"1 đim ca m(i cu tht"ong các bi'n c- t<n $hác nhau th= ch>c ch>n phi+n hà h?n 3@ng mt bi'n chung cho chAng, 5Bi mng mCi vi4c s. được th*c hi4n đ?n gin h?n, Dt mng à mt t2p hp các phn t31 i4u c- c@ng $iu, D(i phn tđược ưu t"1 % các vE t"6 $' ti'p nhau t"ong bnhB ch6nh, Fh1ng phn tnàG được gCi à phn tmng, 11.1 Các phn tmng và các chmc: D(i phn tca mng được đEnh 3anh bng mt chmc ho/c chsgán cho n-, Chiu ca mng được Iác đEnh bng schscn thi't để đEnh 3anh 3uG nh9t m(i phn t , Dt chs à mt snguG<n 3ư?ng được bao bng 39u ngo/c vuJng ! đ/t ngaG sau t<n mng8 $hJng c- $hong t">ng % gi1a, Dt chs cha các giá t"E nguG<n b>t đầu bng L, 5= v2G8 mt mng p"#$%& vBi :: phn tđược  biu 3iMn như sauN player[0], player[1], player[2], ... , player[10].  Fhư đO th9G 8 phn tmng b>t đầu vBi paGP"QLR8 và v= v2G phn tcui c@ng à paGP"Q:LR $hJng phi à paGP"Q::R, Si+u nàG à 3o b%i t"ong #8 chsmng b>t đầu tT LU 3o đ- t"ong mng ' phn t8 phn tcui c@ng c- chsà '(1, Vh&m vi cho phWp ca các giá t"E chsđược gCi à min gii h)n ca chsmng8 giBi h&n *+i và giBi h&n t&ên, Dt chsmng hp 4 phi c- mt giá t"E nguG<n nm t"ong ni+m giBi h&n, Xhu2t ng1 h,p " được s37ng cho mt nguG<n nhYn "9t đ/c t"ưng, X"ong #8 n'u ngưZi 3@ng cg>ng t"uG Iu9t mt phn tnm ngoài 3OG chshp 4 [như paGP"Q::R t"ong v6 37 t"<n ca mng\8 t"=nh bi<n 3Ech # s. $hJng phát sinh "a (i, XuG nhi<n8 c- thn- t"uG Iu9t mt giá t"E nào đ- 3]n đ'n $'t qu$hJng đoán được, #^ng c- nguG c? vi't ch_ng <n 31 i4u ho/c mO 4nh chư?ng t"=nh, 5= v2G8 ngưZi 2p t"=nh phi đảm bo "ng t9t ccác chsà nm t"ong mi+n giBi h&n hp 4, -h#i á/ m0t mng: Dt mng c- mt vài đ/c t6nh "i<ng bi4t và phi được $hai báo $hi s37ng chAng, Fh1ng đ/c t6nh nàG bao g_mN p "+u t&2  -i3u *2 "iu ca các phn tmng, 4ên mng ` Iác đEnh vE t"6 phn tđầu ti<n ca mng, -5ch th+c mng  mt hng sc- giá t"E nguG<n 3ư?ng, Dng :

Session 11 - Concept.doc

Embed Size (px)

Citation preview

7/17/2019 Session 11 - Concept.doc

http://slidepdf.com/reader/full/session-11-conceptdoc 1/14

Bài 11 Mảng

Mục tiêu:

 Kết thúc bài học này, bạn có thể:

Hiểu được các phần tử của mảng và các chỉ số mảng Khai báo một mảng Hiểu cách quản ! mảng t"ong # Hiểu một mảng được $h%i t&o như th' nào Hiểu mảng chu(i) $! t* Hiểu mảng hai chi+u Hiểu cách $h%i t&o mảng nhi+u chi+u,

Giới thiệu:

#- thể b&n s. g/p $h- $h0n $hi ưu t"1 một t2p hợp các phần tử 31 i4u giống nhau t"ong các bi'n$hác nhau, 56 378 điểm cho t9t cả :: cầu thủ của một đội b-ng đá phải được ghi nh2n t"ong một t"2nđ9u, ;* ưu t"1 điểm của m(i cầu thủ t"ong các bi'n c- t<n $hác nhau th= ch>c ch>n phi+n hà h?n 3@ngmột bi'n chung cho chAng, 5Bi mảng mCi vi4c s. được th*c hi4n đ?n giản h?n, Dột mảng à một t2phợp các phần tử 31 i4u c- c@ng $iểu, D(i phần tử được ưu t"1 % các vE t"6 $' ti'p nhau t"ong bộ nhB ch6nh, Fh1ng phần tử nàG được gCi à phần tử mảng,

11.1 Các phần tử mảng và các chỉ mục:

D(i phần tử của mảng được đEnh 3anh bng một chỉ mục ho/c chỉ số gán cho n-, Chiều của mảngđược Iác đEnh bng số chỉ số cần thi't để đEnh 3anh 3uG nh9t m(i phần tử, Dột chỉ số à một số

nguG<n 3ư?ng được bao bng 39u ngo/c vuJng ! đ/t ngaG sau t<n mảng8 $hJng c- $hoảng t">ng % gi1a, Dột chỉ số cha các giá t"E nguG<n b>t đầu bng L, 5= v2G8 một mảng p"#$%& vBi :: phần tử được biểu 3iMn như sauN

player[0], player[1], player[2], ... , player[10].

 Fhư đO th9G8 phần tử mảng b>t đầu vBi paGP"QLR8 và v= v2G phần tử cuối c@ng à paGP"Q:LR $hJng phảià paGP"Q::R, Si+u nàG à 3o b%i t"ong #8 chỉ số mảng b>t đầu tT LU 3o đ- t"ong mảng ' phần tử8 phầntử cuối c@ng c- chỉ số à '(1, Vh&m vi cho phWp của các giá t"E chỉ số được gCi à miền giới h)n củachỉ số mảng8 giBi h&n *+ới và giBi h&n t&ên, Dột chỉ số mảng hợp 4 phải c- một giá t"E nguG<n nmt"ong ni+m giBi h&n, Xhu2t ng1 h,p "ệ được sử 37ng cho một nguG<n nhYn "9t đ/c t"ưng, X"ong #8 n'ungưZi 3@ng cố g>ng t"uG Iu9t một phần tử nm ngoài 3OG chỉ số hợp 4 [như paGP"Q::R t"ong v6 37

t"<n của mảng\8 t"=nh bi<n 3Ech # s. $hJng phát sinh "a (i, XuG nhi<n8 c- thể n- t"uG Iu9t một giá t"Enào đ- 3]n đ'n $'t quả $hJng đoán được, #^ng c- nguG c? vi't ch_ng <n 31 i4u ho/c mO 4nhchư?ng t"=nh, 5= v2G8 ngưZi 2p t"=nh phải đảm bảo "ng t9t cả các chỉ số à nm t"ong mi+n giBi h&nhợp 4,

-h#i á/ m0t mảng:

Dột mảng c- một vài đ/c t6nh "i<ng bi4t và phải được $hai báo $hi sử 37ng chAng, Fh1ng đ/c t6nhnàG bao g_mN ớp "+u t&2  -i3u *2 "iệu của các phần tử mảng, 4ên mảng ` Iác đEnh vE t"6 phần tử đầu ti<n của mảng, -5ch th+ớc mảng  một hng số c- giá t"E nguG<n 3ư?ng,

Dảng :

7/17/2019 Session 11 - Concept.doc

http://slidepdf.com/reader/full/session-11-conceptdoc 2/14

Dột mảng được $hai báo giống như cách $hai báo một bi'n8 ngo&i t"T t<n mảng được thPo sau b%i mộtho/c nhi+u biểu thc8 được đ/t t"ong 39u ngo/c vuJng QR Iác đEnh chi+u 3ài của mảng, #A pháp tngquát $hai báo một mảng như sauN

lớp_lưu_trữ kiểu_dữ_liệu tên_mảng[ biểu_thức_kích_thước]

d đYG8 i3u6th7c685ch6th+ớc à một biểu thc Iác đEnh số phần tử t"ong mảng và phải đEnh "a mộtt"E ngu$ên *+9ng, eBpfưuft"1 à một t@G chCn, D/c đEnh Bp #ut/m#tic được 3@ng cho mảng $hai

 báo b<n t"ong một hàm ho/c một $hối 4nh8 và Bp %t%&n#" được 3@ng cho mảng $hai báo b<n ngoàimột hàm, 5= v2G mảng p"#$%& được $hai báo như sauN

int player[11];

 F<n nhB "ng8 t"ong $hi $hai báo mảng8 $6ch thưBc của mảng s. à ::8 tuG nhi<n các chỉ số của tTng phần tử b<n t"ong mảng s. à tT L đ'n :L,

#ác qui t>c đ/t t<n mảng à giống vBi qui t>c đ/t t<n bi'n, Dột tên mảng và một tên i;n $hJng được

giống nhau8 n- 3]n đ'n s* nh2p nhng, F'u một s* $hai báo như v2G Iu9t hi4n t"ong chư?ng t"=nh8t"=nh bi<n 3Ech s. hiển thE thJng báo (i,

M0t vài <ui t=c với mảng:• X9t cả các phần tử của một mảng c- c@ng $iểu, Si+u nàG c- ngha à8 n'u một mảng được $hai

 báo $iểu int8 n- $hJng thể cha các phần tử c- $iểu $hác,• D(i phần tử của mảng c- thể được sử 37ng b9t c n?i nào mà một bi'n được cho phWp haG

được G<u cầu,• Dột phần tử của mảng c- thể được tham chi'u đ'n bng cách sử 37ng một bi'n ho/c một biểu

thc nguG<n, ;au đYG à các tham chi'u hợp 4N

player[i]; !" #$ i l% m&t 'i(n, tuy n)iên *+n p)ải *) - rngi nm tr/ng min giới )n *a *)3 45 #6 #ư7* k)ai'8/ *)/ mảng player!

player[9] : player[2] <;player[0] : 2;player[i 2 1];

• Kiểu 31 i4u của mảng c- thể à int8 ch#&8 >"/#t8 ho/c */u"%,

11.? @iệc <uản "A mảng t&/ng C:

Dột mảng được đối Iử $hác vBi một bi'n t"ong #, Xh2m ch6 hai mảng c- c@ng $iểu và $6ch thưBc

c^ng $hJng thể tư?ng đư?ng nhau, H?n n1a8 $hJng thể gán một mảng t"*c ti'p cho một mảng $hác,XhaG v= th'8 m(i phần tử mảng phải được gán "i<ng j tư?ng ng vBi tTng phần tử của mảng $hác, #ácgiá t"E $hJng thể được gán cho toàn bộ một mảng8 ngo&i t"T t&i thZi điểm $h%i t&o, XuG nhi<n8 tTng

 phần tử $hJng chỉ c- thể được gán t"E mà ckn c- thể được so sánh,

int player1[11], player2[11];=/r >i : 0; i ? 11; i@

player1[i] : player2[i];

Xư?ng t*8 c^ng c- thể c- $'t quả như v2G bng vi4c sử 37ng các 4nh gán "i<ng j như sauN

player1[0] : player2[0];

player1[1] : player2[1];...

:l e2p t"=nh c? bản #

7/17/2019 Session 11 - Concept.doc

http://slidepdf.com/reader/full/session-11-conceptdoc 3/14

player1[10] : player2[10];

#9u t"Ac >/& à cách ! tư%ng để thao tác các mảng,

@5 *ụ 11.1:

! Ar/gram dem/n4trate4 a 4ingle dimen4i/nal array !Bin*lude ?4tdi/.)CD/id main>@E int num[<];

int i;num[0] : 10;num[1] : F0;num[2] : G0;num[9] : H0;num[H] : <0;=/r >i : 0; i ? <; i@

pirnt=>IJn Kum'er at [Ld] i4 LdM, i, num[i]@;N

K't quả của chư?ng t"=nh được t"=nh bàG b<n 3ưBiN

Kum'er at [0] i4 10Kum'er at [1] i4 F0Kum'er at [2] i4 G0Kum'er at [9] i4 H0Kum'er at [H] i4 <0

56 37 b<n 3ưBi nh2p các giá t"E vào một mảng c- $6ch thưBc :L phần tử8 hiển thE giá t"E Bn nh9t và giá

t"E t"ung b=nh,

@5 *ụ 11.?:

!Onput Dalue4 are a**epted =r/m t)e u4er int/ t)e arrayary[10]!Bin*lude ?4tdi/.)CD/id main>@E

int ary[10];int i, t/tal, )ig);=/r >i : 0; i ? 10; i@E

print=>IJnPnter DalueQ LdQ I, i 1@;4*an=>ILdM, Rary[i]@;

N

! Si4play4 )ig)e4t /= t)e entered Dalue4 !)ig) : ary[0];=/r >i : 1; i ? 10; i@E

i= >ary[i] C )ig)@)ig) : ary[i];

Nprint=>IJn Tig)e4t Dalue entered Ua4 LdM, )ig)@;

! Arint4 aDerage /= Dalue entered =/r ary[10] !

Dảng :

7/17/2019 Session 11 - Concept.doc

http://slidepdf.com/reader/full/session-11-conceptdoc 4/14

=/r >i : 0, t/tal : 0; i ? 10; i@t/tal : t/tal ary[i];

print=>IJnV)e aDerage /= t)e element /= ary i4 LdM, t/tali@;N

Dột v6 37 v+ $'t quả được t"=nh bàG 3ưBi đYGNPnter DalueQ 1Q 10Pnter DalueQ 2Q 20Pnter DalueQ 9Q 90Pnter DalueQ HQ H0Pnter DalueQ <Q <0Pnter DalueQ GQ G0Pnter DalueQ FQ F0Pnter DalueQ WQ W0Pnter DalueQ XQ X0Pnter DalueQ 10Q 10Tig)e4t Dalue entered Ua4 X0V)e aDerage /= t)e element /= ary i4 HG

@iệc 8hi t)/ mảng:

#ác mảng $hJng được $h%i t&o t* động8 t"T $hi m(i phần tử mảng được gán một giá t"E "i<ng j,KhJng n<n 3@ng các mảng t"ưBc $hi c- s* $h%i t&o th6ch hợp, Si+u nàG à b%i v= $hJng gian ưu t"1của mảng $hJng được $h%i t&o t* động8 3o đ- 3M gYG "a $'t quả $hJng ưZng t"ưBc, D(i $hi các phầntử của một mảng chưa $h%i t&o được sử 37ng t"ong các biểu thc toán hCc8 các giá t"E đO t_n t&i snt"ong J nhB s. được sử 37ng8 các giá t"E nàG $hJng đảm bảo "ng c- c@ng $iểu như $hai báo của mảng8t"T $hi các phần tử của mảng được $h%i t&o một cách " "àng, Si+u nàG đAng $hJng chỉ cho các mảngmà ckn cho các bi'n thJng thưZng,

X"ong đo&n mO 4nh sau8 các phần tử của mảng được gán giá t"E bng các 3@ng vkng /p >/&,

int ary[20], i;=/r>i:0; i?20; i@

ary[i] : 0;

Kh%i t&o một mảng sử 37ng vkng /p >/& c- thể được th*c hi4n vBi một hng giá t"E8 ho/c các giá t"Eđược sinh "a tT một c9p số cộng,

Dột vkng /p >/& c^ng c- thể được sử 37ng để $h%i t&o một mảng các $! t* như sauN

@5 *ụ 11.:

Bin*lude ?4tdi/.)CD/id main>@E

*)ar alp)a[2G];int i, Y;

=/r>i : G<, Y : 0; i ? X1; i, Y@E

alp)a[Y] : i;print=>IV)e *)ara*ter n/U a44igned i4 L*JnM, alp)a[Y]@;

Nget*)ar>@;

: e2p t"=nh c? bản #

7/17/2019 Session 11 - Concept.doc

http://slidepdf.com/reader/full/session-11-conceptdoc 5/14

N

Dột phần $'t quả của chư?ng t"=nh t"<n như sauN

V)e *)ara*ter n/U a44igned i4 Z

V)e *)ara*ter n/U a44igned i4 V)e *)ara*ter n/U a44igned i4 \...

#hư?ng t"=nh t"<n gán các mO $! t* ;#rr cho các phần tử của mảng #"ph#, K't quả à $hi in vBi đEnh3&ng Dc8 một chu(i các $! t* được Iu9t "a màn h=nh, #ác mảng c^ng c- thể được $h%i t&o $hi $hai

 báo, Si+u nàG được th*c hi4n bng vi4c gán t<n mảng vBi một 3anh sách các giá t"E phYn cách nhau bng 39u phG [E\ đ/t t"ong c/p 39u ngo/c nhCn F, #ác giá t"E t"ong c/p 39u ngo/c nhCn được gáncho các phần tử t"ong mảng thPo đAng th t* Iu9t hi4n,

56 37Nint de*i[10] : E0, 1, 2, 9, H, <, G, F, W, XN;4tati* =l/at rate4[H] : E0.0, 2.<, 19.F<, 1W.0N;*)ar */mpany[<] : E^Z, ^A, ^A, ^`, ^PN;int mark4[100] : E1<, 19, 11, XN

#ác giá t"E $h%i t&o của mảng phải à các hng8 $hJng thể à bi'n ho/c các biểu thc, Dột vài phần tửđầu ti<n của mảng s. được $h%i t&o n'u số ượng giá t"E $h%i t&o à 6t h?n số phần tử mảng được $hai

 báo, #ác phần tử ckn &i s. được $h%i t&o giá t"E L, 56 378 t"ong mảng m#&8s sau $hi c- s* $h%i t&onhư t"<n8 bốn phần tử đầu ti<n [tT L đ'n \ tư?ng ng được $h%i t&o à :8 :8 :: và , #ác phần tửckn &i c- giá t"E L, KhJng thể chỉ $h%i t&o các phần tử tT : đ'n l8 ho/c tT w đ'n l8 haG tT w đ'n $his* $h%i t&o được th*c hi4n t&i thZi điểm $hai báo, X"ong # $hJng c- $hả n0ng /p &i s* $h%i t&o giát"E,

X"ong t"ưZng hợp s* $h%i t&o à tưZng minh8 Bp %t%&n ho/c st#tic8 các phần tử của mảng được đảm bảo $h%i t&o à L [$hJng giống Bp #ut/\,

KhJng cần thi't $hai báo $6ch thưBc của mảng đang được $h%i t&o, F'u $6ch thưBc của mảng được bxqua $hi $hai báo8 t"=nh bi<n 3Ech s. Iác đEnh $6ch thưBc của mảng bng cách đ'm các giá t"E đangđược $h%i t&o, 56 378 s* $hai báo mảng %t%&n#" sau đYG s. chỉ đEnh $6ch thưBc của mảng #&$ à v=c- giá t"E $h%i t&o,

int ary[] : E1, 2, 9, H, <N;

Các mảng chuHiI8A tJ:

Dột chuHi c- thể được $hai báo như à một mảng $! t*8 và được $'t thAc b%i một $! t* Fyee, D(i$! t* của chu(i chi'm : bGtP8 và $! t* cuối c@ng của chu(i uJn uJn à $! t* z{L|, K! tư z{L| được gCià 8A tJ nu"", F- à một mO thoát [PscapP sPquPncP\ tư?ng t* như z{n|8 thaG th' cho $! t* c- giá t"E L,5= z{L| uJn à $! t* cuối c@ng của một chu(i8 n<n các mảng $! t* phải c- nhi+u h?n một $! t* so vBichi+u 3ài tối đa mà chAng quản !, 56 378 một mảng #&$ quản ! một chu(i :L $! t* phải được $hai

 báo như sauN

*)ar ary[11];

5E t"6 th<m vào được sử 37ng để ưu t"1 $! t* nu, F<n nhB "ng $! t* $'t thAc [$! t* nu\ à "9t quant"Cng,

Dảng :}

7/17/2019 Session 11 - Concept.doc

http://slidepdf.com/reader/full/session-11-conceptdoc 6/14

#ác giá t"E chu(i c- thể được nh2p vào bng cách sử 37ng hàm scanf(). 5Bi chu(i #&$ được $hai báo % t"<n8 mO 4nh nh2p s. như sauN

4*an=>IL4M, ary@;

X"ong 4nh t"<n8 #&$ Iác đEnh vE t"6 n?i mà ần ượt các $! t* của mảng s. được ưu t"1,

@5 *ụ 11.K:Bin*lude ?4tdi/.)CD/id main>@E

*)ar ary[<];int i;print=>IJn Pnter 4tringQ M@;4*an=>IL4M, ary@;print=>IJn V)e 4tring i4 L4 JnJnM, ary@;

=/r >i : 0; i ? <; i@print=>IJtLdM, ary[i]@;

N

#ác $'t quả th*c thi chư?ng t"=nh vBi nh1ng 31 i4u nh2p $hác nhau như sauN F'u chu(i được nh2p à appl 8k't quả s. làN

V)e 4tring i4 appl

XF 112 112 10W 0

K't quả như t"<n à của l $! t* [app\ và $! t* th à $! t* nu, Si+u nàG được th9G " vBi mO;#rr cho các $! t* được in "a % 3kng th hai, K! t* th n0m được in a L8 à giá t"E của $! t* nu,

 F'u chu(i nh2p vào à apple8 $'t quả s. àN

V)e 4tring i4 apple

XF 112 112 10W 101K't quả % t"<n của à một 31 i4u đầu vào c- $! t* a8 p8 p8 và P, F- $hJng được IPm à một chu(i

 b%i v= $! t* th của mảng $hJng phải à {L, Dột ần n1a8 đi+u nàG được th9G " bng 3kng in "a mO;#rr của các $! t* a8 p8 p8 8 P,

 F'u chu(i được nh2p vào à ap8 th= $'t quả s. àN

V)e 4tring i4 ap

XF 112 0 G 100

X"ong v6 37 t"<n8 $hi chỉ c- hai $! t* được nh2p8 $! t* th ba s. à $! t* nu, Si+u nàG cho bi't àchu(i đO được $'t thAc, Fh1ng $! t* ckn &i à nh1ng $! t* $hJng 3* đoán được,

X"ong t"ưZng hợp t"<n8 t6nh quan t"Cng của $! t* nu t"% n<n " "àng, K! t* nu Iác đEnh s* $'t thAccủa chu(i và à cách 3uG nh9t để các hàm àm vi4c vBi chu(i s. bi't đYu à điểm $'t thAc của chu(i,

:~ e2p t"=nh c? bản #

7/17/2019 Session 11 - Concept.doc

http://slidepdf.com/reader/full/session-11-conceptdoc 7/14

D/c 3@ # $hJng c- $iểu 31 i4u chu(i8 nhưng n- cho phWp các hng chu(i, Dột hng chu(i à một 3OGcác $! t* được đ/t t"ong 39u nháG đJi [L\, KhJng giống như các hng $hác8 n- $hJng thể được sửađi t"ong chư?ng t"=nh, 56 37 nhưN

ITi Zpte*)iteM

X"=nh bi<n 3Ech # s. t* động th<m vào $! t* nu cuối chu(i,

# h( t"ợ nhi+u hàm cho chu(i8 các hàm nàG nm t"ong thư vi4n chun string.h, Dột vài hàm được đưa"a t"ong bảng ::,:, #ách àm vi4c của các hàm nàG s. được thảo u2n t"ong bài :},

4ên hàm Ch7c nNngst"cpG[s:8 sw\ ;ao chWp sw vào s:st"cat[s:8 sw\ Fối sw vào cuối của s:st"Pn[s:\ X"ả v+ chi+u 3ài của s:st"cmp[s:8 sw\ X"ả v+ L n'u s: và sw à giống nhauU nhx h?n L n'u s:•swU Bn h?n L

n'u s:€ swst"ch"[s:8 ch\ X"ả v+ một con t"x t"x đ'n vE t"6 Iu9t hi4n đầu ti<n của ch t"ong s:st"st"[s:8 sw\ X"ả v+ một con t"x t"x đ'n vE t"6 Iu9t hi4n đầu ti<n của chu(i sw t"ong

chu(i s:Bảng 11.1

11. Mảng h#i chiều:

#hAng ta đO bi't th' nào à mảng m0t chiều, Si+u nàG c- ngha à các mảng chỉ c- một chỉ số, #ácmảng c- thể c- nhi+u h?n một chi+u, #ác mảng O# chiều giAp 3M 3àng t"=nh bàG các đối tượng đachi+u8 chng h&n một đ_ thE vBi các 3kng và cột haG tCa độ màn h=nh của máG t6nh, #ác mảng đa chi+uđược $hai báo giống như các mảng một chi+u8 ngo&i t"T c- th<m một c/p 39u ngo/c vuJng QR t"ong

t"ưZng hợp mảng hai chi+u, Dột mảng ba chi+u s. cần ba c/p 39u ngo/c vuJng8,,, Dột cách tng quát8một mảng đa chi+u c- thể được biểu 3iMn như sauN

4t/rage_*la44 data_type ary[exp1][exp2]....[expN];

d đ-8 #&$ à một mảng c- Bp à st/&#g%6c"#ss8 $iểu 31 i4u à *#t#6t$p%8 và %p1E %p?E..... E %p' àcác biểu thc nguG<n 3ư?ng Iác đEnh số phần tử của mảng được $'t hợp vBi m(i chi+u,

‚&ng đ?n giản nh9t và thưZng được sử 37ng nh9t của các mảng đa chi+u à mảng h#i chiều, Dộtmảng hai chi+u c- thể IPm như à một mảng của hai zmảng một chi+u|, Dột mảng hai chi+u đ/c t"ưngnhư bảng Ech t"=nh của máG baG8 IP ửa, Sể Iác đEnh thJng tin8 ta s. chỉ đEnh 3kng và cột cần thi't8 vàthJng tin được đCc "a tT vE t"6 [3kng và cột\ được t=m th9G, Xư?ng t* như v2G8 một mảng hai chi+u à

một $hung ưBi cha các 3kng và cột t"ong đ- m(i phần tử được Iác đEnh 3uG nh9t bng to& độ 3kngvà cột của n-, Dột mảng hai chi+u tmp c- $iểu int vBi w 3kng và cột c- thể được $hai báo như sau8

int tmp[2][9];Dảng nàG s. cha w I [\ phần tử8 và chAng c- thể được biểu 3iMn như sauN

PQng 

C0t

R 1 ?

R P: Pw P1 Pl P P

d đ- P: ` P biểu 3iMn cho các phần tử của mảng, #ả 3kng và cột được đánh số tT L, Vhần tử P đượcIác đEnh bng 3kng : và cột w, X"uG Iu9t đ'n phần tử nàG như sauN

Dảng :

7/17/2019 Session 11 - Concept.doc

http://slidepdf.com/reader/full/session-11-conceptdoc 8/14

tmp[1][2];

-hi t)/ mảng O# chiều:

Khai báo mảng đa chi+u c- thể $'t hợp vBi vi4c gán các giá t"E $h%i t&o, #ần phải cn th2n ưu ! đ'nth t* các giá t"E $h%i t&o được gán cho các phần tử của mảng [chỉ c- mảng %t%&n#" và st#tic c- thểđược $h%i t&o\, #ác phần tử t"ong 3kng đầu ti<n của mảng hai chi+u s. được gán giá t"E t"ưBc8 sau đ-đ'n các phần tử của 3kng th hai8 ƒ HOG IPm s* $hai báo mảng sauN

int ary[9][H] :E1,2,9,H,<,G,F,W,X,10,11,12N;

K't quả của phWp $hai báo t"<n s. như sauN

ary[0][0] : 1 ary[0][1] : 2 ary[0][2] : 9 ary[0][9]: Hary[1][0] = 5 ary[1][1] = 6 ary[1][2] = 7 ary[1][3] = 8

ary[2][0] = 9 ary[2][1] = 10 ary[2][2] = 11 ary[2][3] = 12

#hA ! "ng chỉ số th : ch&G tT L đ'n w và chỉ số th hai ch&G tử L đ'n , Dột điểm cần nhB à các phần tử của mảng s. được ưu t"1 % nh1ng vE t"6 $' ti'p nhau t"ong bộ nhB, Dảng #&$ % t"<n c- thểIPm như à một mảng của phần tử8 m(i phần tử à một mảng của l số nguG<n8 và s. Iu9t hi4n nhưsauN

PQng R PQng 1 PQng ?: w l } ~ :L :: :w

Xh t* t* nhi<n mà các giá t"E $h%i t&o được gán c- thể thaG đi bng h=nh thc nh-m các giá t"E $h%it&o &i t"ong các 39u ngo/c nhCn , „uan sát s* $h%i t&o sauN

int ary [9][H] :E

  E1, 2, 9N,  EH, <, GN,

  EF, W, XN  N;

Dảng s. được $h%i t&o như sauN

ary[0][0]:1 ary[0][1]:2 ary[0][2]:9 ary[0][9]:0ary[1][0]:H ary[1][1]:< ary[1][2]:G ary[1][9]:0ary[2][0]:F ary[2][1]:W ary[2][2]:X ary[2][9]:0

Dột phần tử của mảng đa chi+u c- thể được sử 37ng như một bi'n t"ong # bng cách 3@ng các chỉ số

để Iác đEnh phần tử của mảng,

@5 *ụ 11.S:

! \)ưbng trcn) n)p *8* 45 D%/ m&t mảng )ai *)iu. !Bin*lude ?4tdi/.)CD/id main>@E

int arr[2][9];int r/U, */l;

=/r>r/U : 0; r/U ? 2; r/U@

E  =/r>*/l : 0; */l ? 9; */l@

:lL e2p t"=nh c? bản #

7/17/2019 Session 11 - Concept.doc

http://slidepdf.com/reader/full/session-11-conceptdoc 9/14

  E print=>IJnPnter a Kum'er at [Ld][Ld]Q M, r/U, */l@; 4*an=>ILdM, Rarr[r/U][*/l]@;

  N  N

=/r>r/U : 0; r/U ? 2; r/U@E

=/r>*/l : 0; */l ? 9; */l@E

print=>IJnV)e Kum'er at [Ld][Ld] i4 LdM, r/U, */l, arr[r/U][*/l]@;

N  NN

Dột v6 37 v+ $'t quả th*c thi chư?ng t"=nh t"<n như sauN

Pnter a Kum'er at [0][0]Q 10Pnter a Kum'er at [0][1]Q 100Pnter a Kum'er at [0][2]Q H<Pnter a Kum'er at [1][0]Q GFPnter a Kum'er at [1][1]Q H<Pnter a Kum'er at [1][2]Q 290

V)e Kum'er at [0][0] i4 10V)e Kum'er at [0][1] i4 100V)e Kum'er at [0][2] i4 H<V)e Kum'er at [1][0] i4 GF

V)e Kum'er at [1][1] i4 H<V)e Kum'er at [1][2] i4 290

Mảng h#i chiều và chuHi:

 Fhư chAng ta đO bi't % phần t"ưBc8 một chu(i c- thể được biểu 3iMn bng mảng một chi+u8 $iểu $! t*,D(i $! t* t"ong chu(i được ưu t"1 t"ong một phần tử của mảng, Dảng của chu(i c- thể được t&o bngcách sử 37ng mảng $! t* hai chi+u, #hỉ số b<n t"ái Iác đEnh số ượng chu(i8 và chỉ số b<n phải IácđEnh chi+u 3ài tối đa của m(i chu(i, 56 37 b<n 3ưBi $hai báo một mảng cha w chu(i và m(i chu(i c-độ 3ài tối đa ~L $! t* $ể cả $! t* nu,

*)ar 4tr_ary[2<][W0];

@5 *ụ minh h/) cách sử *ụng cT# m0t mảng h#i chiều:

56 37 b<n 3ưBi minh ho& cách 3@ng của mảng hai chi+u như các chu(i,

…Wt bài toán t chc một 3anh sách t<n thPo th t* bảng ch1 cái, 56 37 sau đYG nh2p một 3anh sáchcác t<n và sau đ- s>p I'p chAng thPo th t* bảng ch1 cái,

@5 *ụ 11.UBin*lude ?4tdi/.)CBin*lude ?4tring.)C

Bin*lude ?*/ni/.)C

D/id main>@

Dảng :l:

7/17/2019 Session 11 - Concept.doc

http://slidepdf.com/reader/full/session-11-conceptdoc 10/14

Eint i, n : 0;int item;*)ar [10][12];*)ar temp[12];

*lr4*r>@;print=>IPnter ea*) 4tring /n a 4eparate line JnJnM@;print=>IVype ^PKS U)en /Der JnJnM@;

! fead in t)e li4t /= 4tring4 !d/E

print=>Itring LdQ M, n 1@;4*an=>IL4M, [n]@;

N U)ile >4tr*mp>[n], IPKSM@@;

!fe/rder t)e li4t /= 4tring4 !

n : n h 1;=/r>item : 0; item ? n 1; item@E

! ind l/Ue4t /= remaining 4tring4 !

=/r>i : item 1; i ? n; i@E

i=>4tr*mp>[item], [i]@ C 0@E

!Onter*)ange tU/ 4tring4!4tr*py>temp, [item]@;4tr*py>[item], [i]@;4tr*py>[i], temp@;

NN

N

! Si4play t)e arranged li4t /= 4tring4 !

print=>Ife*/rded li4t /= 4tring4Q JnM@;

=/r>i : 0; i ? n; i@

E print=>jJntring Ld i4 L4j, i 1, [i]@;N

N

#hư?ng t"=nh t"<n nh2p vào các chu(i đ'n $hi ngưZi 3@ng nh2p vào tT †F‚, Khi †F‚ được nh2pvào8 chư?ng t"=nh s. s>p I'p 3anh sách các chu(i và in "a thPo th t* đO s>p I'p, #hư?ng t"=nh $iểmt"a hai phần tử $' ti'p nhau, F'u th t* của chAng $hJng th6ch hợp8 th= hai phần tử s. được đi ch(,;* so sánh hai chu(i được th*c hi4n vBi s* t"ợ giAp của hàm strcmp() và s* đi ch( được th*c hi4nvBi hàmg strcpy(),

Dột v6 37 v+ $'t quả th*c thi của chư?ng t"=nh như sauN

Pnter ea*) 4tring /n a 4eparate line

:lw e2p t"=nh c? bản #

7/17/2019 Session 11 - Concept.doc

http://slidepdf.com/reader/full/session-11-conceptdoc 11/14

Vype ^PKS U)en /Dertring 1Q )a4tring 2Q 4eentring 9Q ali*etring HQ U/nderland

tring <Q PKSfe*/rd li4t /= 4tring4Qtring 1 i4 ali*etring 2 i4 )a4tring 9 i4 4eentring H i4 U/nderland

Dảng :l

7/17/2019 Session 11 - Concept.doc

http://slidepdf.com/reader/full/session-11-conceptdoc 12/14

4Vm t=t ài hWc

Dột mảng à một t2p hợp các phần tử 31 i4u c- c@ng $iểu được tham chi'u b%i c@ng một t<n,

D(i phần tử của mảng c- c@ng $iểu 31 i4u8 c@ng Bp ưu t"1 và c- c@ng các đ/c t6nh,

D(i phần tử được ưu t"1 % vE t"6 $' ti'p nhau t"ong bộ nhB ch6nh, #ác phần tử 31 i4u được bi'tnhư à các phần tử  mảng,

Chiều của mảng được Iác đEnh b%i số các chỉ số cần thi't để đEnh 3anh 3uG nh9t m(i phần tử,

#ác mảng c- thể c- các $iểu 31 i4u như int8 ch#&8 >"/#t8 ho/c */u"%,

Vhần tử của mảng c- thể được tham chi'u bng cách sử 37ng một bi'n ho/c một biểu thc sốnguG<n,

Dột mảng $hJng thể được $h%i t&o8 t"T $hi m(i phần tử được gán một giá t"E "i<ng j,

#ác mảng %t%&n và st#tic c- thể được $h%i t&o $hi $hai báo,

Dảng hai chi+u c- thể IPm như à một mảng của các mảng một chi+u,

:ll e2p t"=nh c? bản #

7/17/2019 Session 11 - Concept.doc

http://slidepdf.com/reader/full/session-11-conceptdoc 13/14

-i3m t&# ti;n O0 hWc tXp

1. Dột ffffffff à một t2p hợp các phần tử 31 i4u c@ng $iểu và được tham chi'u b%i c@ng một t<n,

, 5kng /p ‡, Dảng

#, #9u t"Ac ‚, X9t cả đ+u sai

?. D(i phần tử của mảng được đEnh 3anh bng ffffffff 3uG nh9t ho/c ffffffff được gán tBi n-,

, #hỉ m7c8 #hỉ số ‡, Di+n giá t"E8 #hỉ số#, X9t cả đ+u sai

. Dột tên mảng và một tên i;n c- thể giống nhau YZ[ngI\#i]

K. Dột phần tử của mảng c- thể được sử 37ng b9t $ˆ vE t"6 nào mà một bi'n được cho phWp và G<ucầu, YZ[ngI\#i]

S. Hai mảng8 ngaG cả $hi chAng c- c@ng $iểu và $6ch thưBc8 $hJng thể được IPm à fffffffff,

, Si+u $i4n ‡, ;* phủ đEnh#, ‡ng nhau ‚, X9t cả đ+u sai

U. Dột chuHi được $hai báo như à một mảng $iểu $! t*8 được $'t thAc b%i $! t* fffffffff,

, ch9m phG ‡, phG#, Fyee ‚, X9t cả đ+u sai

^. #ác mảng c- thể c- nhi+u h?n một chi+u, YZ[ngI\#i]

_. ;* so sánh hai chu(i được th*c hi4n vBi s* giAp đ‰ của ffffffff và s* đi vE t"6 được th*c hi4n bng fffffffff,

, st"cmp8 st"cpG ‡, st"cat8 st"cpG#, st"Pn8 st"cat ‚, X9t cả đ+u sai

Dảng :l

7/17/2019 Session 11 - Concept.doc

http://slidepdf.com/reader/full/session-11-conceptdoc 14/14

Bài tXp tJ "àm

:, 5i't một chư?ng t"=nh để s>p I'p các t<n sau đYG thPo th t* abc,

e/rge

Zl'ertVinaaDier

f/gerVimilliam

w, 5i't một chư?ng t"=nh đ'm số $! t* nguG<n Ym t"ong một 3kng v0n bản,

, 5i't một chư?ng t"=nh nh2p các số sau đYG vào một mảng và đảo ngược mảng

9H

H<<GGFWX

:l e2p t"=nh c? bản #