1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng môn học Kỹ thuật lập trình C: Chương 2 - Đại học Kinh tế Luật

55 18 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 55
Dung lượng 1,93 MB

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

Nội dung

Bài giảng Kỹ thuật lập trình C - Chương 2: Xử lý mảng và chuỗi cung cấp cho người học các kiến thức: Mảng, các thao tác trên mảng, chuỗi, các thao tác trên chuỗi. Đây là một tài liệu hữu ích dành cho các bạn sinh viên ngành Công nghệ thông tin và những ai quan tâm dùng làm tài liệu học tập và nghiên cứu.

Trang 1

Ch ương 2 ng 2

X lý m ng và chu i ử lý mảng và chuỗi ảng và chuỗi ỗi

Trang 2

N i dung ội dung

Trang 6

Khai báo M ng ảng và chuỗi

 Ki uD Li u ểu dữ ữ ệu [] tênM ng; ảng

Trang 7

Kh i t o M ng ởi tạo Mảng ại Học Quốc Gia TP.HCM ảng và chuỗi

Trang 8

Kh i t o và gán giá tr M ng ởi tạo Mảng ại Học Quốc Gia TP.HCM ị Mảng ảng và chuỗi

gtri2, gtri3,…};

 Giá tr không nh t thi t ph i là h ng s ịnh ất thiết phải là hằng số ết phải là hằng số ảng ằng số ố phần tử trong mảng được xác định

 Ví dục, bắt

Random r = new Random();

int[] pins = new int[4]{

r.Next() % 10, r.Next() % 10,

r.Next() % 10, r.Next() % 10 };

 S giá tr trong d u ngo c ph i b ng s ố phần tử trong mảng được xác định ịnh ất thiết phải là hằng số ặc phải bằng số ảng ằng số ố phần tử trong mảng được xác định

ph n t m ng đ ần tử có cùng kiểu dữ ử có cùng kiểu dữ ảng ượp nhiều phần tử có cùng kiểu dữ c khai báo

Trang 9

Truy su t t ng ph n t M ng ất từng phần tử Mảng ừng phần tử Mảng ần tử Mảng ử lý mảng và chuỗi ảng và chuỗi

 Xác đ nh s ph n t c a m ng ịnh ố phần tử trong mảng được xác định ần tử có cùng kiểu dữ ử có cùng kiểu dữ ủ ảng

 L y đi m th 3 (soThuTu = 2) c a m ng ất thiết phải là hằng số ểu dữ ứa các tủ ủ ảng diem

int diem3 = diem[2];

 diem3 = 7

Trang 10

Gán giá tr cho t ng ph n t M ng ị Mảng ừng phần tử Mảng ần tử Mảng ử lý mảng và chuỗi ảng và chuỗi

th nh t c ng 4 ứa các tủ ất thiết phải là hằng số ột phòng chứa các tủ

Trang 11

Duy t M ng ệ Thống Thông Tin ảng và chuỗi

for (int i = 0; i < diem.Length; i++)

{

Console.WriteLine(diem[i].ToString());

}

for (int i = 0; i < diem.Length; i++)

{

diem[i] += 1;

Console.WriteLine(diem[i].ToString());

}

Trang 12

Duy t M ng b ng foreach ệ Thống Thông Tin ảng và chuỗi ằng foreach

 C n duy t m t ph n trong m ng (ví d duy t ần tử có cùng kiểu dữ ệu ột phòng chứa các tủ ần tử có cùng kiểu dữ ảng ục, bắt ệu

t ph n t th 2 t i th 10) ừ 0 ần tử có cùng kiểu dữ ử có cùng kiểu dữ ứa các tủ ớc ứa các tủ

 C n duy t t cu i v đ u m ng ần tử có cùng kiểu dữ ệu ừ 0 ố phần tử trong mảng được xác định ều phần tử có cùng kiểu dữ ần tử có cùng kiểu dữ ảng

 C n bi t ch s m ng trong vòng l p ần tử có cùng kiểu dữ ết phải là hằng số ỉ mục, bắt ố phần tử trong mảng được xác định ảng ặc phải bằng số

 C n thay đ i giá tr c a ph n t m ng ần tử có cùng kiểu dữ ổi giá trị của phần tử mảng ịnh ủ ần tử có cùng kiểu dữ ử có cùng kiểu dữ ảng

