Tải bản đầy đủ (.pptx) (33 trang)

THAO tác dữ LIỆU (NGÔN NGỮ lập TRÌNH 2 SLIDE)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (189.46 KB, 33 trang )

NGƠN
NGƠN NGỮ
NGỮ LẬP
LẬP TRÌNH
TRÌNH 22

Chương 1: Các khái niệm cơ bản

1

Bộ môn CNPM – Khoa CNTT.


NGƠN
NGƠN NGỮ
NGỮ LẬP
LẬP TRÌNH
TRÌNH 22

Các khái niệm cơ bản

I. Các khái niệm cơ bản
II. Thao tác dữ liệu

2

Bộ môn CNPM – Khoa CNTT.


NGƠN
NGƠN NGỮ


NGỮ LẬP
LẬP TRÌNH
TRÌNH 22

Thao tác dữ liệu
1. Kiểu dữ liệu mảng.

 Khái niệm.
 Mảng 1 chiều, mảng nhiều chiều.
 Mảng của mảng.
2. Kiểu dữ liệu xâu kí tự.

 Thao tác với kiểu dữ liệu xâu ký tự.
 Thao tác chuỗi một cách hiệu quả sử dụng StringBuilder.
 Sử dụng biểu thức chính quy để kiểm tra dữ liệu nhập.
3. Kiểu dữ liệu liệt kê.
4. Kiểu dữ liệu struct.

3

Bộ môn CNPM – Khoa CNTT.


NGƠN
NGƠN NGỮ
NGỮ LẬP
LẬP TRÌNH
TRÌNH 22

Thao tác dữ liệu


