Lập trình Ứng dụng Quản lý 1
Chương 05:
Kỹ thuật xử lý danh sách
GV. Trương Phước Lộc
09/2017
Khoa CNTT-ĐH.KHTN
Nội dung
1. Mảng 1 chiều
2. Mảng 2 chiều
3. Đối tượng danh sách
GV. Trương Phước Lộc
2
Khoa CNTT-ĐH.KHTN
1. Mảng 1 chiều
• Mảng 1 chiều trong VB.NET thực chất là lớp
System.Array
• Thuộc tính
▫ Length: số phần tử của mảng
▫ Rank: số chiều của mảng
• Phương thức
▫ Clone(): tạo bản sao của mảng
▫ GetLength(i): trả về số phần tử của chiều thứ i của
mảng
▫ CopyTo : sao chép các phần tử của mảng sang một
mảng khác
GV. Trương Phước Lộc
3
Khoa CNTT-ĐH.KHTN
1. Mảng 1 chiều
• Phương thức tĩnh:
▫
▫
▫
▫
Copy
Find / FindAll / FindIndex / FindLast / FindLastIndex
IndexOf / LastIndexOf
Sort
GV. Trương Phước Lộc
4
Khoa CNTT-ĐH.KHTN
1. Mảng 1 chiều – các thao tác
• Duyệt mảng
▫ Một vịng lặp để duyệt từng phần tử
• Tìm kiếm
▫ Duyệt từng phần tử, phần tử nào thỏa điều kiện thì trả
về vị trí
▫ Tìm tất cả => tạo mảng chứa kết quả
• Tìm giá trị nhỏ nhất
▫ Giá trị được cập nhật đổi nếu phần tử đang xét thỏa
điều kiện
• Tính tổng của mảng
▫ Duyệt từng phần tử, giá trị của phần tử sẽ được cộng
vào biến kết quả
GV. Trương Phước Lộc
5
Khoa CNTT-ĐH.KHTN
1. Mảng 1 chiều – các giải thuật
• Chèn thêm phần tử vào vị trí cho trước
▫ Tăng kích thước mảng thêm một phần tử
▫ Dịch chuyển các phần tử từ vị trí cho trước ra sau
một phần tử
▫ Gán phần tử muốn thêm vào vị trí cho trước.
• Xóa phần tử tại vị trí cho trước
▫ Dịch chuyển các phần tử sau vị trí cho trước ra
trước một phần tử
▫ Giảm kích thước mảng đi một phần tử
• Sắp xếp tăng
▫ Tùy thuật toán
GV. Trương Phước Lộc
6
Khoa CNTT-ĐH.KHTN
1. Bài tập áp dụng
Viết một chương trình, cho phép người dùng
• Nhập vào danh sách các số nguyên
• Xuất phần tử lớn nhất trong mảng
• Xuất ra tất cả vị trí của phần tử lớn nhất trong
mảng
• Xuất phần tử lớn thứ hai trong mảng
• Xuất số nguyên nhỏ nhất trong mảng
• Xuất số nguyên đứng cuối cùng trong mảng
• Sắp xếp mảng giảm dần và xuất ra mảng đã
sắp xếp
GV. Trương Phước Lộc
7
Khoa CNTT-ĐH.KHTN
1. Sử dụng các hàm tìm kiếm
▫ Find / FindAll / FindIndex / FindLast / FindLastIndex
• Các tham số:
▫ array: mảng muốn tìm kiếm
▫ Match : hàm kiểm tra điều kiện, có định dạng
Predicate(Of T)
GV. Trương Phước Lộc
8
Khoa CNTT-ĐH.KHTN
2. Mảng hai chiều
• Cú pháp khai báo mảng.
int nums[][];
int nums[,];
• Cấp phát lại số phần tử mảng.
nums = new int[3]
nums = new int[3,4];
GV. Trương Phước Lộc
9
Khoa CNTT-ĐH.KHTN
3. Đối tượng danh sách
Một số đối tượng dùng lưu trữ danh sách
• List<kieu_du_lieu>
• ArrayList
• SortedList
• Hashtable
=> Khởi tạo bằng hàm new
GV. Trương Phước Lộc
10
Khoa CNTT-ĐH.KHTN
3. Đối tượng danh sách
• Thuộc tính
▫ Count: số phần tử của mảng
▫ Capacity : khả năng chứa của danh sách
• Phương thức
▫
▫
▫
▫
▫
Find / FindIndex / FindLast / FindAll
Add / AddRange / Insert / InsertRange
Remove / RemoveAt / RemoveAll / Clear
CopyTo
IndexOf
GV. Trương Phước Lộc
11
Khoa CNTT-ĐH.KHTN
3. Đối tượng danh sách
•
•
•
•
•
•
•
Duyệt mảng
Tìm kiếm
Tìm giá trị nhỏ nhất
Tính tổng của mảng
Chèn thêm phần tử vào vị trí cho trước
Xóa phần tử tại vị trí cho trước
Sắp xếp tăng
GV. Trương Phước Lộc
12
Khoa CNTT-ĐH.KHTN
Câu hỏi
GV. Trương Phước Lộc
13