Trang 13

Sao chép M ng ảng và chuỗi

  mangA và diem cùng tham chi u đ n vùng nh ết phải là hằng số ết phải là hằng số ớc

ch a các ph n t c a m ng ứa các tủ ần tử có cùng kiểu dữ ử có cùng kiểu dữ ủ ảng

 Thay đ i giá tr trong mangA sẽ nh h ổi giá trị của phần tử mảng ịnh ảng ưởng đến ng đ n ết phải là hằng số

diem

Trang 16

Đ o M ng ảng và chuỗi ảng và chuỗi

Ph ương thức ng th c ứa các tủ Reverse c a l p ủ ớc Array th c hi n vi c ự tủ, chỉ mục tủ ệu ệu

đ o th t các ph n t trong m ng Cú pháp th c ảng ứa các tủ ự tủ, chỉ mục tủ ần tử có cùng kiểu dữ ử có cùng kiểu dữ ảng ự tủ, chỉ mục tủ

Trang 17

S p x p M ng ắp xếp Mảng ế Luật ảng và chuỗi

Ph ương thức ng th c ứa các tủ Sort() c a l p ủ ớc Array th c hi n vi c ự tủ, chỉ mục tủ ệu ệu

s p x p các ph n t trong m ng Cú pháp th c hi n: ắt ết phải là hằng số ần tử có cùng kiểu dữ ử có cùng kiểu dữ ảng ự tủ, chỉ mục tủ ệu

Trang 18

Tìm ki m trên M ng ế Luật ảng và chuỗi

Trang 19

Tìm ki m trên M ng ế Luật ảng và chuỗi

m ng đã đ ảng ượp nhiều phần tử có cùng kiểu dữ c s p x p tr ắt ết phải là hằng số ước c, tr v k t qu ảng ều phần tử có cùng kiểu dữ ết phải là hằng số ảng

là s nguyên cho bi t ch s index c a ph n ố phần tử trong mảng được xác định ết phải là hằng số ỉ mục, bắt ố phần tử trong mảng được xác định ủ ần tử có cùng kiểu dữ

t tìm đ ử có cùng kiểu dữ ượp nhiều phần tử có cùng kiểu dữ c , n u không tìm đ ết phải là hằng số ượp nhiều phần tử có cùng kiểu dữ c thì tr v - ảng ều phần tử có cùng kiểu dữ

Trang 20

Tìm ki m trên M ng đã s p x p ế Luật ảng và chuỗi ắp xếp Mảng ế Luật

K t qu ết phải là hằng số ảng vitri=4 (Tìm th y s 7 v trí th 4) ất thiết phải là hằng số ố phần tử trong mảng được xác định ởng đến ịnh ứa các tủ

K t qu ết phải là hằng số ảng vitri=-1 (-1 t c là không tìm th y s ứa các tủ ất thiết phải là hằng số ố phần tử trong mảng được xác định

113)

mang

Trang 21

Tìm ki m trên M ng ch a s p x p ế Luật ảng và chuỗi ư ắp xếp Mảng ế Luật

nhiên n u tr ết phải là hằng số ường hợp không được thay đổi ng h p không đ ợp nhiều phần tử có cùng kiểu dữ ượp nhiều phần tử có cùng kiểu dữ c thay đ i ổi giá trị của phần tử mảng

này)

gi i thu t tìm ki m tuy n tính ảng ập hợp nhiều phần tử có cùng kiểu dữ ết phải là hằng số ết phải là hằng số

Trang 22

Tìm ki m trên M ng ch a s p x p ế Luật ảng và chuỗi ư ắp xếp Mảng ế Luật

 Gi i thu t tìm ki m tuy n tính ảng ập hợp nhiều phần tử có cùng kiểu dữ ết phải là hằng số ết phải là hằng số

