Bài giảng nhập môn lập trình của trường đại học công nghệ thông tin, chương 9. Bài giảng là slide powerpoint cung cấp đầy đủ kiến thức, bài tập, kỹ năng cho sinh viên về chương 9 của môn nhập môn lập trình
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 • Ngơn ngữ lập trình C định vùng nhớ liên tục cho biến kiểu mảng Ví dụ: dãy số nguyên, dãy ký tự… 012345678 ABCDE FG 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 …) 5827109 TBRK • Mảng chiều (Ma trận) gồm phần tử dòng phần tử cột 37 37 378 61 61 614 61 Ma trận dòng = cột = Ma trận dòng < cột Ma trận dòng > cột Dòng = , cột =3 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 TBRK 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 // int a[10]; #define n2 20 // int b[10][20]; int a[n1]; int b[n1][n2]; 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ề: khơng có 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