1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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

33 17 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 33
Dung lượng 548,9 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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.SortmyArray

Trang 1

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

Trang 2

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

Trang 3

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

Trang 4

 Làm việc với mảng (Working with Arrays).

 Mảng nhiều chiều (Multidimensional Arrays in C#)

 Mảng jagged

Trang 5

Thao tác dữ liệu 1.1 Khái niệm mảng

Trang 6

Thao tác dữ liệu 1.2 Một số loại mảng

Trang 7

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

Trang 8

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

Trang 9

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

Trang 10

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

Trang 11

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

Trang 12

Thao tác dữ liệu 1.4 Mảng đa chiều

<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

Trang 13

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

Trang 14

Thao tác dữ liệu 1.5 Mảng jagged

Trang 15

Thao tác dữ liệu 1.5 Mảng jagged

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

Trang 16

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.

Trang 17

Thao tác dữ liệu 2 Kiểu dữ liệu xâu ký tự

 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.

Trang 18

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:\”

Trang 19

Thao tác dữ liệu 2.2 Tạo chuỗi

Trang 20

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.

Trang 21

Thao tác dữ liệu 2.3 Thao tác với chuỗi

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

Trang 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.

Trang 23

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

Trang 24

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ữ.

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.

Trang 25

Thao tác dữ liệu 3 Sử dụng biểu thức chính quy

Trang 26

Thao tác dữ liệu 3 Sử dụng biểu thức chính quy

\D Ký tự không phải chữ số (non-digit).

\s Ký tự whitespace (như khoảng trắng, tab )

Trang 27

Thao tác dữ liệu 3 Sử dụng biểu thức chính quy

 Các siêu ký tự trong Pattern của Regex

| Ngăn cách các biểu thức có thể so trùng, ví dụ AAA|ABA|ABB sẽ so

trùng với AAA, ABA, hoặc ABB (các biểu thức được so trùng từ trái sang).

[abc] So trùng với một trong các ký tự trong nhóm, ví dụ [AbC] sẽ so trùng với

A, b, hoặc C [^abc] So trùng với bất cứ ký tự nào không thuộc các ký tự trong nhóm, ví dụ

[^AbC] sẽ không so trùng với A, b, or C nhưng so trùng với B, F,…

[a-z] So trùng với bất kỳ ký tự nào thuộc khoảng này, ví dụ [A-C] sẽ so trùng

với A, B, hoặc C

( ) Xác định một biểu thức con sao cho nó được xem như một yếu tố đơn lẻ

đối với các yếu tố được trình bày trong bảng này

? Xác định có một hoặc không có ký tự hoặc biểu thức con đứng trước nó, ví

dụ A?B so trùng với B, AB, nhưng không so trùng với AAB

Trang 28

Thao tác dữ liệu 3 Sử dụng biểu thức chính quy

 Các siêu ký tự trong Pattern của Regex

* Xác định không có hoặc có nhiều ký tự hoặc biểu thức con đứng trước nó,

ví dụ A*B so trùng với B, AB, AAB, AAAB,…

+ Xác định có một hoặc có nhiều ký tự hoặc biểu thức con đứng trước nó, ví

dụ A+B so trùng với AB, AAB, AAAB,… nhưng không so trùng với B

{n} Xác định có đúng n ký tự hoặc biểu thức con đứng trước nó, ví dụ A{2}

chỉ so trùng với AA

{n,} Xác định có ít nhất n ký tự hoặc biểu thức con đứng trước nó, ví dụ A{2,}

so trùng với AA, AAA, AAAA,… nhưng không so trùng với A

{n, m} Xác định có từ n đến m ký tự đứng trước nó, ví dụ A{2,4} so trùng với

AA, AAA, và AAAA nhưng không so trùng với A hoặc AAAAA

Trang 29

Thao tác dữ liệu 4 Kiểu dữ liệu liệt kê

 Kiểu liệt kê: là một kiểu riêng bao gồm các hằng số có tên, được gọi là danh sách liệt kê Kiểu liệt kê có thể có kiểu số nguyên bất

kỳ, ngoại trừ char Mặc định là kiểu int, phần tử đầu tiên mang giá trị 0, các phần tử liên tiếp được tăng thêm 1

Ví dụ: enum Gioitinh {Nam, Nu}; Khi đó Nam = 0, Nu = 1;

Có thể gán giá trị khởi đầu cho phần tử đầu tiên

 enum Thu {Thu2, Thu3, Thu4, Thu5, Thu6, Thu7, CN};

Khi đó: Thu2 = 1, Thu3 = 2, Thu4 = 3, Thu5 = 4, Thu6 = 5, Thu7 = 6, CN =7

Trang 30

Thao tác dữ liệu 4 Kiểu dữ liệu liệt kê

 enum Days : byte {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri};

 enum Days : byte { Mon=1, Tue=3, Wed, Thu=4, Fri, Sat, Sun} Khi đó Wed = 4 và Thu = 4;

Trang 31

Thao tác dữ liệu 5 Kiểu dữ liệu struct

public decimal price;

public string title;

public string author;

}

Trang 32

Thao tác dữ liệu 5 Kiểu dữ liệu struct

Hàm tạo của struct phải có tham số, có thể tạo một đối tượng struct mà không cần từ khóa new.

Struct có thể hiện thực một giao diện (interface), nhưng không thể kế thừa từ một struct khác, do đó các thành phần trong struct không được khai báo

protected.

Khi gán struct cho 1 biến mới, nội dung của nó được copy.

Có thể sử dụng hàm sizeof biết kích thước của struct

Nên xem xét nên sử dụng struct hoặc class:

 Sử dụng struct cho cấu trúc dữ liệu nhỏ ?

 Sử dụng class với cấu trúc dữ liệu phức tạp ?

Trang 33

Thao tác dữ liệu Bài tập

Bài 1: Nhập vào một mảng gồm danh sách 10 sinh viên Hiển thị ra màn hình các sinh viên họ Nguyen

Bài 2: Nhập vào mảng 10 số nguyên, đếm xem trong mảng có bao nhiêu số chẵn (dùng vòng lặp for, while)

Bài 3: Nhập vào thông tin của 10 sinh viên, dòng thông tin nhập có dạng: họ tên, ngày sinh (ngày/tháng/năm), quê quán, lớp Sử dụng biểu thức chính quy để kiểm tra dữ liệu nhập Sử dụng hàm Split để lấy từng thông tin về mỗi sinh viên, đếm xem có bao nhiêu sinh viên trong độ tuổi từ 19 – 22

Ngày đăng: 29/03/2021, 12:37

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w