Xem mẫu

  1. Đại Học Quốc Gia TP.HCM Khoa Hệ Thống Thông Tin Đại Học Kinh Tế Luật Chương 2 Xử lý mảng và chuỗi
  2. Đại Học Quốc Gia TP.HCM Khoa Hệ Thống Thông Tin Đại Học Kinh Tế Luật Nội dung Mảng Các thao tác trên mảng Chuỗi Các thao tác trên chuỗi
  3. Đại Học Quốc Gia TP.HCM Khoa Hệ Thống Thông Tin Đại Học Kinh Tế Luật Mảng Là tập hợp nhiều phần tử có cùng kiểu dữ liệu Số phần tử trong mảng được xác định trước Mỗi phần tử được đánh số chỉ mục, bắt đầu từ 0
  4. Đại Học Quốc Gia TP.HCM Khoa Hệ Thống Thông Tin Đại Học Kinh Tế Luật Mảng Một phòng chứa các tủ Số lượng tủ chứa ? Tủ Chứa gì? Số thứ tự tủ, chỉ mục tủ
  5. Đại Học Quốc Gia TP.HCM Khoa Hệ Thống Thông Tin Đại Học Kinh Tế Luật Mảng Ví dụ về mảng: Mảng các từ: Khoa Hệ Thống Thông Tin 0 1 2 3 4 Mảng các số nguyên: 0 1 2 3 4 5 6 7
  6. Đại Học Quốc Gia TP.HCM Khoa Hệ Thống Thông Tin Đại Học Kinh Tế Luật Khai báo Mảng KiểuDữLiệu[] tênMảng; Ví dụ  int[] bangDiem;  string[] loiNoi;  DateTime[] ngaySinh;
  7. Đại Học Quốc Gia TP.HCM Khoa Hệ Thống Thông Tin Đại Học Kinh Tế Luật Khởi tạo Mảng tenMang = new KieuDuLieu[soPhanTu] Ví dụ  diem = new int[10];  loiNoi = new string[20];  ngaySinh = new DateTime[7];  float diemTB = new float[5]; 0 0 0 0 0 0 1 2 3 4
  8. Đại Học Quốc Gia TP.HCM Khoa Hệ Thống Thông Tin Đại Học Kinh Tế Luật Khởi tạo và gán giá trị Mảng tenMang = new KieuDuLieu[spt]{gtri1, gtri2, gtri3,…};  diem = new int[5]{ 5, 6, 7, 6, 9 } Giá trị không nhất thiết phải là hằng số  Ví dụ Random r = new Random(); int[] pins = new int[4]{ r.Next() % 10, r.Next() % 10, r.Next() % 10, r.Next() % 10 }; Số giá trị trong dấu ngoặc phải bằng số phần tử mảng được khai báo
  9. Đại Học Quốc Gia TP.HCM Khoa Hệ Thống Thông Tin Đại Học Kinh Tế Luật Truy suất từng phần tử Mảng Xác định số phần tử của mảng  tenMang.Length Truy xuất phần tử: tenMang[soThuTu]  0
  10. Đại Học Quốc Gia TP.HCM Khoa Hệ Thống Thông Tin Đại Học Kinh Tế Luật Gán giá trị cho từng phần tử Mảng Gán điểm thứ 3 của mảng diem là 10  diem[2] = 10 5 6 10 6 9 0 1 2 3 4 Gán điểm thứ 4 của mảng diem bằng điểm thứ nhất cộng 4  diem[3] = diem[0] + 4
  11. Đại Học Quốc Gia TP.HCM Khoa Hệ Thống Thông Tin Đại Học Kinh Tế Luật Duyệt Mảng Dùng vòng lặp for Ví dụ duyệt mảng diem for (int i = 0; i < diem.Length; i++) { Console.WriteLine(diem[i].ToString()); } Duyệt và gán phần tử for (int i = 0; i < diem.Length; i++) { diem[i] += 1; Console.WriteLine(diem[i].ToString()); }
  12. Đại Học Quốc Gia TP.HCM Khoa Hệ Thống Thông Tin Đại Học Kinh Tế Luật Duyệt Mảng bằng foreach Ví dụ foreach (int i in diem) { Console.WriteLine(i.ToString()); } Không nên dùng foreach khi  Cần duyệt một phần trong mảng (ví dụ duyệt từ phần tử thứ 2 tới thứ 10)  Cần duyệt từ cuối về đầu mảng  Cần biết chỉ số mảng trong vòng lặp  Cần thay đổi giá trị của phần tử mảng
  13. Đại Học Quốc Gia TP.HCM Khoa Hệ Thống Thông Tin Đại Học Kinh Tế Luật Sao chép Mảng Mảng là kiểu tham chiếu  gán mảng là gán tham chiếu Ví dụ  int[] mangA = diem;   mangA và diem cùng tham chiếu đến vùng nhớ chứa các phần tử của mảng  Thay đổi giá trị trong mangA sẽ ảnh hưởng đến diem
  14. Đại Học Quốc Gia TP.HCM Khoa Hệ Thống Thông Tin Đại Học Kinh Tế Luật Sao chép Mảng diem 5 6 7 6 9 mangA diem 5 6 8 6 9 mangA
  15. Đại Học Quốc Gia TP.HCM Khoa Hệ Thống Thông Tin Đại Học Kinh Tế Luật Sao chép Mảng Tạo mảng mới và gán giá trị từ mảng cũ Dùng CopyTo  int[] mangA = new int[diem.Length];  diem.CopyTo(mangA, 0); Dùng Array.Copy  Array.Copy(diem, mangA, diem.Length); Dùng Clone  mangA = (int[]) diem.Clone();
  16. Đại Học Quốc Gia TP.HCM Khoa Hệ Thống Thông Tin Đại Học Kinh Tế Luật Đảo Mảng Phương thức Reverse củ a lớp Array thực hiệ n việ c đả o thứ tự cá c phan tử trong mả ng. Cú phá p thực hiệ n: int[] mang = { 15, 26, 7, 28, 19, 6 }; Array.Reverse(mang); Kết quả: mang = { 6,19,28,7,26,15};
  17. Đại Học Quốc Gia TP.HCM Khoa Hệ Thống Thông Tin Đại Học Kinh Tế Luật Sắp xếp Mảng Phương thức Sort() củ a lớp Array thực hiệ n việ c sap xep cá c phan tử trong mả ng. Cú phá p thực hiệ n: Array.Sort(ten_mang); Ví dụ: int[] mang = { 9, 5, 7, 4, 6 }; Array.Sort(mang); Kết quả: mang = { 4, 5, 6, 7,9 };
  18. Đại Học Quốc Gia TP.HCM Khoa Hệ Thống Thông Tin Đại Học Kinh Tế Luật Tìm kiếm trên Mảng Tìm kiếm trên mảng đã được sắp xếp 0 2 5 6 7 8 9 9 8 7 6 5 2 0 Tìm kiếm trên mảng chưa được sắp xếp 5 2 9 7 6 0 8
  19. Đại Học Quốc Gia TP.HCM Khoa Hệ Thống Thông Tin Đại Học Kinh Tế Luật Tìm kiếm trên Mảng Tìm kiếm trên mảng đã được sắp xếp Phương thức BinarySearch củ a lớp Array thực hiệ n việ c tı̀ m kiem mộ t giá trị trong mộ t mả ng đãđược sap xep trước, trả ve ket quả làso nguyên cho biet chı̉ so index củ a phan tử tı̀ m được, neu không tı̀ m được thı̀ trả ve -1. Cú phá p thực hiệ n: int vitri = Array.BinarySearch(tenMang, giaTriCanTim);
  20. Đại Học Quốc Gia TP.HCM Khoa Hệ Thống Thông Tin Đại Học Kinh Tế Luật Tìm kiếm trên Mảng đã sắp xếp Ví dụ: mang 0 2 5 6 7 8 9 int vitri = Array.BinarySearch(mang, 7); Kết quả vitri=4 (Tìm thấy số 7 ở vị trí thứ 4) int vitri = Array.BinarySearch(mang, 113); Kết quả vitri=-1 (-1 tức là không tìm thấy số 113)
nguon tai.lieu . vn