Bài giảng Ngôn ngữ lập trình nâng cao - Bài 2 - Lý Anh Tuấn

Nội dung:

Các toán tử

Hàm xuất/nhập

Cấu trúc điều khiển

Cấu trúc lặp

Phương thức

Mảng một chiều/ ma trận

Chuỗi ký tự

Bài giảng Ngôn ngữ lập trình nâng cao - Bài 2 - Lý Anh Tuấn trang 1

Trang 1

Bài giảng Ngôn ngữ lập trình nâng cao - Bài 2 - Lý Anh Tuấn trang 2

Trang 2

Bài giảng Ngôn ngữ lập trình nâng cao - Bài 2 - Lý Anh Tuấn trang 3

Trang 3

Bài giảng Ngôn ngữ lập trình nâng cao - Bài 2 - Lý Anh Tuấn trang 4

Trang 4

Bài giảng Ngôn ngữ lập trình nâng cao - Bài 2 - Lý Anh Tuấn trang 5

Trang 5

Bài giảng Ngôn ngữ lập trình nâng cao - Bài 2 - Lý Anh Tuấn trang 6

Trang 6

Bài giảng Ngôn ngữ lập trình nâng cao - Bài 2 - Lý Anh Tuấn trang 7

Trang 7

Bài giảng Ngôn ngữ lập trình nâng cao - Bài 2 - Lý Anh Tuấn trang 8

Trang 8

Bài giảng Ngôn ngữ lập trình nâng cao - Bài 2 - Lý Anh Tuấn trang 9

Trang 9

Bài giảng Ngôn ngữ lập trình nâng cao - Bài 2 - Lý Anh Tuấn trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 68 trang Danh Thịnh 09/01/2024 5620
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Ngôn ngữ lập trình nâng cao - Bài 2 - Lý Anh Tuấn", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Ngôn ngữ lập trình nâng cao - Bài 2 - Lý Anh Tuấn

Bài giảng Ngôn ngữ lập trình nâng cao - Bài 2 - Lý Anh Tuấn
Slide 1 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
NGÔN NGỮ LẬP TRÌNH NÂNG CAO 
Slide 2 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
Nội dung: 
Các toán tử 
Hàm xuất/nhập 
Cấu trúc điều khiển 
Cấu trúc lặp 
Phương thức 
Mảng một chiều/ ma trận 
Chuỗi ký tự 
Mục tiêu 
Slide 3 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
Ký hiệu Ý nghĩa Ghi chú 
+ Cộng 
- Trừ 
* Nhân 
/ Chia 
Đối với số chia & bị chia là nguyên thì 
cho kết quả là phần nguyên 
% Chia lấy phần dư 
Chỉ áp dụng cho số chia & bị chia là số 
nguyên 
++x; x++ Tăng x 1 đơn vị 
--x; x-- Giảm x 1 đơn vị 
Toán tử số học 
Slide 4 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
Ký hiệu Ý nghĩa 
> Lớn hơn 
>= Lớn hơn hoặc bằng 
< Nhỏ hơn 
<= Nhỏ hơn hoặc bằng 
== Bằng 
!= Khác 
&& Và 
|| Hoặc 
! Phủ định 
Ký hiệu Ý nghĩa 
& Và bit 
| Hoặc bit 
>> Dịch phải 
<< Dịch trái 
^ Xor bit 
Ký hiệu so sánh và phép toán bit 
Slide 5 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
• Write (Xuất xong không xuống hàng) 
• WriteLine (Xuất xong xuống hàng) 
• Xuất không định dạng 
 int a = 5; 
 double x = 7.534; 
 string s = "ABC"; 
 Console.WriteLine("a = " +a); 
 Console.WriteLine("x = "+x+"; s = "+s); 
Hàm xuất – Console.System 
Slide 6 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
Xuất có định dạng thập phân 
float x = 7.53489F; 
double y = 5.6482; 
Console.WriteLine("x = {0: 0.0000}; y = {1: 0.00} ", x, y); 
Hàm xuất – Console.System 
Slide 7 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
Ký tự Ý nghĩa 
\’ Dấu nháy đơn 
\” Dấu nháy đôi 
\\ Dấu chéo ngược “\” 
\0 Null 
\a Alert : Tiếng bip 
\b Lùi về trước 
\f Form feed 
\n Xuống dòng 
\r Về đầu dòng 
\t Tab ngang 
Xuất ký tự đặc biệt 
Slide 8 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
string s; 
int n; 
s = Console.ReadLine(); 
n = Convert.ToInt32(s); 
Hoặc 
int n; 
n = Convert.ToInt32(Console.ReadLine()); 
Hàm nhập – Console.System 
Slide 9 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
Mẫu chung: 
 Biến; 
