7. Mảng trong C#

- 0 / 0
(Tài liệu chưa được thẩm định)
Nguồn:
Người gửi: Thư Viện Điện Tử (trang riêng)
Ngày gửi: 08h:21' 11-04-2014
Dung lượng: 1.9 MB
Số lượt tải: 24
Nguồn:
Người gửi: Thư Viện Điện Tử (trang riêng)
Ngày gửi: 08h:21' 11-04-2014
Dung lượng: 1.9 MB
Số lượt tải: 24
Số lượt thích:
0 người
C#
1. Giới thiệu về ngôn ngữ lập trình C#
2. Biến kiểu dữ liệu và toán tử trong C#
3. Cấu trúc chương trình C#
4. Lớp và đối tượng trong C#
5. Tính kế thừa và đa hình trong C#
6. Các lớp trừu tượng và giao diện trong C#
7. Mảng trong C#
C#
8. Windows Forms
10. Các điều khiển và hộp hội thoại
11. ADO.Net trong C#
12. Thao tác với các file và luồng dữ liệu
13. Đa tuyến
14. Kiểm thử
9. Thao tác với chuỗi
7. Mảng trong C#
Mảng
là một tập hợp hữu hạn các phần tử có cùng kiểu dữ liệu .
Khai báo mảng
[]
int[] so;
float[] diem;
string[] tenlop;
Tạo thể hiện của mảng bằng cách sử dụng từ khóa new
int[] so = new int[10];
float[] diem = new float[3];
7. Mảng trong C#
Giá trị mặc định
tạo một mảng có kiểu dữ liệu giá trị, mỗi thành phần sẽ chứa giá trị mặc định của kiểu dữ liệu
int[] so = new int[5];
tạo ra một mảng năm số nguyên, và mỗi thành phần được thiết lập giá trị mặc định là 0
7. Mảng trong C#
Khởi tạo thành phần của mảng
Khởi tạo nội dung của một mảng ngay lúc tạo thể hiện của mảng bằng cách đặt những giá trị bên trong dấu ngoặc ({}).
C# cung cấp hai cú pháp để khởi tạo các thành phần của mảng, một cú pháp dài và một cú pháp ngắn:
7. Mảng trong C#
Truy cập các thành phần trong mảng
Để truy cập vào thành phần trong mảng ta có thể sử dụng toán tử chỉ mục ([]). Mảng dùng cơ sở 0, do đó chỉ mục của thành phần đầu tiên trong mảng luôn luôn là 0
7. Mảng trong C#
Khai báo một mảng số nguyên gồm 5 phần tử, nhập giá trị của các phần tử từ bàn phím và hiện kết quả lên màn hình
7. Mảng trong C#
Sử dụng thuộc tính Length để lấy tổng số phần tử của mảng
7. Mảng trong C#
Sử dụng thuật toán sắp xếp để sắp xếp các phần tử của mảng theo chiều tăng dần
7. Mảng trong C#
Sử dụng phương thức sort của mảng để sắp xếp các phần tử của mảng
7. Mảng trong C#
Từng bước sắp xếp các phần tử của mảng theo chiều tăng dần
7. Mảng trong C#
Một số các thuộc tính và phương thức của lớp System.Array
Ngôn ngữ C# cung cấp cú pháp chuẩn cho việc khai báo những đối tượng Array đối tượng của kiểu System.Array
7. Mảng trong C#
7. Mảng trong C#
Sử dụng phương thức Array.Reverse() để đảo ngược mảng đã được sắp xếp
7. Mảng trong C#
Tìm 1 giá trị trong mảng trả về vị trí của phần tử nếu tìm thấy (trả về -1 nếu không tìm thấy)
7. Mảng trong C#
Thêm một phần tử vào cuối mảng
Sử dụng phương thức Resize của lớp Array để tăng thêm kích thước của mảng và gán giá trị cho phần tử cần thêm vào
7. Mảng trong C#
Thêm một phần tử vào vị trí bất kỳ trong mảng
B1. Xác định vị trí k cần chèn thêm 1 phần tử
B2. Sử dụng phương thức Resize của lớp Array để tăng thêm kích thước của mảng một phần tử
B3. Dịch chuyển giá trị của phần tử tại vị trí có chỉ số k đến phần tử kế cuối có chỉ số n-1 sang phải 1 phần tử
B4.Gán giá trị cho phần tử ở vị trí thứ k
vd minh họa như sau:
7. Mảng trong C#
7. Mảng trong C#
Xóa một phần tử ở cuối mảng
Sử dụng phương thức Resize của lớp Array để giảm kích thước của mảng
7. Mảng trong C#
Xóa một phần tử ở vị trí bất kỳ trong mảng
7. Mảng trong C#
7. Mảng trong C#
Mảng đa chiều
Mảng hai chiều được tổ chức thành các dòng và cột, trong đó các dòng là được tính theo hàng ngang của mảng, và các cột được tính theo hàng dọc của mảng.
int[,] A = new int[100,100];
Ngôn ngữ C# hỗ trợ hai kiểu mảng đa chiều là:
Mảng đa chiều cùng kích thước: trong mảng này mỗi dòng trong mảng có cùng kích thước với nhau. Mảng này có thể là hai hay nhiều hơn hai chiều.
Mảng đa chiều không cùng kích thước: trong mảng này các dòng có thể không cùng kích thước với nhau.
7. Mảng trong C#
Vd: Viết chương trình – nhập giá trị cho 2 ma trận từ bàn phím – tính tổng 2 ma trận, tính tổng từng hàng, tính tổng từng cột , tìm giá trị lớn nhất và nhỏ nhất cho từng hàng, từng cột– hiện kết quả lên màn hình
Mảng đa chiều cùng kích thước
Mảng đa chiều cùng kích thước còn gọi là mảng hình chữ nhật (rectanguler array).
7. Mảng trong C#
7. Mảng trong C#
7. Mảng trong C#
Sử dụng từ khóa new để khởi tạo tổng số phần tử của hàng và cột trong mảng
7. Mảng trong C#
Khởi tạo giá trị cho các thành phần của mảng 2 chiều
7. Mảng trong C#
Mảng đa chiều có kích khác nhau
Kích thước của các chiều có thể không bằng nhau
Khi tạo một mảng đa chiều kích thước khác nhau thì khai báo số dòng trong mảng trước. Sau đó mỗi dòng sẽ giữ một mảng có kích thước bất kỳ. Những mảng
này được khai báo riêng. Sau đó khởi tạo giá trị các thành phần trong từng mảng.
Trong mảng này, mỗi chiều là một mảng một chiều
7. Mảng trong C#
7. Mảng trong C#
Danh sách mảng
Lớp ArrayList là một kiểu dữ liệu mảng mà kích thước của nó được gia tăng một cách động theo yêu cầu.
ArrayList cung cấp một số phương thức và những thuộc tính cho các thao tác liên quan đến mảng.
7. Mảng trong C#
7. Mảng trong C#
7. Mảng trong C#
7. Mảng trong C#
Sử dụng đối tượng Arraylist để tạo ra một danh sách mảng các phần tử
7. Mảng trong C#
Stack
7. Mảng trong C#
Queue
7. Mảng trong C#
Kiểu từ điển
Từ điển là kiểu tập hợp trong đó có hai thành phần chính liên hệ với nhau là khóa và giá trị.
Thuộc tính quan trọng của một từ điển tốt là dễ thêm giá trị mới vào, và nhanh chóng truy cập đến giá trị. Một vài từ điển thì nhanh hơn về thời gian thêm một giá trị mới vào, một số khác thì tối ưu cho việc truy cập. Một trong minh họa cho kiểu từ điển là kiểu dữ liệu hashtable hay còn gọi là bảng băm.
Hashtable là một kiểu từ điển được tối ưu cho việc truy cập được nhanh. Một số các phương thức chính và các thuộc tính của kiểu dữ liệu Hashtable
7. Mảng trong C#
7. Mảng trong C#
Trong một Hashtable, mỗi giá trị được lưu trữ trong một vùng. Mỗi vùng được đánh số tương tự như là từng offset trong mảng. Do khóa có thể không phải là số nguyên, nên phải chuyển các khóa thành các khóa số để ánh xạ đến vùng giá trị được đánh số.
Mỗi khóa phải cung cấp phương thức GetHashCode() để nhận giá trị mã hóa thành số của nó
Thêm giá trị vào Hashtable thì Hashtable sẽ gọi phương thức GetHashCode() cho mỗi giá trị mà chúng ta cung cấp. Phương thức này trả về một số nguyên, xác định vùng mà giá trị được lưu trữ trong hashtable
7. Mảng trong C#
Giao diện IDictionary
Hashtable là một từ điển vì nó thực thi giao diện IDictionary. IDictionary cung cấp một thuộc tính public là Item. Thuộc tính Item truy cập một giá trị thông qua một khóa xác định.
Thuộc tính Item được khai báo như sau
Thuộc tính Item được thực thi trong ngôn ngữ C# với toán tử chỉ mục ([]). Do vậy chúng ta có thể truy cập những item trong bất cứ đối tượng từ điển bằng cú pháp giống như truy cập mảng.
7. Mảng trong C#
vd: Thêm một item vào trong bảng Hashtable và sau đó truy cập lại chúng thông qua thuộc tính Item.
7. Mảng trong C#
Tập khóa và tập giá trị
Hai thuộc tính là thuộc tính Keys, và thuộc tính Values. Trong đó Keys truy cập đối tượng ICollection với tất cả những khóa trong Hashtable, và Values truy cập đối tượng ICollection với tất cả giá trị.
7. Mảng trong C#
Sử dụng phương thức Remove và thuộc tính Count của Hashtable
7. Mảng trong C#
7. Mảng trong C#
Câu hỏi
1. Viết một chương trình tạo ra một mảng một chiều nguyên chứa giá trị của các phần tử được nhập vào từ bàn phím. Sắp xếp các thành phần của mảng theo thứ tự tăng dần và hiện kết quả. Làm tương tự với trường hợp sắp xếp mảng theo thứ tự giảm dần.
2. Viết một chương trình tìm số lớn nhất và nhỏ nhất trong mảng 2 chiều có kích thước cố định. Các thành phần trong mảng được nhập vào từ bàn phím.
3. Viết chương trình sử dụng ArrayList để tạo một mảng. Sử dụng thuộc tính Count và Capacity
7. Mảng trong C#
4. Viết chương trình cho phép người dùng nhập vào một ma trận n x m, sau đó tìm kiếm một giá trị bất kỳ và hiện kết quả là thứ tự của giá trị cần tìm trong ma trận.
5. Viết chương trình tạo ra đối tượng Queue tên là myQueue. Khởi tạo myQueue với 5 giá trị ngẫu nhiên. Hãy thực hiện các bước sau:
7. Mảng trong C#
6. Viết chương trình tạo ra đối tượng Stack tên là myStack. Khởi tạo myStack với 5 giá trị ngẫu nhiên. Hãy thực hiện các bước sau:
7. Viết chương sử dụng kiểu dữ liệu từ điển để quản lý thông tin của một lớp học. Trong đó khóa là chuỗi mã số sinh viên, giá trị là chuỗi tên của học viên.
Cảm ơn các bạn đã theo dõi
1. Giới thiệu về ngôn ngữ lập trình C#
2. Biến kiểu dữ liệu và toán tử trong C#
3. Cấu trúc chương trình C#
4. Lớp và đối tượng trong C#
5. Tính kế thừa và đa hình trong C#
6. Các lớp trừu tượng và giao diện trong C#
7. Mảng trong C#
C#
8. Windows Forms
10. Các điều khiển và hộp hội thoại
11. ADO.Net trong C#
12. Thao tác với các file và luồng dữ liệu
13. Đa tuyến
14. Kiểm thử
9. Thao tác với chuỗi
7. Mảng trong C#
Mảng
là một tập hợp hữu hạn các phần tử có cùng kiểu dữ liệu .
Khai báo mảng
int[] so;
float[] diem;
string[] tenlop;
Tạo thể hiện của mảng bằng cách sử dụng từ khóa new
int[] so = new int[10];
float[] diem = new float[3];
7. Mảng trong C#
Giá trị mặc định
tạo một mảng có kiểu dữ liệu giá trị, mỗi thành phần sẽ chứa giá trị mặc định của kiểu dữ liệu
int[] so = new int[5];
tạo ra một mảng năm số nguyên, và mỗi thành phần được thiết lập giá trị mặc định là 0
7. Mảng trong C#
Khởi tạo thành phần của mảng
Khởi tạo nội dung của một mảng ngay lúc tạo thể hiện của mảng bằng cách đặt những giá trị bên trong dấu ngoặc ({}).
C# cung cấp hai cú pháp để khởi tạo các thành phần của mảng, một cú pháp dài và một cú pháp ngắn:
7. Mảng trong C#
Truy cập các thành phần trong mảng
Để truy cập vào thành phần trong mảng ta có thể sử dụng toán tử chỉ mục ([]). Mảng dùng cơ sở 0, do đó chỉ mục của thành phần đầu tiên trong mảng luôn luôn là 0
7. Mảng trong C#
Khai báo một mảng số nguyên gồm 5 phần tử, nhập giá trị của các phần tử từ bàn phím và hiện kết quả lên màn hình
7. Mảng trong C#
Sử dụng thuộc tính Length để lấy tổng số phần tử của mảng
7. Mảng trong C#
Sử dụng thuật toán sắp xếp để sắp xếp các phần tử của mảng theo chiều tăng dần
7. Mảng trong C#
Sử dụng phương thức sort của mảng để sắp xếp các phần tử của mảng
7. Mảng trong C#
Từng bước sắp xếp các phần tử của mảng theo chiều tăng dần
7. Mảng trong C#
Một số các thuộc tính và phương thức của lớp System.Array
Ngôn ngữ C# cung cấp cú pháp chuẩn cho việc khai báo những đối tượng Array đối tượng của kiểu System.Array
7. Mảng trong C#
7. Mảng trong C#
Sử dụng phương thức Array.Reverse() để đảo ngược mảng đã được sắp xếp
7. Mảng trong C#
Tìm 1 giá trị trong mảng trả về vị trí của phần tử nếu tìm thấy (trả về -1 nếu không tìm thấy)
7. Mảng trong C#
Thêm một phần tử vào cuối mảng
Sử dụng phương thức Resize của lớp Array để tăng thêm kích thước của mảng và gán giá trị cho phần tử cần thêm vào
7. Mảng trong C#
Thêm một phần tử vào vị trí bất kỳ trong mảng
B1. Xác định vị trí k cần chèn thêm 1 phần tử
B2. Sử dụng phương thức Resize của lớp Array để tăng thêm kích thước của mảng một phần tử
B3. Dịch chuyển giá trị của phần tử tại vị trí có chỉ số k đến phần tử kế cuối có chỉ số n-1 sang phải 1 phần tử
B4.Gán giá trị cho phần tử ở vị trí thứ k
vd minh họa như sau:
7. Mảng trong C#
7. Mảng trong C#
Xóa một phần tử ở cuối mảng
Sử dụng phương thức Resize của lớp Array để giảm kích thước của mảng
7. Mảng trong C#
Xóa một phần tử ở vị trí bất kỳ trong mảng
7. Mảng trong C#
7. Mảng trong C#
Mảng đa chiều
Mảng hai chiều được tổ chức thành các dòng và cột, trong đó các dòng là được tính theo hàng ngang của mảng, và các cột được tính theo hàng dọc của mảng.
int[,] A = new int[100,100];
Ngôn ngữ C# hỗ trợ hai kiểu mảng đa chiều là:
Mảng đa chiều cùng kích thước: trong mảng này mỗi dòng trong mảng có cùng kích thước với nhau. Mảng này có thể là hai hay nhiều hơn hai chiều.
Mảng đa chiều không cùng kích thước: trong mảng này các dòng có thể không cùng kích thước với nhau.
7. Mảng trong C#
Vd: Viết chương trình – nhập giá trị cho 2 ma trận từ bàn phím – tính tổng 2 ma trận, tính tổng từng hàng, tính tổng từng cột , tìm giá trị lớn nhất và nhỏ nhất cho từng hàng, từng cột– hiện kết quả lên màn hình
Mảng đa chiều cùng kích thước
Mảng đa chiều cùng kích thước còn gọi là mảng hình chữ nhật (rectanguler array).
7. Mảng trong C#
7. Mảng trong C#
7. Mảng trong C#
Sử dụng từ khóa new để khởi tạo tổng số phần tử của hàng và cột trong mảng
7. Mảng trong C#
Khởi tạo giá trị cho các thành phần của mảng 2 chiều
7. Mảng trong C#
Mảng đa chiều có kích khác nhau
Kích thước của các chiều có thể không bằng nhau
Khi tạo một mảng đa chiều kích thước khác nhau thì khai báo số dòng trong mảng trước. Sau đó mỗi dòng sẽ giữ một mảng có kích thước bất kỳ. Những mảng
này được khai báo riêng. Sau đó khởi tạo giá trị các thành phần trong từng mảng.
Trong mảng này, mỗi chiều là một mảng một chiều
7. Mảng trong C#
7. Mảng trong C#
Danh sách mảng
Lớp ArrayList là một kiểu dữ liệu mảng mà kích thước của nó được gia tăng một cách động theo yêu cầu.
ArrayList cung cấp một số phương thức và những thuộc tính cho các thao tác liên quan đến mảng.
7. Mảng trong C#
7. Mảng trong C#
7. Mảng trong C#
7. Mảng trong C#
Sử dụng đối tượng Arraylist để tạo ra một danh sách mảng các phần tử
7. Mảng trong C#
Stack
7. Mảng trong C#
Queue
7. Mảng trong C#
Kiểu từ điển
Từ điển là kiểu tập hợp trong đó có hai thành phần chính liên hệ với nhau là khóa và giá trị.
Thuộc tính quan trọng của một từ điển tốt là dễ thêm giá trị mới vào, và nhanh chóng truy cập đến giá trị. Một vài từ điển thì nhanh hơn về thời gian thêm một giá trị mới vào, một số khác thì tối ưu cho việc truy cập. Một trong minh họa cho kiểu từ điển là kiểu dữ liệu hashtable hay còn gọi là bảng băm.
Hashtable là một kiểu từ điển được tối ưu cho việc truy cập được nhanh. Một số các phương thức chính và các thuộc tính của kiểu dữ liệu Hashtable
7. Mảng trong C#
7. Mảng trong C#
Trong một Hashtable, mỗi giá trị được lưu trữ trong một vùng. Mỗi vùng được đánh số tương tự như là từng offset trong mảng. Do khóa có thể không phải là số nguyên, nên phải chuyển các khóa thành các khóa số để ánh xạ đến vùng giá trị được đánh số.
Mỗi khóa phải cung cấp phương thức GetHashCode() để nhận giá trị mã hóa thành số của nó
Thêm giá trị vào Hashtable thì Hashtable sẽ gọi phương thức GetHashCode() cho mỗi giá trị mà chúng ta cung cấp. Phương thức này trả về một số nguyên, xác định vùng mà giá trị được lưu trữ trong hashtable
7. Mảng trong C#
Giao diện IDictionary
Hashtable là một từ điển vì nó thực thi giao diện IDictionary. IDictionary cung cấp một thuộc tính public là Item. Thuộc tính Item truy cập một giá trị thông qua một khóa xác định.
Thuộc tính Item được khai báo như sau
Thuộc tính Item được thực thi trong ngôn ngữ C# với toán tử chỉ mục ([]). Do vậy chúng ta có thể truy cập những item trong bất cứ đối tượng từ điển bằng cú pháp giống như truy cập mảng.
7. Mảng trong C#
vd: Thêm một item vào trong bảng Hashtable và sau đó truy cập lại chúng thông qua thuộc tính Item.
7. Mảng trong C#
Tập khóa và tập giá trị
Hai thuộc tính là thuộc tính Keys, và thuộc tính Values. Trong đó Keys truy cập đối tượng ICollection với tất cả những khóa trong Hashtable, và Values truy cập đối tượng ICollection với tất cả giá trị.
7. Mảng trong C#
Sử dụng phương thức Remove và thuộc tính Count của Hashtable
7. Mảng trong C#
7. Mảng trong C#
Câu hỏi
1. Viết một chương trình tạo ra một mảng một chiều nguyên chứa giá trị của các phần tử được nhập vào từ bàn phím. Sắp xếp các thành phần của mảng theo thứ tự tăng dần và hiện kết quả. Làm tương tự với trường hợp sắp xếp mảng theo thứ tự giảm dần.
2. Viết một chương trình tìm số lớn nhất và nhỏ nhất trong mảng 2 chiều có kích thước cố định. Các thành phần trong mảng được nhập vào từ bàn phím.
3. Viết chương trình sử dụng ArrayList để tạo một mảng. Sử dụng thuộc tính Count và Capacity
7. Mảng trong C#
4. Viết chương trình cho phép người dùng nhập vào một ma trận n x m, sau đó tìm kiếm một giá trị bất kỳ và hiện kết quả là thứ tự của giá trị cần tìm trong ma trận.
5. Viết chương trình tạo ra đối tượng Queue tên là myQueue. Khởi tạo myQueue với 5 giá trị ngẫu nhiên. Hãy thực hiện các bước sau:
7. Mảng trong C#
6. Viết chương trình tạo ra đối tượng Stack tên là myStack. Khởi tạo myStack với 5 giá trị ngẫu nhiên. Hãy thực hiện các bước sau:
7. Viết chương sử dụng kiểu dữ liệu từ điển để quản lý thông tin của một lớp học. Trong đó khóa là chuỗi mã số sinh viên, giá trị là chuỗi tên của học viên.
Cảm ơn các bạn đã theo dõi
 





