Xem mẫu
- Đạ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
- Đạ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
- Đạ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
- Đạ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ủ
- Đạ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
- Đạ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;
- Đạ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
- Đạ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
- Đạ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
- Đạ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
- Đạ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());
}
- Đạ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
- Đạ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
- Đạ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
- Đạ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();
- Đạ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};
- Đạ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 };
- Đạ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
- Đạ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);
- Đạ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