Biến = Convert.To(Console.ReadLine()); 
Hoặc 
 Biến; 
Biến = .Parse(Console.ReadLine()); 
Hàm nhập – Console.System 
Slide 10 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
• Rẽ nhánh : ifelse 
• Lựa chọn : switchcase 
• Lặp : for, while, dowhile, foreach 
• Các cấu trúc khác : goto, break, continue 
Cấu trúc điều khiển 
Slide 11 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
if (biểu thức điều kiện) 
{ 
 ; 
} 
Nếu biểu thức điều kiện cho 
kết quả khác không (true) thi ̀ 
thực hiện khối lệnh. 
Biểu thức 
điều kiện
Đúng
Cấu trúc rẽ nhánh 
Slide 12 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
Ví dụ: Nhập vào số nguyên n. Kiểm tra nếu n > 0 tăng n 
lên 1 đơn vị. Xuất kết quả. 
static void Main(string[] args) 
{ 
 int n; 
 Console.Write("Nhap vao mot so nguyen: "); 
 n = int.Parse(Console.ReadLine()); 
 if (n > 0) n++; 
 Console.WriteLine("Ket qua: n = " + n); 
} 
Cấu trúc rẽ nhánh (tt) 
Slide 13 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
if (biểu thức điều kiện) 
{ 
 ; 
} 
else 
{ 
 ; 
} 
Nếu biểu thức điều kiện 
cho kết quả khác không thì 
thực hiện khối lệnh 1, 
ngược lại thì cho thực hiện 
khối lệnh thứ 2. 
Biểu thức 
điều kiện
ĐúngSai
Cấu trúc rẽ nhánh (tt) 
Slide 14 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
static void Main(string[] args) 
{ 
 int a, b; 
 Console.Write("Nhap vao a: "); 
 a = int.Parse(Console.ReadLine()); 
 Console.Write("Nhap vao b: "); 
 b = int.Parse(Console.ReadLine()); 
 if (a == 0) 
 if (b == 0) 
 Console.WriteLine("PT VSN”); 
 else 
 Console.WriteLine("PT VN"); 
 else 
 Console.WriteLine("Ng cua PT: {0:0.00}", (float)-b/a); 
} 
VD: Giải và biện luận PT: ax+b=0 
Slide 15 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
switch (biểu thức) 
 case n1: 
 các câu lệnh ; 
 break ; 
 case n2: 
 các câu lệnh ; 
 break ; 
 case nk: 
 ; 
 break ; 
 [default: các câu lệnh] 
 break; 
 
KQ phải là nguyên 
Cấu trúc lựa chọn 
Slide 16 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
VD: Nhập vào số nguyên n có giá trị từ 1 đến 5. In cách đọc 
của số đó ra màn hình 
static void Main(string[] args) 
{ 
 int n; 
 Console.Write("Nhap vao n (1<=n<=5): "); 
 n = int.Parse(Console.ReadLine()); 
 switch (n) 
 { 
 case 1: Console.WriteLine("So mot"); break; 
 case 2: Console.WriteLine("So hai"); break; 
 case 3: Console.WriteLine("So ba"); break; 
 case 4: Console.WriteLine("So bon"); break; 
 case 5: Console.WriteLine("So nam"); break; 
 default : Console.WriteLine(“Gia tri khong hop le"); 
 break; 
 } 
} 
Cấu trúc lựa chọn 
Slide 17 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
• while 
• for 
• dowhile 
• foreach 
Cấu trúc lặp 
Slide 18 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
Thực hiện câu lệnh 
trong vòng lặp
Khởi gán
Đúng (Biểu thức 
điều kiện khác 0)Kiểm tra biểu 
thức điều kiện
Tăng/ giảm chỉ 
số lặp
Sai (Biểu thức 
điều kiện = 0)
Cấu trúc lặp while và for 
Slide 19 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
• Bước 1: Thực hiện khởi gán 
• Bước 2: Kiểm tra biểu thức điều kiện 
- Nếu kết quả là true thì cho thực hiện các lệnh 
của vòng lặp, thực hiện biểu thức tăng/ giảm. 
Quay trở lại bước 2. 
- Ngược lại kết thúc vòng lặp. 
Hoạt động cấu trúc lặp while và for 
Slide 20 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
; 
while () 
 lệnh/ khối lệnh; 
 ; 
 
Cấu trúc lặp while 
Slide 21 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
VD: Xuất ra màn hình 10 dòng chữ ABC 
static void Main(string[] args) 
{ 
 int d = 1; 
 while (d <= 10) 
 { 
 Console.WriteLine("Dong {0}: ABC", d); 
 d++; 
 } 
} 
Cấu trúc lặp while 
Slide 22 of 25 Ver. 1.0 
Object-Oriented Programming U ... : Trả 
về giá trị có KDL tương ứng với kết quả xử lý 
Phương thức 
Slide 31 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
• Tên phương thức : Đặt tên theo qui ước sao 
cho phản ánh đúng chức năng thực hiện của 
phương thức 
• Danh sách các tham số (nếu có) : đầu vào của 
phương thức (trong một số trường hợp có thể 
là đầu vào và đầu ra của phương thức nếu kết 
quả đầu ra có nhiều giá trị - Tham số này gọi là 
tham chiếu) 
Phương thức 
Slide 32 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
static int a, b; 
static void Nhap() 
{ 
 Console.Write("Nhap a: "); 
 a = int.Parse(Console.ReadLine()); 
 Console.Write("Nhap b: "); 
 b = int.Parse(Console.ReadLine()); 
} 
static void Xuat() 
{ 
 Console.WriteLine("a = {0}; b = {1}", a, b); 
} 
static void Main(string[] args) 
{ 
 Nhap(); 
 Xuat(); 
} 
Khi hàm xử lý biến toàn cục thì không cần tham số 
Slide 33 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
static void TênPhươngThức([danh sách các tham số]) 
{ 
 Khai báo các biến cục bộ 
 Các câu lệnh hay lời gọi đến phương thức khác. 
} 
• Gọi hàm: TênPhươngThức(danh sách tên các đối số); 
• Những phương thức loại này thường rơi vào những 
nhóm chức năng: Nhập/xuất dữ liệu, thống kê, sắp xếp, 
liệt kê 
Phương thức không trả về giá trị 
Slide 34 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
VD: Viết chương trình nhập sô ́ nguyên dương n 
và in ra màn hình các ước sô ́ của n 
• Input: số nguyên dương (Xác định tham sô ́) 
• Output: In ra các ước sô ́ của n (Xác định KDL 
trả về của phương thức) 
- Xuất Không tra ̉ vê ̀ gia ́ trị KDL là void. 
- Xác định tên phương thức: Phương thức này 
dùng in ra các US của n nên có thê ̉ đặt là 
LietKeUocSo 
 static void LietKeUocSo(uint n) 
Phương thức không trả về giá trị 
Slide 35 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
static void LietKeUocSo(uint n) 
{ 
 for (int i = 1; i <= n; i++) 
 if (n % i == 0) 
 Console.Write("{0}\t", i); 
} 
static void Main(string[] args) 
{ 
 uint n; 
 Console.Write("Nhap so nguyen duong n: "); 
 n=uint.Parse(Console.ReadLine()); 
 Console.Write("Cac uoc so cua {0}: ", n); 
 LietKeUocSo(n); 
 Console.ReadLine(); 
} 
Phương thức không trả về giá trị 
Slide 36 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
static TênPhươngThức([tham số]) 
{ 
 kq; 
 Khai báo các biến cục bộ 
 Các câu lệnh hay lời gọi đến phương thức khác 
 return kq; 
} 
Gọi hàm: 
 Tên biến = TênPhươngThức(tên các đối số); 
Những phương thức này thường rơi vào các nhóm: Tính 
tổng, tích, trung bình, đếm, kiểm tra, tìm kiếm 
Phương thức có trả về giá trị 
Slide 37 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
VD: Viết chương trình nhập số nguyên dương n và tính 
• Input: số nguyên dương n (Xác định tham số) 
• Output: Tổng S (Xác định KDL trả về của phương thức) 
– Trả về giá trị tổng (S). 
– S là tổng các số nguyên dương nên S cũng là số 
nguyên dương Kiểu trả về của hàm là ulong. 
• Xác định TênPhươngThức: Dùng tính tổng S nên có thể 
đặt là TongS 
static ulong TongS(uint n) 
1 2 3 ; 0nS n n 
Phương thức có trả về giá trị 
Slide 38 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
static ulong TongS(uint n) 
{ 
 ulong kq = 0; 
 for (uint i = 1; i <= n; i++) 
 kq + = i; 
 return kq; 
} 
static void Main(string[] args) 
{ 
 ulong S; 
 uint n; 
 Console.Write("Nhap vao so nguyen n: "); 
 n = uint.Parse(Console.ReadLine()); 
 S = TongS(n); 
 Console.Write("Tong tu 1 den n: " + S); 
 Console.ReadLine(); 
} 
Phương thức có trả về giá trị 
Slide 39 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
• Tham số lưu kết quả xử lý của hàm: out (thường 
dùng cho trường hợp nhập dữ liệu, kết quả hàm có 
nhiều giá trị) 
• Tham số vừa làm đầu vào và đầu ra: ref 
• Dùng từ khóa ref hoặc out trước KDL của khai báo 
tham số và trước tên đối số khi gọi phương thức. 
Tham số là tham chiếu 
Slide 40 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
Dùng từ khóa ref bắt buộc phải khởi gán giá trị 
ban đầu cho đối số trước khi truyền vào khi gọi 
phương thức (Nếu dùng out thì không cần thiết) 
Tham số là tham chiếu 
Slide 41 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
Đánh giá kết quả khi viết chương trình với hai 
trường hợp sau 
1. Trường hợp không dùng tham chiếu 
2. Trường hợp dùng tham chiếu: ref 
Hoán vị 2 số nguyên a, b cho trước 
Slide 42 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
static void HoanVi(int a, int b) 
{ 
 int tam = a; 
 a = b; 
 b = tam; 
 Console.WriteLine("Trong HoanVi: a = " + a + ";b = " + b); 
} 
static void Main(string[] args) 
{ 
 int a = 5, b = 21; 
 Console.WriteLine("Truoc HoanVi: a = {0}; b = {1}", a, b); 
 HoanVi(a, b); 
 Console.WriteLine("Sau HoanVi: a = " + a + ";b = " + b); 
} 
Không dùng tham chiếu 
Slide 43 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
static void HoanVi(ref int a, ref int b) 
{ 
 int tam = a; 
 a = b; 
 b = tam; 
 Console.WriteLine("Trong HoanVi: a = " + a + ";b = " + b); 
} 
static void Main(string[] args) 
{ 
 int a = 5, b = 21; 
 Console.WriteLine("Truoc HoanVi: a = {0}; b = {1}", a, b); 
 HoanVi(ref a, ref b); 
 Console.WriteLine("Sau HoanVi: a = " + a + ";b = " + b); 
} 
Dùng tham chiếu 
Slide 44 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
 static void Nhap(out int a, out int b) 
 { 
 Console.Write("Nhap a: "); 
 a = int.Parse(Console.ReadLine()); 
 Console.Write("Nhap b: "); 
 b = int.Parse(Console.ReadLine()); 
 } 
 static int Tong(int a, int b) 
 { 
 return a + b; 
 } 
 static void Main(string[] args) 
 { 
 int a, b; 
 Nhap(out a, out b); 
 s=Tong(a, b); 
 Console.WriteLine(“{0}+{1}={2}”, a, b, s); 
 } 
Ví dụ: sử dụng tham chiếu out 
Slide 45 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
• Mảng là một tập hợp các phần tử cùng một 
kiểu dữ liệu liên tiếp nhau và được truy xuất 
thông qua chỉ số. 
• Chỉ số bắt đầu từ 0. 
Kiểu mảng 
Slide 46 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
• Mảng một chiều 
 []=new [Số phần tử]; 
• VD: Khai báo mảng số nguyên arr gồm 5 
phần tử 
 int [] arr = new int [5]; 
Kiểu mảng 
Slide 47 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
• Mảng hai chiều 
 [,]=new [Số dòng, số cột]; 
• VD: Khai báo ma trận số nguyên mt gồm 5 dòng và 3 cột 
 long [ ,] mt = new long [5, 3]; 
Kiểu mảng 
Slide 48 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
• Khởi tạo mảng 
 int [] a = new int[5] {4, 7, 1, 21, 9}; 
 hoặc: int [] a = {4, 7, 1, 21, 9}; 
• Truy xuất mảng: [vị trí]; 
 Vị trí được đánh số từ 0 đến số phần tử -1 
 Ví dụ: a[4] sẽ cho giá trị là 9 
Thao tác cơ bản trên mảng 1 chiều 
Slide 49 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
Nhập xuất mảng một chiều: 
 public static void Main() 
 { 
 int n; 
 Console.Write("Nhap kich thuoc mang: "); 
 n = int.Parse(Console.ReadLine()); 
 int[] a = new int[n]; 
 Nhap(a, n); 
 Xuat(a, n); 
 } 
 } 
Thao tác cơ bản trên mảng 1 chiều 
Slide 50 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
static void Nhap(int[] a, int n) 
{ 
 for (int i = 0; i < n; i++) 
 { 
 Console.Write("Nhap phan tu thu {0}:", i); 
 a[i] = int.Parse(Console.ReadLine()); 
 } 
} 
Thao tác cơ bản trên mảng 1 chiều 
Slide 51 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
static void Xuat(int[] a, int n) 
{ 
 for(int i = 0; i < n; i++) 
 { 
 Console.Write(a[i] + "\t"); 
 } 
} 
Thao tác cơ bản trên mảng 1 chiều 
Slide 52 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
Hoặc 
static void Xuat(int[] a) 
{ 
 foreach(int k in a) 
 { 
 Console.Write(k + "\t"); 
 } 
} 
Thao tác cơ bản trên mảng 1 chiều 
Slide 53 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
• Khởi tạo ma trận 
 int[,] mt = new int[3, 5] { {2, 4, 8, 9, 7}, 
 {4, 8, 11, 10, 3}, 
 {21, 7, 6, 5, 0}}; 
 hoặc 
 int[,] mt = { {2, 4, 8, 9, 7}, 
 {4, 8, 11, 10, 3}, 
 {21, 7, 6, 5, 0}}; 
• Truy xuất ma trận: [vị trí dòng, vị trí cột]; 
 Vị trí được đánh số từ 0 
 VD: mt[1, 3] sẽ cho giá trị là 10 
Thao tác cơ bản trên ma trận 
Slide 54 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
 Nhập xuất ma trận: 
 public static void Main() 
 { 
 int d, c; 
 Console.Write("Nhap so dong: "); 
 d = int.Parse(Console.ReadLine()); 
 Console.Write("Nhap so cot: "); 
 c = int.Parse(Console.ReadLine()); 
 int[,] mt = new int [d, c]; 
 Nhap(mt, d, c); 
 Xuat(mt, d, c); 
 } 
Thao tác cơ bản trên ma trận 
Slide 55 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
static void Nhap(int[,] mt, int d, int c) 
{ 
 for (int i = 0; i < d; i++) 
 for (int j = 0; j < c; j++) 
 { 
 Console.Write("Nhap phan tu [{0},{1}]: ", i, j); 
 mt[i,j] = int.Parse(Console.ReadLine()); 
 } 
} 
Thao tác cơ bản trên ma trận 
Slide 56 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
static void Xuat(int[,] mt, int d, int c) 
{ 
 for (int i = 0; i < d; i++) 
 { 
 for (int j = 0; j < c; j++) 
 Console.Write(mt[i,j] + "\t"); 
 Console.WriteLine(); 
 } 
} 
Thao tác cơ bản trên ma trận 
Slide 57 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
• Kiểu string có thể chứa nội dung không giới 
hạn, vì đây là kiểu dữ liệu đối tượng được 
chứa ở bộ nhớ heap. 
• Khai báo: 
 string s = “Nguyen Van A”; 
String (kiểu chuỗi) 
Slide 58 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
Ghép chuỗi: + 
string a = "Xin"; 
string b = "chào"; 
string c = a + " " + b; // c = "Xin chào“ 
Hoặc 
 string.Concat(a, “ “, b); a = “Xin Chào” 
Thao tác cơ bản trên chuỗi ký tự 
Slide 59 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
Lấy chuỗi con: Substring() 
string s; 
s = "Lay chuoi con".Substring(4); 
Lấy chuỗi con tính từ vị trí thứ 4 trở về sau: s = "chuoi 
con“ 
s = "Lay chuoi con".Substring(4, 5); 
Lấy chuỗi con từ vị trí thứ 4 và lấy chuỗi con có chiều 
dài là 5: 
s = "chuoi“ 
Thao tác cơ bản trên chuỗi ký tự 
Slide 60 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
• Thay thế chuỗi con 
Replace(chuỗi cần thay, chuỗi thay thế) 
string s; 
s = "thay the chuoi.".Replace('t', 'T'); 
 s = "Thay The chuoi" 
s = "thay the chuoi.".Replace("th", "TH"); 
 s = "THay THe chuoi" 
Thao tác cơ bản trên chuỗi ký tự 
Slide 61 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
• Định dạng chuỗi: 
Format (định dạng, đối số cần định dạng); 
Thao tác cơ bản trên chuỗi ký tự 
Slide 62 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
• Chiều dài chuỗi: Thuộc tính Length 
string s = "Xin chao"; 
int n = s.Length; // n = 8 
Thao tác cơ bản trên chuỗi ký tự 
Slide 63 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
• Tách chuỗi con theo ký hiệu phân cách cho trước 
 string.Split(danh sách ký tự phân cách) 
VD: In ra màn hình các từ trên từng dòng, mỗi từ cách 
nhau bằng dấu phẩy (,) hoặc khoảng trắng 
 string s = "Hom nay, ngay 02 thang 03 nam 2010"; 
 foreach (string tu in s.Split(' ', ',')) 
 if (tu != "") 
 Console.WriteLine(tu); 
Thao tác cơ bản trên chuỗi ký tự 
Slide 64 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
VD: In ra từ có độ dài dài nhất trong chuỗi cho trước (từ 
cách nhau bằng khoảng trắng hoặc dấu chấm câu) 
string s = "Hom nay, ngay 02 thang 03 nam 2010"; 
string tumax = ""; 
foreach (string tu in s.Split(' ', ',', '.', '!', '?', ';')) 
{ 
 if (tu != "" && tu.Length > tumax.Length) 
 tumax = tu; 
} 
Console.WriteLine("Tu dai nhat: " + tumax); 
Thao tác cơ bản trên chuỗi ký tự 
Slide 65 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
1. Viết chương trình nhập vào thông tin: 
• Mã số nhân viên 
• Họ tên 
• Hệ số lương (hs) 
• Lương cơ bản (lcb) 
• Phụ cấp (pc) 
In tổng lương ra màn hình theo công thức: 
Tổng lương = lcb*hs + pc 
2. Nhập vào hai sô ́ nguyên a, b. In ra màn hình giá trị lớn nhất. 
3. Cho ba số a, b, c đọc vào từ bàn phím. Hãy tìm giá trị lớn nhất 
của ba sô ́ trên và in ra kết quả. 
4. Viết chương trình đếm sô ́ ước số của sô ́ nguyên dương. 
5. Viết một chương trình sinh ra dãy số Fibonacci lên tới 200. 
Bài tập 
Slide 66 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
6. Viết chương trình in ra màn hình hình chữ nhật đặc kích thước 
(m, n nhập từ bàn phím). 
 Ví dụ: Nhập m=5, n=4 
* * * * * 
* * * * * 
* * * * * 
* * * * * 
7. Viết chương trình tính diện tích và chu vi của hình chữ nhật. 
8. Viết chương trình tính diện tích và chu vi hình tròn. 
9. Nhập vào 3 sô ́ thực a, b, c và kiểm tra xem chúng có lập thành 
3 cạnh của một tam giác hay không? Nếu có hãy tính diện tích, 
chiều dài mỗi đường cao của tam giác và in kết quả ra màn 
hình. 
10. Viết chương trình nhập 2 sô ́ nguyên dương a, b. Tìm USCLN & 
BSCNN. 
Bài tập 
Slide 67 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
11. Viết chương trình nhập số nguyên dương n, tính tổng các ước số 
của n. 
 Ví dụ: Nhập n=6 
 Tổng các ước số từ 1 đến n: 1+2+3+6=12. 
12. Nhập vào giờ, phút, giây. Kiểm tra xem giờ, phút, giây đó có hợp 
lệ hay không? 
13. Cho mảng 1 chiều số nguyên, hãy viết các hàm sau: 
• Tìm phần tử có giá trị x 
• Tìm phần tử có giá trị nhỏ nhất 
• Tìm vị trí của phần tử có giá trị lớn nhất 
Bài tập 
Slide 68 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
14. Cho ma trận số nguyên, hãy viết các hàm sau: 
• Tìm phần tử có giá trị x 
• Tìm phần tử có giá trị nhỏ nhất 
• Tìm vị trí của phần tử có giá trị lớn nhất 
• Tính giá trị trung bình các phần tử trong ma trận 
15. Viết hàm đếm số ký tự x cho trước trong chuỗi s 
16. Viết hàm đảo các ký tự trong chuỗi s 
17. Viết hàm đảo các từ của chuỗi s 
18. Viết hàm xóa từ x có trong chuỗi s 
Bài tập 

File đính kèm:

  • pdfbai_giang_cong_nghe_phan_mem_bai_ngon_ngu_lap_trinh_nang_cao.pdf