Xét ph n t t đ u cho đ n cu i m t cách tu n t ần tử có cùng kiểu dữ ử có cùng kiểu dữ ừ 0 ần tử có cùng kiểu dữ ết phải là hằng số ố phần tử trong mảng được xác định ột phòng chứa các tủ ần tử có cùng kiểu dữ ự tủ, chỉ mục tủ

T i v trí th ạo mảng mới và gán giá trị từ mảng cũ ịnh ứa các tủ i n u giá tr trong d li u đúng v i ết phải là hằng số ịnh ữ ệu ớc

khoá c n tìm ki m -> tìm th y N u không đúng ần tử có cùng kiểu dữ ết phải là hằng số ất thiết phải là hằng số ết phải là hằng số

tìm đ n ph n t k ti p ết phải là hằng số ần tử có cùng kiểu dữ ử có cùng kiểu dữ ết phải là hằng số ết phải là hằng số i+1

N u sau khi xét h t N ph n t mà không có giá tr ết phải là hằng số ết phải là hằng số ần tử có cùng kiểu dữ ử có cùng kiểu dữ ịnh

khoá c n tìm ần tử có cùng kiểu dữ  không tìm th y ất thiết phải là hằng số

Trang 23

Tìm ki m trên M ng ch a s p x p ế Luật ảng và chuỗi ư ắp xếp Mảng ế Luật

 Gi i thu t tìm ki m tuy n tính ảng ập hợp nhiều phần tử có cùng kiểu dữ ết phải là hằng số ết phải là hằng số

• B ước c 1: i = 0; // b t đ u t ph n t đ u tiên c a ắt ần tử có cùng kiểu dữ ừ 0 ần tử có cùng kiểu dữ ử có cùng kiểu dữ ần tử có cùng kiểu dữ ủ

dãy

• B ước c 2: So sánh a[i] v i x, có 2 kh năng : ớc ảng

• + a[i] = x : Tìm th y D ng ất thiết phải là hằng số ừ 0

• B ước c 3 : i = i+1; // xét ti p ph n t k trong ết phải là hằng số ần tử có cùng kiểu dữ ử có cùng kiểu dữ ết phải là hằng số

m ng ảng

• N u i = N: H t m ng,không tìm th y.D ng ết phải là hằng số ết phải là hằng số ảng ất thiết phải là hằng số ừ 0

• Ng ượp nhiều phần tử có cùng kiểu dữ ạo mảng mới và gán giá trị từ mảng cũ c l i: L p l i B ặc phải bằng số ạo mảng mới và gán giá trị từ mảng cũ ước c 2

Trang 24

Tìm ki m trên M ng ch a s p x p ế Luật ảng và chuỗi ư ắp xếp Mảng ế Luật

 Gi i thu t tìm ki m tuy n tính ảng ập hợp nhiều phần tử có cùng kiểu dữ ết phải là hằng số ết phải là hằng số

};

return -1;// tìm h t m ng nh ng không có x ết mảng nhưng không có x ảng nhưng không có x ưng không có x

}

Trang 25

Tìm ki m trên M ng ch a s p x p ế Luật ảng và chuỗi ư ắp xếp Mảng ế Luật

• Ví d : Cho dãy s a ục, bắt ố phần tử trong mảng được xác định

Trang 26

Tìm ki m trên M ng ch a s p x p ế Luật ảng và chuỗi ư ắp xếp Mảng ế Luật

Trang 27

M ng đa chi u ảng và chuỗi ều

0 1 6

 C# h tr m ng đa chi u, đây ta xét m ng 2 ỗi ợp nhiều phần tử có cùng kiểu dữ ảng ều phần tử có cùng kiểu dữ ởng đến ảng

chi u vì nó ph bi n nh t ều phần tử có cùng kiểu dữ ổi giá trị của phần tử mảng ết phải là hằng số ất thiết phải là hằng số

 M ng hai chi u th c ch t là m ng c a nh ng ảng ều phần tử có cùng kiểu dữ ự tủ, chỉ mục tủ ất thiết phải là hằng số ảng ủ ữ

