GV. GV. NguyễnNguyễn Minh Minh HuyHuy MảngMảng 1Nhập môn lập trình - Nguyễn Minh Huy NộiNội dungdung KháiKhái niệmniệm mảngmảng ThaoThao táctác trêntrên mảngmảng ChuỗiChuỗi kýký tựtự 2Nhập môn lập trình - Nguyễn Minh Huy NộiNội dungdung KháiKhái niệmniệm mảngmảng ThaoThao táctác trêntrên mảngmảng ChuỗiChuỗi kýký tựtự 3Nhập môn lập trình - Nguyễn Minh Huy KháiKhái niệmniệm mảngmảng XétXét chươngchương trìnhtrình sausau:: NhậpNhập 5 5 sốsố nguyênnguyên, , sausau đóđó xuấtxuất 5 5 sốsố vừavừa nhậpnhập KhaiKhai báobáo 5 5 biếnbiến intint a, b, c, d, e.a, b, c, d, e. KhaiKhai báobáo 5 5 biếnbiến intint a, b, c, d, e.a, b, c, d, e. NhậpNhập 50 50 sốsố nguyênnguyên, , sausau đóđó xuấtxuất 50 50 sốsố vừavừa nhậpnhập KhaiKhai báobáo 50 50 biếnbiến intint!!!! LàmLàm saosao khaikhai báobáo nhiềunhiều biếnbiến cùngcùng lúclúc?? MảngMảng 4Nhập môn lập trình - Nguyễn Minh Huy KháiKhái niệmniệm mảngmảng MảngMảng trongtrong ngônngôn ngữngữ C:C: MảngMảng làlà mộtmột dãydãy biếnbiến cócó cùngcùng kiểukiểu CácCác biếnbiến trongtrong dãydãy làlà phầnphần tửtử mảngmảng CácCác biếnbiến trongtrong dãydãy làlà phầnphần tửtử mảngmảng KhaiKhai báobáo:: <<KiểuKiểu dữdữ liệuliệu> > <<TênTên mảngmảng>[>[<<SốSố phầnphần tửtử>>]];; <<SốSố phầnphần tửtử>: >: phảiphải làlà mộtmột hằnghằng sốsố intint m1[10]m1[10];; // // DãyDãy 10 10 sốsố nguyênnguyên float float m2[50]m2[50];; // // DãyDãy 50 50 sốsố thựcthực intint N;N; float float m3[N]m3[N];; // // SaiSai const const intint K = 100;K = 100; float float m4[K]m4[K];; // // ĐúngĐúng 5Nhập môn lập trình - Nguyễn Minh Huy KháiKhái niệmniệm mảngmảng MảngMảng trongtrong ngônngôn ngữngữ C:C: SauSau khikhi khaikhai báobáo, , phầnphần tửtử mảngmảng cócó giágiá trịtrị baobao nhiêunhiêu?? ? ? ? ? ? intint m[5]m[5] ; ; mm KhởiKhởi tạotạo giágiá trịtrị mảngmảng:: <<KiểuKiểu dữdữ liệuliệu> > <<TênTên mảngmảng>[>[<<SốSố phầnphần tửtử>>]] = { = { <<GiáGiá trịtrị PT1>PT1>, , <<GiáGiá trịtrị PT2>PT2>, };, }; ? ? ? ? ? intint m[5]m[5] ; ; mm intint m1[5]m1[5] = { 1, 2, 3, 4, 5 }; = { 1, 2, 3, 4, 5 }; m1 m1 // // KhởiKhởi tạotạo tấttất cảcả phầnphần tửtử 1 2 3 4 5 intint m2[5]m2[5] = { 1, 2 }; = { 1, 2 }; m2 m2 // // KhởiKhởi tạotạo vàivài phầnphần tửtử đầuđầu // // cáccác phầnphần tửtử sausau tấttất cảcả = 0= 0 1 2 0 0 0 6Nhập môn lập trình - Nguyễn Minh Huy // // cáccác phầnphần tửtử sausau tấttất cảcả = 0= 0 intint m3[5]m3[5] = { 0 }; = { 0 }; m3 m3 // // KhởiKhởi tạotạo tấttất cảcả = 0= 0 0 0 0 0 0 intint m3[ ]m3[ ] = { 1, 2, 3, 4, 5 }; = { 1, 2, 3, 4, 5 }; m3 m3 // // TựTự độngđộng biếtbiết sốsố phầnphần tửtử 1 2 3 4 5 KháiKhái niệmniệm mảngmảng MảngMảng trongtrong ngônngôn ngữngữ C:C: TruyTruy xuấtxuất phầnphần tửtử mảngmảng:: << TênTên mảngmảng > > [[ << ChỉChỉ sốsố mảngmảng >> ]] << TênTên mảngmảng > > [[ << ChỉChỉ sốsố mảngmảng >> ]] <<ChỉChỉ sốsố mảngmảng>: >: mộtmột sốsố nguyênnguyên từtừ 00 đếnđến <<SốSố phầnphần tửtử> > 11 aa[0][0] = 5;= 5; aa[1][1] = 6;= 6; aa [2][2] = a[0] + a[1];= a[0] + a[1]; 0 0 0 0 0 intint a[10]a[10] = { 0 }; = { 0 }; aa 0 1 2 3 4 5 6 7 8 90 1 2 3 4 5 6 7 8 9 0 0 0 0 0 aa [2][2] = a[0] + a[1];= a[0] + a[1]; aa[[ 1]1] = 7;= 7; // // SaiSai aa[10][10] = 8;= 8; // // SaiSai 7Nhập môn lập trình - Nguyễn Minh Huy KháiKhái niệmniệm mảngmảng MảngMảng trongtrong ngônngôn ngữngữ C:C: TruyềnTruyền thamtham sốsố mảngmảng:: KhaiKhai báobáo thamtham sốsố mảngmảng giốnggiống biếnbiến mảngmảng KhaiKhai báobáo thamtham sốsố mảngmảng giốnggiống biếnbiến mảngmảng void void foofoo( ( intint a[100]a[100] );); KhaiKhai báobáo thamtham sốsố mảngmảng cócó thểthể bỏbỏ sốsố phầnphần tửtử void void foofoo( ( intint a[ ]a[ ] );); PhầnPhần tửtử mảngmảng cócó thểthể bịbị thaythay đổiđổi sausau khikhi rara khỏikhỏi hàmhàm void void foofoo( ( intint a[ ]a[ ] )) {{ a[2] = 9;a[2] = 9; void main()void main() {{ a[2] = 9;a[2] = 9; a[5] = 8;a[5] = 8; }} 8Nhập môn lập trình - Nguyễn Minh Huy intint a[100] = { 0 };a[100] = { 0 }; foofoo(a);(a); // a[2], a[5] // a[2], a[5] bịbị thaythay đổiđổi }} NộiNội dungdung KháiKhái niệmniệm mảngmảng ThaoThao táctác trêntrên mảngmảng ChuỗiChuỗi kýký tựtự 9Nhập môn lập trình - Nguyễn Minh Huy ThaoThao táctác trêntrên mảngmảng CáchCách thứcthức chungchung:: B1: B1: DuyệtDuyệt mảngmảng DùngDùng vòngvòng lặplặp + + biếnbiến đếmđếm DùngDùng vòngvòng lặplặp + + biếnbiến đếmđếm MỗiMỗi vòngvòng lặplặp xétxét mộtmột phầnphần tửtử B2: B2: ThaoThao táctác trêntrên từngtừng phầnphần tửtử DùngDùng biếnbiến đếmđếm truytruy xuấtxuất phầnphần tửtử // // DuyệtDuyệt mảngmảng M M cócó kíchkích thướcthước N.N. for (for (intint ii = 0; = 0; ii < < NN; ; ii++++)) {{ {{ <<LệnhLệnh truytruy xuấtxuất phầnphần tửtử M[ M[ ii ]]>;>; }} 10Nhập môn lập trình - Nguyễn Minh Huy . - Nguyễn Minh Huy ChuỗiChuỗi kýký tựtự ThaoThao táct c trêntrên chuỗichuỗi kýký tựtự:: ViếtViết hoahoa chữchữ c icái đầuđầu mỗimỗi từtừ:: #include <#include < string.hstring.h >> #define. <<string.hstring.h>:>: strlenstrlen (( chuoichuoi ): ): đếmđếm chiềuchiều dàidài chuỗichuỗi strlenstrlen (( chuoichuoi ): ): đếmđếm chiềuchiều dàidài chuỗichuỗi char char s1[. XuấtXuất chuỗichuỗi:: printfprintf(“%s”, (“%s”, chuoichuoi).). puts(puts( chuoichuoi ).). void main()void main() {{ char s1[MAX];char s1[MAX]; char s2[MAX];char s2[MAX]; printfprintf(“(“NhapNhap