You are on page 1of 47

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
9. Thao tác với chuỗi

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ử


4. 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 <kiểu dữ liệu>[] <tên 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 ([]). 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#
Ví dụ: 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#
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
Một số các thuộc tính và phương thức của lớp 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#
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).
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
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 thước 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.

You might also like