m ng m t chi u Ta có th xem m ng hai chi u là ảng ột phòng chứa các tủ ều phần tử có cùng kiểu dữ ểu dữ ảng ều phần tử có cùng kiểu dữ

m t ma tr n g m các hàng và các c t ột phòng chứa các tủ ập hợp nhiều phần tử có cùng kiểu dữ ồm các hàng và các cột ột phòng chứa các tủ

Trang 28

M ng đa chi u ảng và chuỗi ều

Trang 29

M ng đa chi u ảng và chuỗi ều

Ki u_d _li u ểu dữ ữ ệu [ , ] mang =

new Ki u_d _li u ểu dữ ữ ệu [so_hang, so_cot];

 Ví d : ục, bắt

T o m ng 2 chi u có 3 dòng 5 c t: ạo mảng mới và gán giá trị từ mảng cũ ảng ều phần tử có cùng kiểu dữ ột phòng chứa các tủ

int [ , ] mang = new int [3, 5];

 Đ truy c p ph n t trong m ng hai chi u, ta s ểu dữ ập hợp nhiều phần tử có cùng kiểu dữ ần tử có cùng kiểu dữ ử có cùng kiểu dữ ảng ều phần tử có cùng kiểu dữ ử có cùng kiểu dữ

d ng index d ng ục, bắt ạo mảng mới và gán giá trị từ mảng cũ tenMang [ v trí dòng ị trí dòng , v trí c t ị trí dòng ột ]

Trang 30

M ng đa chi u ảng và chuỗi ều

for( int i = 0; i < soDong; i++)

Trang 31

M ng đa chi u ảng và chuỗi ều

Ngoài ra có th duy t b ng cách sau: ể duyệt bằng cách sau: ệ Thống Thông Tin ằng foreach

Trang 32

Đánh giá m ng ảng và chuỗi

o Truy su t nhanh, d s d ng v i t p d li u c ất thiết phải là hằng số ễ sử dụng với tập dữ liệu cố ử có cùng kiểu dữ ục, bắt ớc ập hợp nhiều phần tử có cùng kiểu dữ ữ ệu ố phần tử trong mảng được xác định

đ nh không thay đ i trong quá trình th c thi ịnh ổi giá trị của phần tử mảng ự tủ, chỉ mục tủ

o M ng có kích c và s chi u c đ nh nên khó ảng ỡ và số chiều cố định nên khó ố phần tử trong mảng được xác định ều phần tử có cùng kiểu dữ ố phần tử trong mảng được xác định ịnh

khăn trong vi c m r ng ng d ng ệu ởng đến ột phòng chứa các tủ ứa các tủ ục, bắt

o Các ph n t đ ần tử có cùng kiểu dữ ử có cùng kiểu dữ ượp nhiều phần tử có cùng kiểu dữ c đ t và tham chi u m t cách ặc phải bằng số ết phải là hằng số ột phòng chứa các tủ

liên ti p nhau trong b nh nên khó khăn cho ết phải là hằng số ột phòng chứa các tủ ớc

vi c xóa m t ph n t ra kh i m ng ệu ột phòng chứa các tủ ần tử có cùng kiểu dữ ử có cùng kiểu dữ ỏi mảng ảng

Trang 33

X lý H n ch c a m ng ử lý mảng và chuỗi ại Học Quốc Gia TP.HCM ế Luật ủa mảng: ảng và chuỗi

List , ArrayList , Dictionary … đ thay th cho ểu dữ ết phải là hằng số

