Introduction Programming CHƯƠNG 6 – MẢNG TÌM HIỂU VỀ MẢNG – MẢNG 1 CHIỀU CĐR buổi học • Sau khi học xong buổi học, sinh viên có khả năng • Hiểu được khái niệm cơ bản mảng, mảng một chiều và cách tổ ch[.]
CHƯƠNG – MẢNG TÌM HIỂU VỀ MẢNG – MẢNG CHIỀU CĐR buổi học • Sau học xong buổi học, sinh viên có khả năng: • Hiểu khái niệm mảng, mảng chiều cách tổ chức lưu trữ phần tử mảng • Giải thích sử dụng số thao tác mảng chiều • Viết chương trình sử dụng mảng chiều Nội dung Giới thiệu mảng Khái niệm mảng Các yếu tố xác định mảng Mảng chiều Các tác vụ mảng chiều Mảng chiều Các tác vụ mảng chiều Chuỗi ký tự Các tác vụ chuỗi ký tự Giới thiệu • Chương trình cần lưu trữ số thực → Khai báo biến kiểu số thực : float a, b, c; • Chương trình cần lưu trữ 10 100 1000 số thực → Khai báo 10 100 1000 biến kiểu số thực? → Không thực 1.3 9.4 2.7 6.2 4.9 7.7 3.5 8.6 0.1 5.4 → Cần có kiểu liệu để lưu trữ dãy số thực truy xuất dễ dàng → MẢNG Khái niệm mảng • Biểu diễn dãy phần tử có kiểu phần tử mảng biểu diễn giá trị • Kích thước mảng xác định khai báo không thay đổi • Một kiểu liệu có cấu trúc người lập trình định nghĩa • Ngơn ngữ lập trình C ln định khối nhớ liên tục cho biến kiểu mảng Ví dụ: dãy số nguyên, dãy ký tự… A B C D E F G Khái niệm mảng • Mảng chiều gồm dãy phần tử có kiểu liệu (int, float, char …) • T B R K Mảng chiều (Ma trận) gồm phần tử dòng phần tử cột 7 6 6 Ma trận dòng = cột = Ma trận dòng < cột Dòng = , cột =3 Ma trận dòng > cột Dòng = , cột =2 Các yếu tố xác định mảng - Tên mảng: MangKyTu - Tên mảng: MangSoNguyen - Kiểu mảng: char - Kiểu mảng: int - Số chiều: chiều - Số chiều: chiều - Kích thước: phần tử - Kích thước: cột x dịng T B R K Mảng chiều 4.1 Khai báo khởi tạo mảng chiều 4.2 Chỉ số mảng truy xuất phần tử mảng 4.3 Lấy địa phần tử mảng 4.4 Truyền mảng cho hàm lời gọi hàm 4.1 Khai báo mảng chiều • Cú pháp: []; Trong đó: Kiểu liệu: int, float, char Tên biến mảng: ký tự dãy ký tự viết liền khơng có khoảng trắng Số phần tử mảng: số lượng phần tử mảng chiều char A[10] int Mang1Chieu[30] Kiểu liệu: char Kiểu liệu: int Tên biến mảng: A Tên biến mảng: Mang1Chieu Số phần tử mảng: 10 phần tử Số phần tử mảng: 30 phần tử 4.1 Khai báo mảng chiều • Phải xác định cụ thể lúc khai báo, không sử dụng biến thường int n1 = 10; int a[n1]; const int n2 = 20; int b[n2]; • Nên sử dụng thị tiền xử lý #define để định nghĩa số phần tử mảng #define n1 10 #define n2 20 int a[n1]; // int a[10]; int b[n1][n2]; // int b[10][20]; 10 4.3 Lấy địa phần tử mảng • Cú pháp: &[]; int A[4] 29 137 50 Địa phần tử mạng: Địa phần tử thứ 0: &A[0] Địa phần tử thứ 1: &A[1] Địa phần tử thứ 2: &A[2] Địa phần tử thứ 3: &A[3] 14 4.4 Truyền mảng cho hàm lời gọi hàm • Tham số kiểu mảng khai báo hàm giống khai báo biến mảng void SapXep(int A[100], int n); Tên hàm: SapXep Tham số: kiểu mảng số nguyên A số lượng phần tử mảng n Giá trị trả về: giá trị trả void int TinhTong(int A[100], int n); Tên hàm: TinhTong Tham số: kiểu mảng số nguyên A số lượng phần tử mảng n Giá trị trả về: kiểu số nguyên int 15 4.4 Truyền mảng cho hàm lời gọi hàm • Mảng thay đổi nội dung sau thực hàm • Có thể bỏ số lượng phần tử sử dụng trỏ void NhapMang(int A[], int n); void NhapMang(int *A, int n); 16 4.4 Truyền mảng cho hàm lời gọi hàm #include #include void Nhap(int A[], int &N) // nhập mảng void Xuat(int A[], int N) // xuất mảng int TinhTong(int A[], int N) // tính tổng phần tử mảng void main() { int a[100], n, S; Nhap(a,n); Xuat(a,n); S=TinhTong (a,n); cout