Bài giảng Kỹ thuật lập trình nâng cao: Chương 2 - ThS. Dương Thành Phết
Số trang: 54
Loại file: pdf
Dung lượng: 632.17 KB
Lượt xem: 12
Lượt tải: 0
Xem trước 6 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng Kỹ thuật lập trình nâng cao - Chương 2 cung cấp các kiến thức liên quan đến kiểu dữ liệu có cấu trúc. Chương này gồm có những nội dung chính như: Kiểu dữ liệu mảng 1 chiều, các thao tác trên mảng 1 chiều, mảng 2 chiều, kiểu chuổi ký tự, kiểu cấu trúc – mảng cấu trúc, kiểu tập tin - File
Nội dung trích xuất từ tài liệu:
Bài giảng Kỹ thuật lập trình nâng cao: Chương 2 - ThS. Dương Thành Phết TRƯỜNG CAO ĐẲNG CNTT TP.HCM KHOA CÔNG NGHỆ THÔNG TIN KỸ THUẬT LẬP TRÌNH NÂNG CAO Chương 2 KIỂU DỮ LIỆU CÓ CẤU TRÚC Giảng Viên: ThS. Dương Thành Phết Email: phetcm@gmail.com Website: http://www.thayphet.net 1 Tel: 0918158670 – facebook.com/DuongThanhPhet NỘI DUNG 1. Kiểu dữ liệu mảng 1 chiều 2. Các thao tác trên mảng 1 chiều 3. Mảng 2 chiều 4. Kiểu chuổi ký tự 5. Kiểu cấu trúc – Mảng cấu trúc 6. Kiểu tập tin - File 2 2 1. KIỂU DỮ LIỆU MẢNG 1 CHIỀU 1.1 Khái niệm Mảng thực chất là một biến bao gồm nhiều biến thành phần được cấp phát bộ nhớ liên tục. Các thành phần của mảng là tập hợp các biến có cùng kiểu dữ liệu và cùng tên. Do đó để truy xuất các biến thành phần, ta dùng cơ chế chỉ mục (Vị trí). Giá trị 0 1 2 3 4 5 6 7 8 9 3 Vị trí 3 1. KIỂU DỮ LIỆU MẢNG 1 CHIỀU 1.2. Khai báo < Kiểu dữ liệu > < Tên mảng > [ < Số p.tử tối đa của mảng> ] ; int a[100]; //Khai bao mang so nguyen a gom 100 phan tu float b[50]; //Khai bao mang so thuc b gom 50 phan tu char str[30]; //Khai bao mang ky tu str gom 30 ky tu 4 4 1. KIỂU DỮ LIỆU MẢNG 1 CHIỀU 1.3. Gán giá trị ban đầu cho mảng int a[5] = {3, 6, 8, 1, 12}; a[0] = 3, a[1] = 6, a[2] = 8, … int a[10] = {0}; a[0]=a[1]=a[2]=a[3]=…=a[9]=0 5 5 1. KIỂU DỮ LIỆU MẢNG 1 CHIỀU 1.4. Truy xuất Vị trí 0 1 2 3 4 A[0] A[1] A[2] A[3] A[4] 6 6 2. CÁC THAO TÁC TRÊN MẢNG 1 CHIỀU 1. Nhập/Xuất mảng void NhapMang (int a[], int n){ for (int i = 0; i < n; i ++){ cout 2. CÁC THAO TÁC TRÊN MẢNG 1 CHIỀU void main ( ){ int a[MAX] , n; coutn; NhapMang (a,n); cout 2. CÁC THAO TÁC TRÊN MẢNG 1 CHIỀU Xuất các phần tử thỏa điều kiện Mẫu 1: void LietKeXXX(int a[], int n){ for (int i = 0; i 2. CÁC THAO TÁC TRÊN MẢNG 1 CHIỀU Ví dụ 1: Liệt kê các phần tử có giá trị chẵn trong mảng void LietKeChan(int a[], int n){ for (int i = 0; i 2. CÁC THAO TÁC TRÊN MẢNG 1 CHIỀU Ví dụ 2: Liệt kê các phần tử có giá trị lớn hơn x trong mảng void LietKeLonHonX(int a[], int n, int x){ for (int i = 0; i x) cout 2. CÁC THAO TÁC TRÊN MẢNG 1 CHIỀU 2.2. Đếm Mẫu 1: int DemXXX(int a[], int n){ int d = 0; for (int i = 0; i 2. CÁC THAO TÁC TRÊN MẢNG 1 CHIỀU Ví dụ 1: Đếm các phần tử có giá trị là số nguyên tố bool LaSNT(int k) { int d = 0; for (int i = 1; i 2. CÁC THAO TÁC TRÊN MẢNG 1 CHIỀU Ví dụ 2: Đếm các phần tử có trong mảng mà giá trị nhỏ hơn x int DemNhoHonX(int a[], int n, int x){ int d = 0; for (int i = 0; i 2. CÁC THAO TÁC TRÊN MẢNG 1 CHIỀU 2.3. Tìm kiếm Mẫu 1: Tìm và trả về vị trí phần tử có giá trị lớn nhất int TimVTMax(int a[], int n){ int vtmax = 0; for (int i = 0; i < n; i++) if (a[i] > a[vtmax]) vtmax = i; return vtmax; Mẫu 2: Tìm vị trí phần tử có giá trị x } (nếu x không xuất hiện trong mảng trả về -1) int TimVTX(int a[], int n, int x){ for (int i = 0; i < n; i++) if (a[i] == x) return i; return -1; 15 15 } 2. CÁC THAO TÁC TRÊN MẢNG 1 CHIỀU 2.4. Kiểm tra mảng có thỏa đk cho trước Trường hợp 1: Kiểm tra tồn tại một phần tử trong mảng thỏa điều kiện nào đó cho trước tìm phần tử thỏa điều kiện để kết luận. Mẫu 1: bool KiemTraTonTaiXXX(int a[], int n){ for (int i = 0; i 2. CÁC THAO TÁC TRÊN MẢNG 1 CHIỀU Trường hợp 2: Kiểm tra tất cả các phần tử thỏa điều kiện nào đó cho trước tìm phần tử không thỏa điều kiện để kết luận mảng không thỏa điều kiện. Mẫu 2: bool KiemTraXXX(int a[], int n){ for (int i = 0; i 2. CÁC THAO TÁC TRÊN MẢNG 1 CHIỀU Ví dụ 1: Kiểm tra xem mảng có tồn tại số lẻ không? bool KiemTraTonTaiLe(int a[], int n){ foreach (int giatri in a) if (giatri % 2 != 0) return true; return false; } 18 18 2. CÁC THAO TÁC TRÊN MẢNG 1 CHIỀU Ví dụ 2: Kiểm tra xem mảng có toàn giá trị âm không? (true: có/ false: không) bool KiemTraToanAm(int a[], int n){ for (int i = 0; i= 0) return false; return true; } 19 19 2. CÁC THAO TÁC TRÊN MẢNG 1 CHIỀU 2.5. Tính toán các phần tử trong mảng Mẫu tính tổng: int TongXXX(int a[], int n){ int s = 0; for (int i = 0; i ...
Nội dung trích xuất từ tài liệu:
Bài giảng Kỹ thuật lập trình nâng cao: Chương 2 - ThS. Dương Thành Phết TRƯỜNG CAO ĐẲNG CNTT TP.HCM KHOA CÔNG NGHỆ THÔNG TIN KỸ THUẬT LẬP TRÌNH NÂNG CAO Chương 2 KIỂU DỮ LIỆU CÓ CẤU TRÚC Giảng Viên: ThS. Dương Thành Phết Email: phetcm@gmail.com Website: http://www.thayphet.net 1 Tel: 0918158670 – facebook.com/DuongThanhPhet NỘI DUNG 1. Kiểu dữ liệu mảng 1 chiều 2. Các thao tác trên mảng 1 chiều 3. Mảng 2 chiều 4. Kiểu chuổi ký tự 5. Kiểu cấu trúc – Mảng cấu trúc 6. Kiểu tập tin - File 2 2 1. KIỂU DỮ LIỆU MẢNG 1 CHIỀU 1.1 Khái niệm Mảng thực chất là một biến bao gồm nhiều biến thành phần được cấp phát bộ nhớ liên tục. Các thành phần của mảng là tập hợp các biến có cùng kiểu dữ liệu và cùng tên. Do đó để truy xuất các biến thành phần, ta dùng cơ chế chỉ mục (Vị trí). Giá trị 0 1 2 3 4 5 6 7 8 9 3 Vị trí 3 1. KIỂU DỮ LIỆU MẢNG 1 CHIỀU 1.2. Khai báo < Kiểu dữ liệu > < Tên mảng > [ < Số p.tử tối đa của mảng> ] ; int a[100]; //Khai bao mang so nguyen a gom 100 phan tu float b[50]; //Khai bao mang so thuc b gom 50 phan tu char str[30]; //Khai bao mang ky tu str gom 30 ky tu 4 4 1. KIỂU DỮ LIỆU MẢNG 1 CHIỀU 1.3. Gán giá trị ban đầu cho mảng int a[5] = {3, 6, 8, 1, 12}; a[0] = 3, a[1] = 6, a[2] = 8, … int a[10] = {0}; a[0]=a[1]=a[2]=a[3]=…=a[9]=0 5 5 1. KIỂU DỮ LIỆU MẢNG 1 CHIỀU 1.4. Truy xuất Vị trí 0 1 2 3 4 A[0] A[1] A[2] A[3] A[4] 6 6 2. CÁC THAO TÁC TRÊN MẢNG 1 CHIỀU 1. Nhập/Xuất mảng void NhapMang (int a[], int n){ for (int i = 0; i < n; i ++){ cout 2. CÁC THAO TÁC TRÊN MẢNG 1 CHIỀU void main ( ){ int a[MAX] , n; coutn; NhapMang (a,n); cout 2. CÁC THAO TÁC TRÊN MẢNG 1 CHIỀU Xuất các phần tử thỏa điều kiện Mẫu 1: void LietKeXXX(int a[], int n){ for (int i = 0; i 2. CÁC THAO TÁC TRÊN MẢNG 1 CHIỀU Ví dụ 1: Liệt kê các phần tử có giá trị chẵn trong mảng void LietKeChan(int a[], int n){ for (int i = 0; i 2. CÁC THAO TÁC TRÊN MẢNG 1 CHIỀU Ví dụ 2: Liệt kê các phần tử có giá trị lớn hơn x trong mảng void LietKeLonHonX(int a[], int n, int x){ for (int i = 0; i x) cout 2. CÁC THAO TÁC TRÊN MẢNG 1 CHIỀU 2.2. Đếm Mẫu 1: int DemXXX(int a[], int n){ int d = 0; for (int i = 0; i 2. CÁC THAO TÁC TRÊN MẢNG 1 CHIỀU Ví dụ 1: Đếm các phần tử có giá trị là số nguyên tố bool LaSNT(int k) { int d = 0; for (int i = 1; i 2. CÁC THAO TÁC TRÊN MẢNG 1 CHIỀU Ví dụ 2: Đếm các phần tử có trong mảng mà giá trị nhỏ hơn x int DemNhoHonX(int a[], int n, int x){ int d = 0; for (int i = 0; i 2. CÁC THAO TÁC TRÊN MẢNG 1 CHIỀU 2.3. Tìm kiếm Mẫu 1: Tìm và trả về vị trí phần tử có giá trị lớn nhất int TimVTMax(int a[], int n){ int vtmax = 0; for (int i = 0; i < n; i++) if (a[i] > a[vtmax]) vtmax = i; return vtmax; Mẫu 2: Tìm vị trí phần tử có giá trị x } (nếu x không xuất hiện trong mảng trả về -1) int TimVTX(int a[], int n, int x){ for (int i = 0; i < n; i++) if (a[i] == x) return i; return -1; 15 15 } 2. CÁC THAO TÁC TRÊN MẢNG 1 CHIỀU 2.4. Kiểm tra mảng có thỏa đk cho trước Trường hợp 1: Kiểm tra tồn tại một phần tử trong mảng thỏa điều kiện nào đó cho trước tìm phần tử thỏa điều kiện để kết luận. Mẫu 1: bool KiemTraTonTaiXXX(int a[], int n){ for (int i = 0; i 2. CÁC THAO TÁC TRÊN MẢNG 1 CHIỀU Trường hợp 2: Kiểm tra tất cả các phần tử thỏa điều kiện nào đó cho trước tìm phần tử không thỏa điều kiện để kết luận mảng không thỏa điều kiện. Mẫu 2: bool KiemTraXXX(int a[], int n){ for (int i = 0; i 2. CÁC THAO TÁC TRÊN MẢNG 1 CHIỀU Ví dụ 1: Kiểm tra xem mảng có tồn tại số lẻ không? bool KiemTraTonTaiLe(int a[], int n){ foreach (int giatri in a) if (giatri % 2 != 0) return true; return false; } 18 18 2. CÁC THAO TÁC TRÊN MẢNG 1 CHIỀU Ví dụ 2: Kiểm tra xem mảng có toàn giá trị âm không? (true: có/ false: không) bool KiemTraToanAm(int a[], int n){ for (int i = 0; i= 0) return false; return true; } 19 19 2. CÁC THAO TÁC TRÊN MẢNG 1 CHIỀU 2.5. Tính toán các phần tử trong mảng Mẫu tính tổng: int TongXXX(int a[], int n){ int s = 0; for (int i = 0; i ...
Tìm kiếm theo từ khóa liên quan:
Kỹ thuật lập trình nâng cao Kỹ thuật lập trình Bài giảng Kỹ thuật lập trình nâng cao Kiểu dữ liệu có cấu trúc Mảng 1 chiều Mảng 2 chiềuGợi ý tài liệu liên quan:
-
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 251 0 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 192 0 0 -
Giới thiệu môn học Ngôn ngữ lập trình C++
5 trang 182 0 0 -
Bài giảng Nhập môn về lập trình - Chương 1: Giới thiệu về máy tính và lập trình
30 trang 151 0 0 -
Luận văn: Nghiên cứu kỹ thuật giấu tin trong ảnh Gif
33 trang 150 0 0 -
Bài giảng Lập trình Windows Form với C#: Chương 3 - Lê Thị Ngọc Hạnh
11 trang 150 0 0 -
Báo cáo thực tập Công nghệ thông tin: Lập trình game trên Unity
27 trang 117 0 0 -
Giáo trình về phân tích thiết kế hệ thống thông tin
113 trang 114 0 0 -
LUẬN VĂN: Tìm hiểu kỹ thuật tạo bóng cứng trong đồ họa 3D
41 trang 104 0 0 -
Bài giảng Kỹ thuật lập trình - Chương 10: Tổng kết môn học (Trường Đại học Bách khoa Hà Nội)
67 trang 103 0 0