m ng khi thao tác trên t p d li u có thay đ i ảng ập hợp nhiều phần tử có cùng kiểu dữ ữ ệu ổi giá trị của phần tử mảng trong quá trình th c thi (Thay đ i giá tr , thay đ i ự tủ, chỉ mục tủ ổi giá trị của phần tử mảng ịnh ổi giá trị của phần tử mảng

s l ố phần tử trong mảng được xác định ượp nhiều phần tử có cùng kiểu dữ ng, thay đ i v trí các ph n t …) ổi giá trị của phần tử mảng ịnh ần tử có cùng kiểu dữ ử có cùng kiểu dữ

 Các collection này r t d s d ng và có kh ất thiết phải là hằng số ễ sử dụng với tập dữ liệu cố ử có cùng kiểu dữ ục, bắt ảng

năng t “co giãn” theo s thay đ i c a d li u ự tủ, chỉ mục tủ ự tủ, chỉ mục tủ ổi giá trị của phần tử mảng ủ ữ ệu trong quá trình th c thi ự tủ, chỉ mục tủ

Trang 34

X lý H n ch c a m ng ử lý mảng và chuỗi ại Học Quốc Gia TP.HCM ế Luật ủa mảng: ảng và chuỗi

Trang 35

Ki u ký t ể duyệt bằng cách sau: ự

 Khai báo ký tự tủ, chỉ mục tủ

char ch1 = 'a';

 Chuy n t s nguyên ểu dữ ừ 0 ố phần tử trong mảng được xác định

char ch2 = (char) 65; // Ký t ‘A’ ự

• S d ng d u nháy đ n đ khai báo ki u ử có cùng kiểu dữ ục, bắt ất thiết phải là hằng số ơng thức ểu dữ ểu dữ char

Trang 36

Chuy n đ i ki u ký t ể duyệt bằng cách sau: ổi kiểu ký tự ể duyệt bằng cách sau: ự

ký t ự tủ, chỉ mục tủ

 char ch1 = Convert ToChar( "a" ); // ch1 = ‘a’

 char ch1 = Convert ToChar( "aa" ); // báo l i ỗi

Trang 38

So sánh ki u ký t ể duyệt bằng cách sau: ự

True: n u 2 ký t b ng nhau ết phải là hằng số ự tủ, chỉ mục tủ ằng số

False: n u 2 ký t không b ng nhau ết phải là hằng số ự tủ, chỉ mục tủ ằng số

char ch1 = 'A';

char ch2 = (char)65;

char ch3 = 'B';

Console.WriteLine(ch1.Equals(ch2)); //K t qu ‘True’ ết phải là hằng số ảng

Console.WriteLine(ch1.Equals(ch3)); //K t qu ‘False’ ết phải là hằng số ảng

Trang 39

Ki m tra ký t ể duyệt bằng cách sau: ự

Unicode

th ường hợp không được thay đổi ng

Trang 40

Ki m tra ký t ể duyệt bằng cách sau: ự

 Console WriteLine( Char IsDigit( '1' )); //True

 Console WriteLine( Char IsDigit( '½' )); //False

 Console WriteLine( Char IsNumber( '½' )); //True

 Console WriteLine( Char IsNumber( '2' )); //True

 Console WriteLine( Char IsLetter( '1' )); //False

 Console WriteLine( Char IsLower( 'A' )); //False

 Console WriteLine( Char IsUpper( 'a' )); //False

 Console WriteLine( Char IsWhiteSpace( ' ' )); //True

Trang 42

Chu i ỗi

Trang 43

Chuy n đ i sang Chu i ể duyệt bằng cách sau: ổi kiểu ký tự ỗi

Trang 44

Thao tác v i Chu i ới ký tự ỗi

ToCharArray() ho c ặc phải bằng số []: Tr v m ng các ảng ều phần tử có cùng kiểu dữ ảng

Trang 45

Các hàm x lý Chu i ử lý mảng và chuỗi ỗi

int

CompareTo( stri

ng value) 

N i dung ột phòng chứa các tủ : So sánh chu i đang xét v i chu i ỗi ớc ỗi value Tr v 0 ảng ều phần tử có cùng kiểu dữ

n u hai chu i b ng nhau, 1 n u l n h n và -1 n u nh h n ết phải là hằng số ỗi ằng số ết phải là hằng số ớc ơng thức ết phải là hằng số ỏi mảng ơng thức

