Chương 6 Mảng, chỉ mục và tập hợp nằm trong bài giảng cơ sở lập trình máy tính nhằm trình bày về các nội dung chính: mảng và giao diện tập hợp, khởi tạo và truy xuất mảng, câu lệnh foreach, truyền tham số mảng vào phương thức, chỉ mục đối tượng.
Trang 1Chương 6:
Mảng, chỉ mục và tập hợp
Gi ả ng viên: Ths Nguyễn Thị Khiêm Hòa
Trang 2Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
2
Nội dung
Giao diện tập hợp
Trang 3Danh sách
Danh sách là dãy hữu hạn có thứ tự của các phần tử
thuộc một lớp đối tượng
Ký hiệu: L(a1, a2, …, an)
giữa các phần tử được hiển thị
Trang 4Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
Trang 5Mảng
trong bộ nhớ
theo từng kiểu đối tượng
Trang 6Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
<kiểu DL> [ ] <tên biến mảng> = new <kiểu DL> [<số pt>];
Ví dụ: int[ ] array = new int[5];
Mảng đối tượng
<kiểu đt> [ ] <tên biến mảng> = new <kiểu đt> [<số pt>];
Ví dụ: Animal [ ] animals = new Animal [10];
Trang 7Khởi tạo và truy xuất mảng
Trang 8Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
Trang 9Truyền tham số mảng vào phương thức
public int Sum(params int[] list)
Trang 10Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
10
Chỉ mục đối tượng
public class Zoo
{
private Animal[] theAnimals;
public Animal this[int i]
{
get {return theAnimals[i];}
set {theAnimals[i] = value;}
} }
Trang 11Chỉ mục đối tượng
public class MyList
{
private string [] str;
private int idx = 0;
public string this[int index]
{
get {return str[index];}
set {str[ index ] = value;}
} public MyList(params string[] InitStr) {
str = new String[256];
foreach (string s in InitStr) str[idx++] = s;
Trang 12Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
Trang 13ml.Add("Lap trinh huong doi tuong");
ml.Add("Phan tich thiet ke he thong");
string sttest = "Co so du lieu";
ml[1] = sttest;
for (int i = 0; i < ml.GetNumEntries();i++) Console.WriteLine("{0}", ml[i]);
}
Trang 14Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
14
Chỉ mục đối tượng
Trang 15Bài tập
việc tính tổng, tổng chẳn, tổng lẻ … trong mảng
trong lớp Animal
Thực hiện
Trang 16Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
Trang 17Khái niệm
thông thường trong ứng dụng
chỉ mục (index)
Ví dụ: mảng; ArrayList
Trang 18Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
Trang 19ArrayList <Tên_biến> = new ArrayList();
Trang 20Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
phần tử lớn hơn, Capacity tự động nhân đôi
ArgumentOutofRangeException
Trang 21Phương thức ArrayList Class
Trang 22Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
22
ArrayList Class
public class Employee
{
private int empID;
public Employee(int empID) {
this.empID = empID;
} public int EmpID {
get { return empID;}
set { empID = value;}
} public override string ToString() {
return empID.ToString();
} }
Trang 23ArrayList empArr = new ArrayList();
for(int i=0; i<5; i++)
Trang 24Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
Trang 26Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
Trang 28Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
28
Hàng đợi (Queue)
Trang 30Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
Trang 31Pop
Trang 32Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
32
Ngăn xếp (Stack)
Trang 33Ngăn xếp (Stack)
Trang 34Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
34
Ngăn xếp (Stack)
Trang 36Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
Trang 38Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
Trang 39IEnumerable
IEnumerator cho phép liệt kê các phần tử trong tập hợp
và kiểm tra chỉ mục có vượt quá số phần tử của tập hợp
hợp
Trang 40Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
Trang 41IComparer
sắp xếp tập hợp
Trang 42Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
Trang 43IComparerable
public class Employee: IComparable
{
private int empID;
public Employee(int empID) { this.empID = empID;}
public int EmpID {
get { return empID;}
set { empID = value;}
} public override string ToString() { return empID.ToString();}
public int CompareTo(object o) {
Employee r = (Employee) o;
return this.empID.CompareTo(r.empID);
}
Trang 44Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM
ArrayList empArray = new ArrayList();
Random r = new Random();
// đưa vào mảng for( int i = 0; i < 5; i++) {
empArray.Add( new Employee(r.Next(10)+100));
} // in tất cả nội dung PrintValue(empArray);
// sắp xếp lại mảng Employee empArray.Sort();
// hiển thị tất cả nội dung của mảng Employee PrintValue(empArray);
} }
Trang 45Q&A