Bài giảng Nhập môn Lập trình: Chương 8 trình bày các nội dung chính sau: Tìm hiểu về mảng, các yếu tố xác định mảng, mảng 1 chiều, các tác vụ trên mảng 1 chiều, mảng 2 chiều, các tác vụ trên chuỗi ký tự. Mời các bạn cùng tham khảo để nắm nội dung chi tiết.
CHƢƠNG – MẢNG BÀI 9: 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 đƣợc 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 đƣợc 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 đƣợ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 đƣợc 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 đƣợc 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 nhƣ 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