1. Mảng

 Khái niệm.
 Khai báo mảng.
 Làm việc với mảng (Working with Arrays).
 Mảng nhiều chiều (Multidimensional Arrays in C#).
 Mảng jagged.

4

Bộ môn CNPM – Khoa CNTT.


NGƠN
NGƠN NGỮ
NGỮ LẬP
LẬP TRÌNH
TRÌNH 22

Thao tác dữ liệu

1.1. Khái niệm mảng

Mảng là một tập hợp có thứ tự của những đối tượng, tất cả các đối tượng này cùng một kiểu. Mảng trong C# là
một đối tượng.

5

Bộ môn CNPM – Khoa CNTT.



NGƠN
NGƠN NGỮ
NGỮ LẬP
LẬP TRÌNH
TRÌNH 22

Thao tác dữ liệu
Mảng 1 chiều

1.2. Một số loại mảng
Mảng 2 chiều

Mảng 3 chiều

6

Bộ môn CNPM – Khoa CNTT.


NGƠN
NGƠN NGỮ
NGỮ LẬP
LẬP TRÌNH
TRÌNH 22

Thao tác dữ liệu

1.3. Mảng 1 chiều


 Khai báo:

+ Cú pháp: <kiểu dữ liệu> [] <tên mảng>;
Ví dụ: double [ ] arr_dbl;
+ Để tạo thể hiện của một mảng dùng từ khóa new
arr_dbl =new double[6]; // Thiết lập trong bộ nhớ một mảng 6 số double. (1).
+ Mảng là kiểu dữ liệu tham chiếu được tạo ra trên heap.

 Giá trị mặc định:

+ Khi tạo một mảng kiểu dữ liệu giá trị, mỗi thành phần dữ liệu sẽ chứa giá trị mặc định của kiểu dữ liệu. Như (1) 6 phần tử
của mảng có giá trị 0.
+ Khi tạo một mảng kiểu dữ liệu tham chiếu, các phần tử mảng mang giá trị null.

7

Bộ môn CNPM – Khoa CNTT.


NGƠN
NGƠN NGỮ
NGỮ LẬP
LẬP TRÌNH
TRÌNH 22

Thao tác dữ liệu

1.3. Mảng 1 chiều


 Truy cập các thành phần của mảng: Dùng toán tử chỉ mục [ ]. Mảng dùng cơ sở là 0, phần tử đầu tiên của
mảng có chỉ mục bằng 0.
Ví dụ: arr_dbl[0] = 10.0; // Gán giá trị cho phần tử đầu tiên của mảng.
 In các phần tử của mảng:
for(int i=0; iConsole.WriteLine(“arr [{0}] = {1}”, i, arr_dbl[i]);

8

Bộ môn CNPM – Khoa CNTT.


NGƠN
NGƠN NGỮ
NGỮ LẬP
LẬP TRÌNH
TRÌNH 22

Thao tác dữ liệu

1.3. Mảng 1 chiều

Khởi tạo thành phần của mảng:
Có thể khởi tạo các phần tử của mảng ngay khi tạo thể hiện của mảng.
- Có các cách như ví dụ sau:
int[] myIntArray = new int [5];
int[] myIntArray = new int[5] { 2, 4, 6, 8, 10};
int[] myIntArray = { 2, 4, 6, 8, 10}; // Tập các giá trị

9


Bộ môn CNPM – Khoa CNTT.


NGƠN
NGƠN NGỮ
NGỮ LẬP
LẬP TRÌNH
TRÌNH 22

Thao tác dữ liệu

1.3. Mảng 1 chiều

 Câu lệnh lặp foreach:
Câu lệnh foreach cho phép chúng ta lặp qua tất cả các phần tử trong một mảng hay trong một tập hợp.

 Cú pháp:
foreach (<kiểu dữ liệu thành phần> <tên truy cập> in <mảng/tập hợp> )
{
// thực hiện thông qua <tên truy cập> tương ứng với
// từng mục trong mảng hay tập hợp

}

Tính tổng các phần tử của mảng double.
double[] arr_dbl = { 10, -0.5, 20, 12, -8.3};
double tong=0;
foreach (double item in arr_dbl)
tong += item;


10

Bộ môn CNPM – Khoa CNTT.


NGƠN
NGƠN NGỮ
NGỮ LẬP
LẬP TRÌNH
TRÌNH 22

Thao tác dữ liệu

1.4. Mảng đa chiều

Mảng đa chiều là mảng mà mỗi phần tử của mảng là một mảng khác.
Mảng 2 chiều được tổ chức thành các dịng và cột, các dịng được tính theo hàng ngang, các cột được tính theo hàng dọc. Trong
bộ nhớ được tổ chức liên tục. Số phần tử trong mảng bằng tích các kích thước mảng theo các chiều.

Lệnh foreach trong mảng đa chiều tương tự mảng 1 chiều.
Mảng nhiều chiều có 2 loại:
 Mảng đa chiều cùng kích thước.
 Mảng đa chiều khơng cùng kích thước.

11

Bộ mơn CNPM – Khoa CNTT.



NGƠN
NGƠN NGỮ
NGỮ LẬP
LẬP TRÌNH
TRÌNH 22

Thao tác dữ liệu

1.4. Mảng đa chiều

Mảng đa chiều cùng kích thước:
Khai báo:
<kiểu dữ liệu> [, ,…,] <tên mảng>;

Tạo thể hiện của một mảng k chiều:
tên mảng = new <kiểu dữ liệu>[n1, …., nk];

Để truy cập các phần tử của mảng k chiều phải dùng k chỉ số. Chỉ số cơ sở của mỗi chiều là 0.
Để duyệt qua tất cả các phần tử của mảng dùng k vòng lặp for lồng nhau hoặc vòng lặp foreach.

12

Bộ môn CNPM – Khoa CNTT.


NGƠN
NGƠN NGỮ
NGỮ LẬP
LẬP TRÌNH
TRÌNH 22


Thao tác dữ liệu

1.4. Mảng đa chiều

Khởi tạo mảng nhiều chiều:
Có thể khởi tạo mảng 2 chiều theo các cách như ví dụ sau:

 Mảng hai chiều gồm hai hàng ba cột với phần tử kiểu nguyên :
int[,] myRectArray = new int[2,3];

 Hoặc có thể khởi tạo như sau:
int[,] myRectArray = new int[,]{ {1,2},{3,4},{5,6},{7,8}}; ma
ảng 4 hàng 2 cột.
int[,] myRectArray = new int[4,2]{ {1,2},{3,4},{5,6},{7,8}}; ma
ảng 4 hàng 2 cột.
string[,] beatleName = { {"Lennon","John"}, {"McCartney","Paul"}, {"Harrison","George"},
{"Starkey","Richard"} };

13

Bộ môn CNPM – Khoa CNTT.


NGƠN
NGƠN NGỮ
NGỮ LẬP
LẬP TRÌNH
TRÌNH 22


Thao tác dữ liệu

1.5. Mảng jagged

 Jagged là mảng nhiều chiều có kích thước khác nhau. Trong mảng này, mỗi phần tử là một mảng 1 chiều. Ví
dụ:
int[][] a = new int[3][];// ma
ảng 2 chiềề
u và có 3 hàng
a[0] = new int[4];// hàng thứ nhấấ
t có 4 cột
a[1] = new int[3];// …
a[2] = new int[1];

14

Bộ môn CNPM – Khoa CNTT.


NGƠN
NGƠN NGỮ
NGỮ LẬP
LẬP TRÌNH
TRÌNH 22

Thao tác dữ liệu

1.5. Mảng jagged

static void Main()

{
string[][] novelists = new string[3][];
novelists[0] = new string[] {"Fyodor", "Mikhailovich", "Dostoyevsky"};
novelists[1] = new string[] { "James", "Augustine", "Aloysius", "Joyce"};
novelists[2] = new string[] {"Miguel", "de Cervantes", "Saavedra"};
// Loop through each novelist in the array
int i; for (i = 0; i < novelists.GetLength(0); i++)
{

// Loop through each name for the novelist
int j; for (j = 0; j < novelists[i].GetLength(0); j++)
{

// Display current part of name
Console.Write(novelists[i][j] + " ");

}

// Start a new line for the next novelist

Console.Write("\n");
}
}

15

Bộ môn CNPM – Khoa CNTT.


NGƠN

NGƠN NGỮ
NGỮ LẬP
LẬP TRÌNH
TRÌNH 22

Thao tác dữ liệu

1.6. Làm việc với mảng

- Thuộc tính Length trả về số phần tử của mảng:
int arrayLength = integers.Length

- Sắp xếp mảng tăng dần bằng cách phương thức static là Array.Sort(): Array.Sort(myArray);
Đảo ngược thứ tự các phần tử của mảng dùng phương thức static Reverse() : Array.Reverse(myArray).
Clone(): copy mảng ra đối tượng kiểu System.Array.
CopyTo: Copy các phần tử của mảng ra một mảng khác.
GetLength: trả về kích thước mảng của chiều đã chỉ định.
Initialize(): khởi tạo các phần tử của mảng bằng giá trị mặc định của kiểu dữ liệu.
Rank: trả về số chiều của mảng.

16

Bộ môn CNPM – Khoa CNTT.


NGƠN
NGƠN NGỮ
NGỮ LẬP
LẬP TRÌNH
TRÌNH 22


Thao tác dữ liệu

2. Kiểu dữ liệu xâu ký tự

Thao tác với chuỗi
 Tạo một chuỗi.
 Tạo chuỗi dùng phương thức ToString.
 Thao tác trên chuỗi.
 Tìm một chuỗi con.
 Chia chuỗi.
 Thao tác trên chuỗi dùng StringBuilder.
 Sử dụng biểu thức chính quy để kiểm tra dữ liệu nhập.

17

Bộ môn CNPM – Khoa CNTT.


NGƠN
NGƠN NGỮ
NGỮ LẬP
LẬP TRÌNH
TRÌNH 22

Thao tác dữ liệu

2.1. Thao tác với chuỗi

Tạo một chuỗi: gán cho chuỗi bằng giá trị được đặt trong cặp dấu “”.

Ví dụ: string exstr= “Khoa cơng nghệ thơng tin”;

Trong chuỗi có thể có các ký tự escape, ký tự này bắt đầu bằng dấu ‘\’. Ví dụ \n: xuống dịng, \t: tab.
Dấu \ được dùng trong một số cú pháp, vì vậy để xác định \ là một ký tự trong xâu thì nó phải được đặt trước một dấu \ khác.

Ví dụ:
 Xâu “http:\\\\” có giá trị bằng http:\\.
 Xâu “C:\\Program Files” có giá trị bằng C:\Program Files.

-

Ký tự @ được đặt trước giá trị xâu để xác định giá trị đó là nguyên văn.

Ví dụ: “C:\\” có giá trị bằng với @”C:\”

18

Bộ mơn CNPM – Khoa CNTT.


NGƠN
NGƠN NGỮ
NGỮ LẬP
LẬP TRÌNH
TRÌNH 22

Thao tác dữ liệu

2.2. Tạo chuỗi


Các kiểu dữ liệu đều có phương thức ToString để chuyển từ kiểu dữ liệu đó sang kiểu string.
Ví dụ:
int intnum =10;
string str = intnum.ToString();
double dblnum =20.45;
str = dblnum.ToString(“0.0”);

19

Bộ môn CNPM – Khoa CNTT.


NGƠN
NGƠN NGỮ
NGỮ LẬP
LẬP TRÌNH
TRÌNH 22

Thao tác dữ liệu

2.3. Thao tác với chuỗi

Sử dụng các phương thức, thuộc tính của lớp System.String.
Empty

Trường public static thể hiện một chuỗi rỗng.

Compare()

Phương thức public static để so sánh hai chuỗi.


CompareOrdinal()

Phương thức public static so sánh dựa vào đánh giá giá trị ký tự tương ứng của 2 xâu.

Concat()

Phương thức public static để tạo chuỗi mới từ một hay nhiều chuỗi.

Copy()

Phương thức public static tạo ra một chuỗi mới bằng

Equal()

Phương thức public static kiểm tra xem hai chuỗi có cùng giá trị hay khơng.

20

Bộ mơn CNPM – Khoa CNTT.


NGƠN
NGƠN NGỮ
NGỮ LẬP
LẬP TRÌNH
TRÌNH 22

Thao tác dữ liệu
Format()


Phương thức public static định dạng một chuỗi dùng ký tự lệnh định dạng xác định.

Chars()

Indexer của chuỗi.

Length()

Chiều dài của chuỗi.

Clone()

Trả về chuỗi.

CompareTo()

So sánh hai chuỗi.

CopyTo()

Sao chép một số các ký tự xác định đến một mảng ký tự Unicode.

EndsWidth()

Chỉ ra vị trí của chuỗi xác định phù hợp với chuỗi đưa ra.

Insert()

Trả về chuỗi mới đã được chèn một chuỗi xác định.


LastIndexOf()

Chỉ ra vị trí xuất hiện cuối cùng của một chuỗi xác định trong chuỗi.

Remove()

Xóa đi một số ký tự xác định.

Split()

Trả về chuỗi được phân định bởi những ký tự xác định trong chuỗi.

2.3. Thao tác với chuỗi

21

Bộ môn CNPM – Khoa CNTT.


NGƠN
NGƠN NGỮ
NGỮ LẬP
LẬP TRÌNH
TRÌNH 22

Thao tác dữ liệu

2.3. Thao tác với chuỗi


StartWidth()

Xem chuỗi có bắt đầu bằng một số ký tự xác định hay không.

SubString()

Lấy một chuỗi con.

ToCharArray()

Sao chép những ký tự từ một chuỗi đến mảng ký tự.

ToLower()

Trả về bản sao của chuỗi ở kiểu chữ thường.

ToUpper()

Trả về bản sao của chuỗi ở kiểu chữ hoa.

Trim()

Xóa bỏ tất cả sự xuất hiện của tập hợp ký tự xác định từ vị trí đầu tiên đến vị trí cuối cùng trong chuỗi.

TrimEnd()

Xóa như nhưng ở vị trí cuối.

TrimStart()


Xóa như Trim nhưng ở vị trí đầu.

22

Bộ mơn CNPM – Khoa CNTT.


NGƠN
NGƠN NGỮ
NGỮ LẬP
LẬP TRÌNH
TRÌNH 22

Thao tác dữ liệu

2.3. Thao tác với chuỗi

 Thao tác chuỗi một cách hiệu quả:
 Các đối tượng String trong .Net khi được tạo ra thì nó khơng thể thay đổi.
Các phương thức thao tác trên string thì bộ thực thi sẽ tạo ra String mới chứa kết quả, bản thân xâu gốc không bị thay đổi)

 Ví dụ:

string str = “Phạm Đức Bình”;
string str1;
str1= str.Remove(0,3)

Kết quả: str1= “ m Đức Bình”, str= “Phạm Đức Bình”
→ Nảy sinh chi phí đáng kể nếu ứng dụng thường xuyên thao tác trên String
- Khắc phục: Sử dụng lớp System.Text.StringBuilder


23

Bộ môn CNPM – Khoa CNTT.


NGƠN
NGƠN NGỮ
NGỮ LẬP
LẬP TRÌNH
TRÌNH 22

Thao tác dữ liệu

2.3. Thao tác với chuỗi

StringBuilder cho phép thao tác trên nội dung của nó, khơng tạo ra bản sao dữ liệu.
Capacity

Truy cập hay gán một số ký tự mà StringBuilder nắm giữ.

Chars

Chỉ mục.

Length

Thiết lập hay truy cập chiều dài của chuỗi

MaxCapacity


Truy cập dung lượng lớn nhất của StringBuilder

Append

Nối một kiểu đối tượng vào cuối của StringBuilder

AppendFormat

Thay thế định dạng xác định bằng giá trị được định dạng của một đối tượng.

EnsureCapacity

Đảm bảo rằng StringBuilder hiện thời có khả năng tối thiểu lớn như một giá trị xác định.

Insert

Chèn một đối tượng vào một vị trí xác định

Replace

Thay thế tất cả thể hiện của một ký tự xác định với những

24

Bộ môn CNPM – Khoa CNTT.


NGƠN
NGƠN NGỮ

NGỮ LẬP
LẬP TRÌNH
TRÌNH 22

Thao tác dữ liệu

3. Sử dụng biểu thức chính quy

Lớp System.Text.RegularExpressions.Regex
Thuộc tính Pattern
Hàm tạo: Regex
Một số phương thức thường dùng


IsMatch

 Match
 Matches

25

Bộ môn CNPM – Khoa CNTT.


×