Đăng ký Đăng nhập

Tài liệu Chuong5

.PDF
89
303
135

Mô tả:

Chương 5: Mảng, chỉ mục và tập hợp Nội dung chương 4 1. Mảng 2. Câu lệnh lặp foreach 3. Mảng đa chiều 4. Lớp System.Array 5. Bộ chỉ mục 6. Tập hợp (collection) 1. Mảng 1. Mảng Nội dung:  Khai báo mảng  Giá trị mặc định  Truy cập các thành phần trong mảng  Khởi tạo thành phần trong mảng  Sự dụng từ khóa params 1. Mảng  Mảng là gì ?  Mảng là một tập hợp có thứ tự của những đối tượng, Các đối tượng này cùng một kiểu.  Mảng có thể sử dụng các phương thức và thuộc tính.  Cú pháp được kết hợp giữa cú pháp khai báo mảng của C và định nghĩa lớp của C#. Do đó các đối tượng của mảng có thể truy cập những phương thức và thuộc tính của lớp System.Array. 1. Mảng  Tại sao phải sử dụng mảng? Ví dụ: Viết chương trình nhập vào 3 số a, b, c và tìm số lớn nhất static void Main(string[] args) { int a, b, c; Console.Write("Nhap vao so a"); a = int.Parse(Console.ReadLine()); Console.Write("Nhap vao so b"); b = int.Parse(Console.ReadLine()); Console.Write("Nhap vao so c"); c = int.Parse(Console.ReadLine()); int max = a; if (max < b) max = b; if (max < c) max = c; Console.ReadLine(); } 1. Mảng  Tại sao phải sử dụng mảng? Nhược điểm của cách này: - Có sự rời rạc trong lưu trữ của biến giá trị - Trong trường hợp phải tìm số lớn nhất trong 1000 số thì giải pháp bên là không khả thi  buộc phải sử dụng mảng để lưu trữ, kết hợp với vòng lặp phục vụ cho quá trình tính toán 1. Mảng  Cú pháp khai báo mảng 1. Khai báo mảng: [] ; Cú pháp 1: cho phép khai báo 1 mảng thuộc kiểu dữ liệu xác định Vi dụ: float [] diemthi; Sau khi đã khai báo xong mảng, tiến hành tạo đối tượng của mảng bằng cách sử dụng từ khóa new như sau: = new []; Ví dụ: diemthi = new float[10]; Khai báo này sẽ thiết lập bên trong bộ nhớ một mảng chứa mười số thực 1. Mảng 2. Khai báo và khởi tạo mảng đồng thời [] = new []; Cú pháp 2: cho phép khai báo và khởi tạo 1 mảng đồng thời thông qua từ khóa new. Vi dụ: int[] thu=new int[38]; char[] kt=new char[26]; 1. Mảng 3. Tạo mảng với các giá trị ban đầu [] = {,,…, } Cú pháp 3: cho phép khai báo 1 mảng có số phần tử tương ứng với các giá trị được liệt kê trong tập hợp. Ví dụ: string[] thuTT={“hai”,”ba”,”tu”,”nam”,”sau”,”bay”,”cn”}; int[] myIntArray=new int [6]{1,2,3,4,5,6}; 1. Mảng Lưu ý: sau khi ta khởi tạo mảng bằng toán tử new các phần tử của mảng sẽ mang các giá trị mặc định như bảng bên Kiểu dữ liệu Giá trị mặc định Ví dụ: int []sn = new int[5];  tạo ra mảng sn có 5 phần tử số nguyên và mỗi phần tử có gt là 0 int, long, byte,… bool 0 False char ‘\0’ (null) enum 0 reference Null 1. Mảng Tuy nhiên, nếu mảng tạo ra là mảng kiểu tham chiếu thì các giá trị mặc định sẽ không được gán. Ví dụ: sinhvien[] msv = new sinhvien[5]; Kiểu dữ liệu Giá trị mặc định int, long, byte,… bool 0 False char ‘\0’ (null) enum 0 reference Null 1. Mảng Do đó, để sử dụng mảng này ta phải tạo và gán đối tượng sinhvien cho từng thành phần tham chiếu trong mảng. Ví dụ: for (int i=0;i<5;i++) { sinhvien[i]=new sinhvien(); sinhvien[i].nhap(); } Sử dụng toán tử [] để lấy chỉ số Khởi tạo thông qua constructor 1. Mảng  Để truy cập các thành phần trong mảng ta sử dụng toán tử chỉ mục []. Với phần từ đầu tiên của mảng mang chỉ số 0  Có thể dùng thuộc tính length để xác định chiều dài của mảng. Ví dụ: int[] mang=new int[6]{1,2,3,4,5,6}; for(int i=0; i 0); Console.Write(doc); Console.ReadLine(); } 1. Mảng Bài tập 2: Viết chương trình nhập vào 1 năm dương lịch, in ra năm âm lịch tương ứng. Biết năm âm lịch được được kết hợp bởi can và chi. Can và chi được mô tả lần lượt như sau: Can=“Giáp,Ất,Bính,Đinh,Mậu,Kỷ,Canh,Tân,Nhâm,Quý” Chi=“Tý,Sửu,Dần,Mão,Thìn,Tị,Ngọ,Mùi,Thân,Dậu,Tuất,Hợi” Ví dụ: x= 2013 in ra: Nam duong lich: 2013 -> am lich: quý tị 1. Mảng  Từ khóa Params: - Được sử dụng khi không xác định được số lượng đối số truyền vào cho một phương thức. - Cho phép truyền một số biến của tham số mà không cần thiết phải tạo mảng. Ví dụ: public void DisplayVals(params int[] intVals) { for(int i=0;i - Xem thêm -