Trang 46

Các hàm x lý Chu i ử lý mảng và chuỗi ỗi

void CopyTo( int

sourceIndex, char []

destination, int

destinationIndex,

int count) 

N i dung ột phòng chứa các tủ : Copy count ký t b t đ u t v trí ự tủ, chỉ mục tủ ắt ần tử có cùng kiểu dữ ừ 0 ịnh sourceIndex

trong chu i vào m ng ký t ỗi ảng ự tủ, chỉ mục tủ destination b t đ u t i v trí ắt ần tử có cùng kiểu dữ ạo mảng mới và gán giá trị từ mảng cũ ịnh

// Tr v m ng ký t ch là "abell" ảng ều phần tử có cùng kiểu dữ ảng ự tủ, chỉ mục tủ

Trang 47

Các hàm x lý Chu i ử lý mảng và chuỗi ỗi

N i dung ột phòng chứa các tủ : Tr v chu i đ ảng ều phần tử có cùng kiểu dữ ỗi ượp nhiều phần tử có cùng kiểu dữ c xây d ng t chu i ự tủ, chỉ mục tủ ừ 0 ỗi FormatStr b ng cách thay ằng số

th các v trí {<value i>:<ki u format>} trong ết phải là hằng số ịnh ểu dữ FormatStr thành các giá tr ịnh value1, value2, … t ương thức ng ng ứa các tủ

Ví dục, bắt : string s = "Hello";

int n;

n = 14;

// "Giá tr n = 14.00, căn b c 2 là 3.74" ịnh ập hợp nhiều phần tử có cùng kiểu dữ

s = string.Format( "Giá tr n = {0:N}, căn b c 2 là {1:N}" ịnh ập hợp nhiều phần tử có cùng kiểu dữ , n, Math.Sqrt(n));

Console.WriteLine(s);

// "Giá thành s n ph m = $200.00" ảng ẩm = $200.00"

Console.WriteLine(s);

DateTime date = new DateTime(2011, 2, 2, 1, 1, 1, 511);

Console.WriteLine(s);

DateTime.Now);

Console.WriteLine(s);

Trang 48

Các hàm x lý Chu i ử lý mảng và chuỗi ỗi

bool Equals( string

value)  N i dung ột phòng chứa các tủ : Tr v True n u chu i đang xét b ng v i chu i ảng ều phần tử có cùng kiểu dữ ết phải là hằng số ỗi ằng số ớc ỗi

value, ng ượp nhiều phần tử có cùng kiểu dữ ạo mảng mới và gán giá trị từ mảng cũ c l i tr v False ảng ều phần tử có cùng kiểu dữ

N i dung ột phòng chứa các tủ : Tr v chu i m i đ ảng ều phần tử có cùng kiểu dữ ỗi ớc ượp nhiều phần tử có cùng kiểu dữ c xây d ng t chu i ban ự tủ, chỉ mục tủ ừ 0 ỗi

đ u b ng cách chèn vào chu i ban đ u t i v trí ần tử có cùng kiểu dữ ằng số ỗi ần tử có cùng kiểu dữ ạo mảng mới và gán giá trị từ mảng cũ ịnh startIndex

chu i con ỗi value.

Ví dục, bắt : string s = "Hello !" ; string val = "everybody" ; //Tr v "Helloeverybody !" ảng ều phần tử có cùng kiểu dữ

s = s.Insert(5, val);

Console WriteLine(s);

int IndexOf(

char/string value)  N i dung ột phòng chứa các tủ : Tr v v trí xu t hi n đ u tiên c a ký t ho c ảng ều phần tử có cùng kiểu dữ ịnh ất thiết phải là hằng số ệu ần tử có cùng kiểu dữ ủ ự tủ, chỉ mục tủ ặc phải bằng số

chu i ỗi value trong chu i Tr v -1 n u không tìm th y. ỗi ảng ều phần tử có cùng kiểu dữ ết phải là hằng số ất thiết phải là hằng số  

Ngày đăng: 08/05/2021, 15:25

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

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