Subject name / Session# / 3 of Totalpage Nội dung trình bày • Khái niệm mảng • Khai báo mảng một chiều • Khai báo mảng 2 chiều • Lớp Array • Câu lệnh foreach • Lớp Random • Lớp Char và
Trang 1Bài 4 Mảng, lệnh foreach, lớp Random
Kí tự và Chuỗi kí tự
Trang 2 Ôn tập lại bài cũ
• Các phép toán
• Ép kiểu
• Boxing and Unboxing
• Câu lệnh rẽ nhánh
• Câu lệnh lặp
• Câu lệnh nhảy
Trang 3Subject name / Session# / 3 of Totalpage
Nội dung trình bày
• Khái niệm mảng
• Khai báo mảng một chiều
• Khai báo mảng 2 chiều
• Lớp Array
• Câu lệnh foreach
• Lớp Random
• Lớp Char và String (Kí tự và Chuỗi kí tự)
Mảng, lớp Array, kí tự và chuỗi kí tự
Trang 4 Mảng là gì?
• Mảng là kiểu dữ liệu dùng để lưu một tập các phần tử có cùng kiểu
dữ liệu
• Mảng là kiểu dữ liệu thuộc nhóm kiểu dữ liệu tham chiếu(reference Type)
• Các phần tử của mảng được gán giá trị mặc định
• Phân loại: gồm có mảng 1 chiều và mảng nhiều chiều
Mảng, lớp Array, kí tự và chuỗi kí tự
Trang 5 Khai báo mảng một chiều
Cách 1:
• <Kiểu dữ liệu> tên mảng
• Tên mảng = new <Kiểu dữ liệu>[kích thước];
• Ví dụ:
int [] marks;
marks = new int[5];
Cách 2
• Vừa khai báo và vừa khởi tạo
int[] marks = new int[5];
string[] subject = new string[5];
Mảng, lớp Array, kí tự và chuỗi kí tự
Trang 6 Truy xuất các phần tử trong mảng một chiều
• Các phần tử trong mảng được truy xuất thông qua chỉ số
• Chỉ số được đánh số bắt đầu từ số 0
• Để gán giá trị cho một phần tử trong mảng dùng cú pháp:
Tênmảng[chỉsố] = giá trị;
Ví dụ a[0] = 10; a[1] = 20;
• Để lấy giá trị một phần tử trong mảng dùng cú pháp:
Tênmảng[chỉsố]
Ví dụ: Console.WriteLine(a[0]);
Ví dụ minh họa mảng một chiều
Mảng, lớp Array, kí tự và chuỗi kí tự
Trang 7 Mảng nhiều chiều:
• Có 2 loại:
Rectangular Array
Jagged Array
• Rectangular Array: là mảng nhiều chiều
kích thước của mỗi chiều phải là hằng số
• Jagged Array: là mảng nhiều chiều
trong đó kích thước của một chiều có thể thay đổi
(Mảng của các mảng)
Mảng, lớp Array, kí tự và chuỗi kí tự
Trang 8 Khai báo mảng nhiều chiều
• Kiểu rectangle
DataType[,] arrayName = new DataType[size1,size2];
int[] marks = new int[4,5];
• Kiểu jagged
DataType[][] arrayName = new DataType[size][]
string[][] a = new string[3][]
Ví dụ minh họa về mảng 2 chiều
Mảng, lớp Array, kí tự và chuỗi kí tự
Trang 9 Lớp Array
• Là lớp dùng chứa các phương thức để thao tác với mảng
• Cú pháp để tạo một đối tượng thuộc lớp Array
Array objName = new Array();
• Một số thuộc tính
Length: trả về số tổng số phần tử mà mảng có thể chứa
LongLength: trả về số nguyên 64 bit biểu diễn tổng số phần tử
mà mảng có thể chứa
Rank: trả về số chiều của mảng
Mảng, lớp Array, kí tự và chuỗi kí tự
Trang 10• Một số phương thức thông dụng
CreateInstance: tạo ra một đối tượng của lớp Array
Sort: sắp xếp các phần tử bên trong một mảng theo thứ tự tăng
dần
Find: tìm một phần tử trong mảng thỏa mãn điều kiện
FindAll: tìm tất cả các phần tử trong mảng thỏa mãn điều kiện
BinarySeach: Tìm kiếm trên mảng một chiều đã được sắp xếp.
Copy: dùng để copy một tập các phần tử từ mảng này sang
mảng khác
CopyTo: copy toàn bộ các phần tử từ mảng một chiều này sang
mảng một chiều khác
Mảng, lớp Array, kí tự và chuỗi kí tự
Trang 11 Ví dụ minh họa lớp Array
Mảng, lớp Array, kí tự và chuỗi kí tự
Trang 12 Câu lệnh foreach
• Là câu lệnh lặp mở rộng
• Dùng để duyệt các phần tử bên trong một tập hợp(Collection)
• Cú pháp
• foreach(DataType <identifier> in <collection>)
• {
//câu lệnh
• }
• Ví dụ minh họa câu lệnh foreach
Mảng, lớp Array, kí tự và chuỗi kí tự
Trang 13 Lớp Random
Next(): sinh ra môt số ngẫu nhiên lớn hơn 0
Next(n): sinh ra một số ngẫu nhiên lớn hơn 0 và nhỏ hơn n
NextDouble(): sinh ra một số double ngẫu nhiên lớn hơn 0 và nhỏ hơn 1
a + (b-a)*rd.NextDouble();
Mảng, lớp Array, kí tự và chuỗi kí tự
Trang 14 Lớp char và String
char là kiểu dữ liệu trong C#
Char hoặc char còn là một struct để biểu diễn một kí tự Unicode
Char struct có một số phương thức
• ToUpper(): Chuyển từ kí tự thường về kí tự hóa
• ToLower(): chuyển từ kí tự hoa về thường
• Parse(): chuyển một chuỗi về kiểu char(chuỗi chỉ gồm 1 kí tự)
Ví dụ minh họa kiểu char
Mảng, lớp Array, kí tự và chuỗi kí tự
Trang 15 Chuỗi kí tự
String hay string là một lớp, gồm các phương thức để thao tác với chuỗi kí tự
Cú pháp để tạo ra một đối tượng lớp string(hoặc String):
• String s1, string s2;
Các thuộc tính:
• Length: trả về chiều dài của chuỗi(số kí tự trong chuỗi)
Mảng, lớp Array, kí tự và chuỗi kí tự
Trang 16 Các phương thức thường dùng:
• ToLower(): chuyển chuỗi kí tự hoa -> về thường
• ToUpper(): chuyển chuỗi kí tự thường -> hoa
• Substring(): cắt 1 chuỗi con từ chuỗi mẹ
• CompareTo(): so sánh 2 chuỗi
S1.CompareTo(S2):
Trả về số nguyên nhỏ hơn 0 nếu s1 nhỏ hơn s2
Trả về số nguyên lớn hơn 0 nếu s1 lớn hơn s2
Trả về 0 nếu 2 chuỗi bằng nhau
• CopyTo: copy một chuỗi sang chuỗi khác
Mảng, lớp Array, kí tự và chuỗi kí tự
Trang 17 Các phương thức thường dùng:
• S1.Replace(oldstring,newString): Thay thế một chuỗi bằng một
chuỗi khác
• S1.Remove(i): xóa kí tự từ chỉ số nào đó đến hết chuỗi
• S1.Contains(s2): tìm xem chuỗi s2 có tồn tại trong chuỗi s1 không
Các ví dụ minh họa chuỗi kí tự
Mảng, lớp Array, kí tự và chuỗi kí tự
Trang 18 Tổng kết
• Mảng
• Câu lệnh foreach
• Lớp Random
• Lớp Char và String
Mảng, lớp Array, kí tự và chuỗi kí tự