SlideShare une entreprise Scribd logo
1  sur  30
Mảng - Array
Mảng – Array ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Mảng –  Một số tính chất ,[object Object],[object Object],[object Object],[object Object]
Mảng –  Khai báo trong C ,[object Object],kiểu của mỗi thành phần hằng số, số thành phần tối đa của mảng do lập trình viên đặt tên typedef int   AINT[ 100 ]; // AINT  là kiểu mảng biểu diễn dãy gồm 100 thành phần int AINT a; //a: biến kiểu AINT
Mảng –  Ví dụ #define SIZE 10 int a[5]; // a dãy gồm 5 số nguyên  long int big[100]; // big: chiếm 400 bytes! double d[100]; // d: chiếm 800 bytes!  long double v[SIZE];// v:10 long doubles
Mảng –  Ví dụ int a[5]  = { 10, 20, 30, 40, 50}; double d[100]  = { 1.5, 2.7}; short primes[] = { 1, 2, 3, 5, 7, 11, 13}; long b[50]  = { 0 }; int i = 7; const int c = 5; int a[i]; double d[c]; short primes[]; khởi trị cho 5 thành phần 2 thành phần đầu tiên được khởi trị, phần còn lại: 0 compiler xác định kích thước gồm 7 thành phần cách nhanh nhất để khởi trị tất cả các thành phần bằng 0
[object Object],[object Object],Mảng –  Truy xuất các phần tử int main() { int a[6]; int i = 7; a[0] = 59; a[5] = -10; a[i/2] = 2; a[6] = 0; a[-1] = 5; return 0; } 0 a 1 2 3 4 5
Truyền tham số Mảng cho hàm ,[object Object],[object Object],[object Object],int add_elements(int a[], int size) { int add_elements(int *p, int size) {
Ví dụ #include <stdio.h> void sum(long [], int); int main(void) { long primes[6] = { 1, 2, 3, 5, 7, 11 }; sum(primes, 6); printf(&quot;%li&quot;, primes[0]); return 0; } void sum(long a[], int sz) { int i; long total = 0; for(i = 0; i < sz; i++) total += a[i]; a[0] = total; } 1 2 3 5 7 11 primes a sz 6 tổng được lưu vào phần tử đầu tiên dùng để kiểm tra giới hạn chỉ số
Một số thao tác cơ sở ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Mảng –  Nhập dữ liệu void ReadData(int a[], int size)  { int i; for(i = 0; i < size; i++) { printf(“Nhap thanh phan %d: ”, i); scanf(“%d”, &a[i]); } } duyệt qua tất cả các phần tử nhập dữ liệu cho a[i]
Mảng –  Xuất dữ liệu ra màn hình void WriteData(int a[], int size)  { int i; for(i = 0; i < size; i++) printf(“%d ”, a[i]); printf(“”); }
Mảng –  Nhập xuất dữ liệu #include <stdio.h> void ReadData(int [], int ); void WriteData(int [], int ); void main()  { int a[100], n; clrscr(); printf(“Nhap so thanh phan cua day: “); scanf(“%d”, &n); printf(“Nhap cac thanh phan cua day: “); ReadData(a, n); printf(“Day vua nhap: “); WriteData(a, n); }
Mảng –  Tìm vị trí X trong dãy ,[object Object],[object Object],//input: dãy (a, N), X //output: Vị trí của X, -1 nếu không có int Search(int a[], int N, int X)  { for (int i = 0; i < N; i ++) if (a[i] == X) return i; return -1; }
Mảng  – Thêm một thành phần dữ liệu ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Mảng –  Thêm X vào cuối dãy 2 8 5 1 6 4 15 12 Thêm 15 vào (a, 7) N = 7 N = 8 a[N] = X; N ++; X 1 2 3 4 5 6 7 0
Mảng –  Chèn X vào dãy tăng dần 2 4 5 8 12 15 6 1 Chèn 6 vào (a, 7) N = 7 N = 8 X Vị trí thích hợp: 4 pos 1 2 3 4 5 6 7 0
Mảng –  Chèn X vào dãy tăng dần //input: dãy (a, N) tăng dần, X //output: dãy (a, N) đã có X ở đúng vị trí void Insert(int a[], int &N, int X)  { int pos; for (pos = N; (pos>0)&&(a[pos-1]>X); pos --) a[pos] = a[pos – 1]; a[pos] = X; N ++; }
Mảng  – Loại bỏ một thành phần dữ liệu ,[object Object],[object Object],[object Object],[object Object]
Mảng –  Loại bỏ X ra khỏi dãy tăng N = 8 2 8 5 1 6 4 15 12 Loại 5 khỏi (a, 8) N = 7 pos Tìm vị trí của 5 5 X Dồn các vị trí 4, 5, 6, 7 lên 1 2 3 4 5 6 7 0 STOP  Ok, found
Mảng –  Loại bỏ X ra khỏi dãy tăng //input: dãy (a, N), X //output: dãy (a, N) đã loại bỏ 1 thành phần X int Remove(int a[], int &N, int X)  { int pos = Search(a, N, X); if (pos == -1) //không có X trong dãy return 0; N --; for (; (pos < N); pos ++) a[pos] = a[pos + 1]; return 1; }
Mảng –  Sắp xếp ,[object Object],[object Object],[object Object]
Mảng –  Sắp xếp đổi chổ 2 8 5 1 6 4 15 12 i j 1 2 3 4 5 6 7 8 1
Mảng –  Sắp xếp đổi chổ 12 8 5 2 6 4 15 1 i j 2 2 3 4 5 6 7 8 1
Mảng –  Sắp xếp đổi chổ 2 12 8 5 6 4 15 1 i j 4 2 3 4 5 6 7 8 1
Mảng –  Sắp xếp đổi chổ 2 4 12 8 6 5 15 1 i j 5 2 3 4 5 6 7 8 1
Mảng –  Sắp xếp đổi chổ 2 4 5 6 8 12 15 1 2 3 4 5 6 7 8 1
Mảng –  Sắp xếp đổi chổ void Swap(int &x, int &y) { int t = x; x = y; y = t; } void InterchangeSort(int a[], int N) { int  i, j; for (i = 0 ; i<N-1 ; i++) for (j =i+1; j < N ; j++) if(a[j]< a[i]) Swap(a[i],a[j]); }
Mảng nhiều chiều ,[object Object],float rainfall[12][365]; “ rainfall” là mảng gồm 12 thành phần, mỗi thành phần là mảng gồm 365 số float short exam_marks[500][10]; “ exam_marks” là mảng gồm 500 thành phần, mỗi thành phần là mảng 10 số short const int brighton = 7; int day_of_year = 238; rainfall[brighton][day_of_year] = 0.0F;
Tóm lược ,[object Object],[object Object],[object Object],[object Object],[object Object]

Contenu connexe

Tendances

Sap xep va tim kiem
Sap xep va tim kiem Sap xep va tim kiem
Sap xep va tim kiem
acumenvn
 
Ctdl C01
Ctdl C01Ctdl C01
Ctdl C01
giang
 
Chapter08aarray string
Chapter08aarray stringChapter08aarray string
Chapter08aarray string
Nhung Nguyen
 
Nmlt C07 Mang1 Chieu
Nmlt C07 Mang1 ChieuNmlt C07 Mang1 Chieu
Nmlt C07 Mang1 Chieu
Cuong
 
Nmlt C06 Ham
Nmlt C06 HamNmlt C06 Ham
Nmlt C06 Ham
Cuong
 
Stl vector nguyen_trihai_11520094_khmt06
Stl vector nguyen_trihai_11520094_khmt06Stl vector nguyen_trihai_11520094_khmt06
Stl vector nguyen_trihai_11520094_khmt06
Quach Long
 
Nmlt c07 mang1_chieu_in
Nmlt c07 mang1_chieu_inNmlt c07 mang1_chieu_in
Nmlt c07 mang1_chieu_in
Huy Nguyễn
 
Nmlt C03 Cac Kieu Du Lieu Co So
Nmlt C03 Cac Kieu Du Lieu Co SoNmlt C03 Cac Kieu Du Lieu Co So
Nmlt C03 Cac Kieu Du Lieu Co So
Cuong
 

Tendances (18)

Sap xep va tim kiem
Sap xep va tim kiem Sap xep va tim kiem
Sap xep va tim kiem
 
bai tap cau truc du lieu ptit
bai tap cau truc du lieu ptitbai tap cau truc du lieu ptit
bai tap cau truc du lieu ptit
 
Bài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPT
Bài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPTBài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPT
Bài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPT
 
Bài tập CTDL và GT 1
Bài tập CTDL và GT 1Bài tập CTDL và GT 1
Bài tập CTDL và GT 1
 
Phan2 chuong6 mang
Phan2 chuong6 mangPhan2 chuong6 mang
Phan2 chuong6 mang
 
Ctdl C01
Ctdl C01Ctdl C01
Ctdl C01
 
Huong danthuchanhmang
Huong danthuchanhmangHuong danthuchanhmang
Huong danthuchanhmang
 
Chapter08aarray string
Chapter08aarray stringChapter08aarray string
Chapter08aarray string
 
Nmlt C07 Mang1 Chieu
Nmlt C07 Mang1 ChieuNmlt C07 Mang1 Chieu
Nmlt C07 Mang1 Chieu
 
Lect05 array
Lect05 arrayLect05 array
Lect05 array
 
Nmlt C06 Ham
Nmlt C06 HamNmlt C06 Ham
Nmlt C06 Ham
 
Bai11
Bai11Bai11
Bai11
 
Session 4
Session 4Session 4
Session 4
 
Phím tắt trong excel
Phím tắt trong excelPhím tắt trong excel
Phím tắt trong excel
 
Bài tập CTDL và GT 12
Bài tập CTDL và GT 12Bài tập CTDL và GT 12
Bài tập CTDL và GT 12
 
Stl vector nguyen_trihai_11520094_khmt06
Stl vector nguyen_trihai_11520094_khmt06Stl vector nguyen_trihai_11520094_khmt06
Stl vector nguyen_trihai_11520094_khmt06
 
Nmlt c07 mang1_chieu_in
Nmlt c07 mang1_chieu_inNmlt c07 mang1_chieu_in
Nmlt c07 mang1_chieu_in
 
Nmlt C03 Cac Kieu Du Lieu Co So
Nmlt C03 Cac Kieu Du Lieu Co SoNmlt C03 Cac Kieu Du Lieu Co So
Nmlt C03 Cac Kieu Du Lieu Co So
 

Similaire à 5 Array

Bai3 timkiem sapxep
Bai3 timkiem sapxepBai3 timkiem sapxep
Bai3 timkiem sapxep
Hồ Lợi
 
Bai3 timkiemsapxep
Bai3 timkiemsapxepBai3 timkiemsapxep
Bai3 timkiemsapxep
nhà tôi
 
CSLT_Bai 5A_2018.pptx
CSLT_Bai 5A_2018.pptxCSLT_Bai 5A_2018.pptx
CSLT_Bai 5A_2018.pptx
ChuK7
 
Ctdl lab07-cac thuat-toan_sap_xep
Ctdl lab07-cac thuat-toan_sap_xepCtdl lab07-cac thuat-toan_sap_xep
Ctdl lab07-cac thuat-toan_sap_xep
Nguyễn Ngọc Hà
 
Ctdl C06
Ctdl C06Ctdl C06
Ctdl C06
giang
 
Chuong 2 phan tich cac thuat toan sap xep va tim kiem
Chuong 2  phan tich cac thuat toan sap xep va tim kiemChuong 2  phan tich cac thuat toan sap xep va tim kiem
Chuong 2 phan tich cac thuat toan sap xep va tim kiem
gaconne1985
 
Chuong 2 - Cac cau truc du lieu co ban.pptx
Chuong 2 - Cac cau truc du lieu co ban.pptxChuong 2 - Cac cau truc du lieu co ban.pptx
Chuong 2 - Cac cau truc du lieu co ban.pptx
NhatMinh733974
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson07
Lap trinh huong_doi_tuong_cpp_dhct_lesson07Lap trinh huong_doi_tuong_cpp_dhct_lesson07
Lap trinh huong_doi_tuong_cpp_dhct_lesson07
xcode_esvn
 

Similaire à 5 Array (20)

344444
344444344444
344444
 
Session 11
Session 11Session 11
Session 11
 
NMLT_C07_Mang1Chieu.pptx
NMLT_C07_Mang1Chieu.pptxNMLT_C07_Mang1Chieu.pptx
NMLT_C07_Mang1Chieu.pptx
 
Bai3 timkiem sapxep
Bai3 timkiem sapxepBai3 timkiem sapxep
Bai3 timkiem sapxep
 
Bai3 timkiemsapxep
Bai3 timkiemsapxepBai3 timkiemsapxep
Bai3 timkiemsapxep
 
Nmlt c07 mang1_chieu
Nmlt c07 mang1_chieuNmlt c07 mang1_chieu
Nmlt c07 mang1_chieu
 
CSLT_Bai 5A_2018.pptx
CSLT_Bai 5A_2018.pptxCSLT_Bai 5A_2018.pptx
CSLT_Bai 5A_2018.pptx
 
Ctdl lab07-cac thuat-toan_sap_xep
Ctdl lab07-cac thuat-toan_sap_xepCtdl lab07-cac thuat-toan_sap_xep
Ctdl lab07-cac thuat-toan_sap_xep
 
GV
GVGV
GV
 
Ctdl C06
Ctdl C06Ctdl C06
Ctdl C06
 
Timkiem&sapxep
Timkiem&sapxepTimkiem&sapxep
Timkiem&sapxep
 
Chapter04_Array_chinhsua
Chapter04_Array_chinhsuaChapter04_Array_chinhsua
Chapter04_Array_chinhsua
 
Bai tap pascal tong hop
Bai tap pascal tong hopBai tap pascal tong hop
Bai tap pascal tong hop
 
CHƯƠNG 4.pdf
CHƯƠNG 4.pdfCHƯƠNG 4.pdf
CHƯƠNG 4.pdf
 
Chuong 2 phan tich cac thuat toan sap xep va tim kiem
Chuong 2  phan tich cac thuat toan sap xep va tim kiemChuong 2  phan tich cac thuat toan sap xep va tim kiem
Chuong 2 phan tich cac thuat toan sap xep va tim kiem
 
Matrix and Computational in Matlab
Matrix and Computational in MatlabMatrix and Computational in Matlab
Matrix and Computational in Matlab
 
Chuong 2 - Cac cau truc du lieu co ban.pptx
Chuong 2 - Cac cau truc du lieu co ban.pptxChuong 2 - Cac cau truc du lieu co ban.pptx
Chuong 2 - Cac cau truc du lieu co ban.pptx
 
Chuong 2
Chuong 2Chuong 2
Chuong 2
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson07
Lap trinh huong_doi_tuong_cpp_dhct_lesson07Lap trinh huong_doi_tuong_cpp_dhct_lesson07
Lap trinh huong_doi_tuong_cpp_dhct_lesson07
 
C đến C++ phần 1
C đến C++ phần 1C đến C++ phần 1
C đến C++ phần 1
 

Plus de Cuong

3 Function
3 Function3 Function
3 Function
Cuong
 
Nmlt C08 Mang2 Chieu
Nmlt C08 Mang2 ChieuNmlt C08 Mang2 Chieu
Nmlt C08 Mang2 Chieu
Cuong
 
Nmlt C09 Chuoi Ky Tu
Nmlt C09 Chuoi Ky TuNmlt C09 Chuoi Ky Tu
Nmlt C09 Chuoi Ky Tu
Cuong
 
Nmlt C05 Cau Lenh Lap
Nmlt C05 Cau Lenh LapNmlt C05 Cau Lenh Lap
Nmlt C05 Cau Lenh Lap
Cuong
 
Nmlt C04 Cau Lenh Dieu Kien Va Re Nhanh
Nmlt C04 Cau Lenh Dieu Kien Va Re NhanhNmlt C04 Cau Lenh Dieu Kien Va Re Nhanh
Nmlt C04 Cau Lenh Dieu Kien Va Re Nhanh
Cuong
 
Nmlt C02 GioiThieuNNLTC
Nmlt C02 GioiThieuNNLTCNmlt C02 GioiThieuNNLTC
Nmlt C02 GioiThieuNNLTC
Cuong
 
Nmlt C01 Cac Khai Niem Co Ban Ve Lap Trinh
Nmlt C01 Cac Khai Niem Co Ban Ve Lap TrinhNmlt C01 Cac Khai Niem Co Ban Ve Lap Trinh
Nmlt C01 Cac Khai Niem Co Ban Ve Lap Trinh
Cuong
 
4 Pointer String Struct
4 Pointer String  Struct4 Pointer String  Struct
4 Pointer String Struct
Cuong
 
3 Function
3 Function3 Function
3 Function
Cuong
 
2 Cau Truc Dieu Khien
2 Cau Truc Dieu Khien2 Cau Truc Dieu Khien
2 Cau Truc Dieu Khien
Cuong
 
1 Gioi Thieu Chung
1 Gioi Thieu Chung1 Gioi Thieu Chung
1 Gioi Thieu Chung
Cuong
 

Plus de Cuong (11)

3 Function
3 Function3 Function
3 Function
 
Nmlt C08 Mang2 Chieu
Nmlt C08 Mang2 ChieuNmlt C08 Mang2 Chieu
Nmlt C08 Mang2 Chieu
 
Nmlt C09 Chuoi Ky Tu
Nmlt C09 Chuoi Ky TuNmlt C09 Chuoi Ky Tu
Nmlt C09 Chuoi Ky Tu
 
Nmlt C05 Cau Lenh Lap
Nmlt C05 Cau Lenh LapNmlt C05 Cau Lenh Lap
Nmlt C05 Cau Lenh Lap
 
Nmlt C04 Cau Lenh Dieu Kien Va Re Nhanh
Nmlt C04 Cau Lenh Dieu Kien Va Re NhanhNmlt C04 Cau Lenh Dieu Kien Va Re Nhanh
Nmlt C04 Cau Lenh Dieu Kien Va Re Nhanh
 
Nmlt C02 GioiThieuNNLTC
Nmlt C02 GioiThieuNNLTCNmlt C02 GioiThieuNNLTC
Nmlt C02 GioiThieuNNLTC
 
Nmlt C01 Cac Khai Niem Co Ban Ve Lap Trinh
Nmlt C01 Cac Khai Niem Co Ban Ve Lap TrinhNmlt C01 Cac Khai Niem Co Ban Ve Lap Trinh
Nmlt C01 Cac Khai Niem Co Ban Ve Lap Trinh
 
4 Pointer String Struct
4 Pointer String  Struct4 Pointer String  Struct
4 Pointer String Struct
 
3 Function
3 Function3 Function
3 Function
 
2 Cau Truc Dieu Khien
2 Cau Truc Dieu Khien2 Cau Truc Dieu Khien
2 Cau Truc Dieu Khien
 
1 Gioi Thieu Chung
1 Gioi Thieu Chung1 Gioi Thieu Chung
1 Gioi Thieu Chung
 

5 Array

  • 2.
  • 3.
  • 4.
  • 5. Mảng – Ví dụ #define SIZE 10 int a[5]; // a dãy gồm 5 số nguyên long int big[100]; // big: chiếm 400 bytes! double d[100]; // d: chiếm 800 bytes! long double v[SIZE];// v:10 long doubles
  • 6. Mảng – Ví dụ int a[5] = { 10, 20, 30, 40, 50}; double d[100] = { 1.5, 2.7}; short primes[] = { 1, 2, 3, 5, 7, 11, 13}; long b[50] = { 0 }; int i = 7; const int c = 5; int a[i]; double d[c]; short primes[]; khởi trị cho 5 thành phần 2 thành phần đầu tiên được khởi trị, phần còn lại: 0 compiler xác định kích thước gồm 7 thành phần cách nhanh nhất để khởi trị tất cả các thành phần bằng 0
  • 7.
  • 8.
  • 9. Ví dụ #include <stdio.h> void sum(long [], int); int main(void) { long primes[6] = { 1, 2, 3, 5, 7, 11 }; sum(primes, 6); printf(&quot;%li&quot;, primes[0]); return 0; } void sum(long a[], int sz) { int i; long total = 0; for(i = 0; i < sz; i++) total += a[i]; a[0] = total; } 1 2 3 5 7 11 primes a sz 6 tổng được lưu vào phần tử đầu tiên dùng để kiểm tra giới hạn chỉ số
  • 10.
  • 11. Mảng – Nhập dữ liệu void ReadData(int a[], int size) { int i; for(i = 0; i < size; i++) { printf(“Nhap thanh phan %d: ”, i); scanf(“%d”, &a[i]); } } duyệt qua tất cả các phần tử nhập dữ liệu cho a[i]
  • 12. Mảng – Xuất dữ liệu ra màn hình void WriteData(int a[], int size) { int i; for(i = 0; i < size; i++) printf(“%d ”, a[i]); printf(“”); }
  • 13. Mảng – Nhập xuất dữ liệu #include <stdio.h> void ReadData(int [], int ); void WriteData(int [], int ); void main() { int a[100], n; clrscr(); printf(“Nhap so thanh phan cua day: “); scanf(“%d”, &n); printf(“Nhap cac thanh phan cua day: “); ReadData(a, n); printf(“Day vua nhap: “); WriteData(a, n); }
  • 14.
  • 15.
  • 16. Mảng – Thêm X vào cuối dãy 2 8 5 1 6 4 15 12 Thêm 15 vào (a, 7) N = 7 N = 8 a[N] = X; N ++; X 1 2 3 4 5 6 7 0
  • 17. Mảng – Chèn X vào dãy tăng dần 2 4 5 8 12 15 6 1 Chèn 6 vào (a, 7) N = 7 N = 8 X Vị trí thích hợp: 4 pos 1 2 3 4 5 6 7 0
  • 18. Mảng – Chèn X vào dãy tăng dần //input: dãy (a, N) tăng dần, X //output: dãy (a, N) đã có X ở đúng vị trí void Insert(int a[], int &N, int X) { int pos; for (pos = N; (pos>0)&&(a[pos-1]>X); pos --) a[pos] = a[pos – 1]; a[pos] = X; N ++; }
  • 19.
  • 20. Mảng – Loại bỏ X ra khỏi dãy tăng N = 8 2 8 5 1 6 4 15 12 Loại 5 khỏi (a, 8) N = 7 pos Tìm vị trí của 5 5 X Dồn các vị trí 4, 5, 6, 7 lên 1 2 3 4 5 6 7 0 STOP Ok, found
  • 21. Mảng – Loại bỏ X ra khỏi dãy tăng //input: dãy (a, N), X //output: dãy (a, N) đã loại bỏ 1 thành phần X int Remove(int a[], int &N, int X) { int pos = Search(a, N, X); if (pos == -1) //không có X trong dãy return 0; N --; for (; (pos < N); pos ++) a[pos] = a[pos + 1]; return 1; }
  • 22.
  • 23. Mảng – Sắp xếp đổi chổ 2 8 5 1 6 4 15 12 i j 1 2 3 4 5 6 7 8 1
  • 24. Mảng – Sắp xếp đổi chổ 12 8 5 2 6 4 15 1 i j 2 2 3 4 5 6 7 8 1
  • 25. Mảng – Sắp xếp đổi chổ 2 12 8 5 6 4 15 1 i j 4 2 3 4 5 6 7 8 1
  • 26. Mảng – Sắp xếp đổi chổ 2 4 12 8 6 5 15 1 i j 5 2 3 4 5 6 7 8 1
  • 27. Mảng – Sắp xếp đổi chổ 2 4 5 6 8 12 15 1 2 3 4 5 6 7 8 1
  • 28. Mảng – Sắp xếp đổi chổ void Swap(int &x, int &y) { int t = x; x = y; y = t; } void InterchangeSort(int a[], int N) { int i, j; for (i = 0 ; i<N-1 ; i++) for (j =i+1; j < N ; j++) if(a[j]< a[i]) Swap(a[i],a[j]); }
  • 29.
  • 30.