SlideShare a Scribd company logo
1 of 128
Download to read offline
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
1
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Bài 3: Các cấu trúc điều khiển cơ
bản trong C#bản trong C#
• Tổng quan về cấu trúc điều khiển
• Các cấu trúc điều khiển
• Xử lý bẫy lỗi trong chương trìnhý y g g
• Mảng (Array)
2
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Tổng quan về cấu trúc điều khiển
• Một chương trình không chỉ bao gồm các lệnh tuần
tự nối tiếp nhau. Trong quá trình chạy nó có thể rẽ
nhánh hay lặp lại một đoạn mã nào đó Để làm điềunhánh hay lặp lại một đoạn mã nào đó. Để làm điều
này chúng ta sử dụng các cấu trúc điều khiển.
• Cùng với việc giới thiệu các cấu trúc điều khiểnCùng với việc giới thiệu các cấu trúc điều khiển
chúng ta cũng sẽ phải biết tới một khái niệm mới:
khối lệnh, đó là một nhóm các lệnh được ngăn cách
bởi dấu chấm phẩy (;) nhưng được gộp trong mộtbởi dấu chấm phẩy (;) nhưng được gộp trong một
khối giới hạn bởi một cặp ngoặc nhọn: { và }.
• Nếu khối lệnh chỉ có 1 lệnh thì không cần sử dụng
3
Nếu khối lệnh chỉ có 1 lệnh thì không cần sử dụng
cặp dấu ngoặc nhọn { và }
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Tổng quan về cấu trúc điều khiển
• Trong C# có 3 loại cấu trúc cơ bản:
ấ ầ− Cấu trúc tuần tự
− Cấu trúc quyết định chọn lựa rẽ nhánh
ấ− Cấu trúc lặp
4
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các cấu trúc điều khiển
• Cấu trúc rẽ nhánh
ề• Toán tử điều kiện ?
• Cấu trúc lựa chọn switch
• Cấu trúc lặp while, do, for, foreach
5
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc rẽ nhánh - IF
• Dạng 1: if• Dạng 1: if
−Cú pháp
if (<Điề kiệ >)if (<Điều kiện>)
{
<Khối lệnh A>Khối lệnh A
}
−Ý nghĩag
Nếu <Điều kiện> Đúng Thì
Thực hiện <Khối lệnh A>
6
• <Điều kiện>: là 1 biểu thức logic, trả về true (Đúng) hoặc
false (Sai)
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc rẽ nhánh - IF
• Dạng 1: if• Dạng 1: if
−Sơ đồ hoạt động:
<Biểu
thức điều
kiện>
False
True
<Khối lệnh A>
True
<Khối lệnh A>
7
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc rẽ nhánh - IF
• Dạng 1: if• Dạng 1: if
−Ví dụ: Kiểm tra điểm trung bình để xét kết quả đậu hay rớt
• Nếu điểm trung bình >=5 thì kết quả là đạt• Nếu điểm trung bình >=5 thì kết quả là đạt
8
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc rẽ nhánh - IF
• Dạng 2: if else• Dạng 2: if … else …
−Đặt vấn đề: Trường Y có nhu cầu xét kết quả học tập của
học sinh dựa vào điểm trung bình để quyết định xem họchọc sinh dựa vào điểm trung bình để quyết định xem học
sinh đó có được lên lớp hay không. Có 2 trường hợp có
thể xảy ra:
• T ờ h 1 đ lê lớ (điể t bì h 5 0)• Trường hợp 1: được lên lớp (điểm trung bình >= 5.0)
• Trường hợp 2: không được lên lớp (điểm trung bình <= 5.0)
−2 trường hợp của bài toán trên loại trừ nhau để giải quyết−2 trường hợp của bài toán trên loại trừ nhau, để giải quyết
bài toán này chúng ta dùng cấu trúc if … else …
9
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc rẽ nhánh - IF
• Dạng 2: if else• Dạng 2: if … else …
−Cú pháp
if ( Điề kiệ )if (<Điều kiện>)
{
<Khối lệnh A><Khối lệnh A>
}
else // khi điều kiện của if là false
{
<Khối lệnh B>
10
}
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc rẽ nhánh - IF
• Dạng 2: if … else …
−Ý nghĩa
Nếu <Điều kiện> Đúng Thì
Thực hiện <Khối lệnh A>
N l i Điề kiệ S iNgược lại, <Điều kiện> Sai
Thực hiện <Khối lệnh B>
• <Điều kiện>: là 1 biểu thức logic, trả về true hoặc false
• Cấu trúc if có thể lồng nhau
11
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc rẽ nhánh - IF
• Dạng 2: if else• Dạng 2: if … else …
−Sơ đồ hoạt động:
<Biểu
thức điều
kiện>
False
True
<Khối lệnh A>
True
<Khối lệnh B> <Khối lệnh A><Khối lệnh B>
12
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc rẽ nhánh - IF
f• Dạng 2: if … else …
−Ví dụ 1: Xét kết quả học tập dựa vào điểm trung bình
Nếu DTB <5 thì Kết quả là Ở lại lớp
Ngược lại là Được lên lớp
double dtb = double.Parse(Console.ReadLine());
if (dtb >= 5)( )
Console.Write("Được lên lớp“);
else
13
Console.Write("Ở lại lớp“);
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc rẽ nhánh - IF
f• Dạng 2: if … else …
−Ví dụ 2: Xét kết quả học tập dựa vào điểm trung bình
Nếu DTB <5 thì Kết quả là Ở lại lớp và phải thi lại
Ngược lại là Được lên lớp và không phải thi lại
14
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc rẽ nhánh - IF
f• Dạng 2: if … else …
−Ví dụ 3: Lập trình cho phép nhập vào từ bàn phím thông tin
họ tên khách hàng mã số điện kế chỉ số đầu chỉ số cuốihọ tên khách hàng, mã số điện kế, chỉ số đầu, chỉ số cuối.
Sau đó xuất kết quả ra màn hình dạng sau:
• Họ tên khách hàng:
• Mã số điện kế:
• Chỉ số đầu:
ố ố• Chỉ số cuối:
• Số tiền phải trả:
15
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc rẽ nhánh - IF
f• Dạng 2: if … else …
−Quy ước tính toán:
• Nếu 0 < số Kw tiêu thụ <= 100 => đơn giá là 500 đồng/1kw
• Nếu 100 < số Kw tiêu thụ <= 250 => đơn giá là 600 đồng/1kw
• Nếu 250 < số Kw tiêu thụ <= 300 => đơn giá là 800 đồng/1kw• Nếu 250 < số Kw tiêu thụ <= 300 => đơn giá là 800 đồng/1kw
• Nếu 300 < số Kw tiêu thụ => đơn giá là 1000 đồng/1kw
16
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc rẽ nhánh - IF
f• Dạng 2: if … else …
−Các bước thực hiện:
• Bước 1: khởi động Visual Studio 2005 và tạo mới một project
dạng Console Application, đặt tên project là TinhTienDien
• Bước 2: trong hàm Main có thể khai báo các lệnh như saug ệ
– Khai báo các biến cần sử dụng
17
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc rẽ nhánh - IF
f• Dạng 2: if … else …
−Các bước thực hiện:
• Bước 2: (tt)
– Xử lý nhập dữ liệu từ bàn phím
18
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc rẽ nhánh - IF
f• Dạng 2: if … else …
−Các bước thực hiện:
• Bước 2: (tt)
– Xử lý tính tiền điện phải trả
19
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc rẽ nhánh - IF
f• Dạng 2: if … else …
−Các bước thực hiện:
• Bước 2: (tt)
– Xử lý xuất kết quả ra màn hình
• Bước 3: chạy trình ứng dụng nhập vào các thông tin cần thiết
ể ếvà kiểm tra kết quả.
20
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc rẽ nhánh - IF
• Dạng 3: if … else if …
−Cú pháp
if (<Điều kiện 1>)
<Tập lệnh 1>
else if (<Điều kiện 2>)
<Tập lệnh 2>
…
else
<Tập lệnh n>
21
ập ệ
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc rẽ nhánh - IF
• Dạng 3: if … else if …
−Ý nghĩag
Nếu <Điều kiện 1> Đúng Thì
Thực hiện <Tập lệnh 1>
Ngược lại nếu <Điều kiện 2> Đúng Thì
Thực hiện <Tập lệnh 2>
…
Ngược lại tất cả điều kiện trên
Thực hiện <Tập lệnh n>
22
Thực hiện <Tập lệnh n>
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
• Lưu ý
−Có thể phối hợp các dạng if với nhaup ợp ạ g
−Cấu trúc IF có thể lồng nhau
if (<Điều kiện 1>) IF Dạng 1
{ if (<Điều kiện A>)
<Tập lệnh A>
else if (<Điều kiện B>)else if (<Điều kiện B>)
<Tập lệnh B>
…
else
<Tập lệnh n>
}
23
}
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
• Lưu ý
−Có thể phối hợp các dạng If với nhaup ợp ạ g
−Cấu trúc IF có thể lồng nhau
if (<Điều kiện 1>)
{
if (<Điều kiện A>)
<Tập lệnh A><Tập lệnh A>
else if (<Điều kiện B>)
<Tập lệnh B>
IF Dạng 3
…
else
<Tập lệnh n>
24
<Tập lệnh n>
}
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
• Lưu ý
−Ví dụ: Kiểm tra điểm nhập hợp lệ trước khi xếp loạiVí dụ: Kiểm tra điểm nhập hợp lệ trước khi xếp loại
double dtb = double.Parse(Console.ReadLine());
string xl="";
if (dtb < 0 || dtb > 10)
Console.WriteLine("Điểm không hợp lệ !");
else
{
if (dtb < 5)if (dtb < 5)
xl = "Yếu";
else if (dtb < 6.5)
l "T bì h"
25
xl = "Trung bình";
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
• Lưu ý
−Ví dụ: Kiểm tra điểm nhập hợp lệ trước khi xếp loạiVí dụ: Kiểm tra điểm nhập hợp lệ trước khi xếp loại
else if (dtb < 8)
xl = "Khá";
else
xl = "Giỏi";
Console.WriteLine(“Xếp loại: {0}”, xl);
}
26
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Bài tập áp dụng IF
Bài 1: Kết quả học tập−Bài 1: Kết quả học tập
• Nhập vào điểm học kỳ 1 (HK1), học kỳ 2 (HK2)
• Tính và xuất ra điểm trung bình (ĐTB) = (HK1 + HK2*2 ) /3Tính và xuất ra điểm trung bình (ĐTB) (HK1 HK2 2 ) /3
• Dựa vào ĐTB xuất ra Kết quả và Xếp loại học lực với:
– Kết quả:
ếĐược lên lớp: nếu ĐTB >=5
Ở lại lớp : nếu ĐTB <5
– Xếp loại học lực:p
Giỏi: nếu ĐTB >=8
Khá: nếu 6.5 < ĐTB <8
Trung bình: nếu 5 < = ĐTB <6 5
27
Trung bình: nếu 5 < = ĐTB <6.5
Yếu: nếu ĐTB <5
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Bài tập áp dụng IF
−Bài 2: Tìm số ngày của tháng
• Nhập vào Tháng và Năm
• Tính và xuất ra số ngày có trong Tháng và Năm được nhập
28
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
ẫ• Hướng dẫn
−Bài 1: Xếp loại học tập
• Có thể sử dụng IF dạng 2 (lồng nhau) hoặc dạng 3
−Bài 2: Tìm số ngày của tháng
ể ế ề ề• Dùng toán tử || để kết hợp nhiều điều kiện trong IF
• Thuật toán
– Nếu tháng =1 hoặc tháng =3 hoặc 5, 7, 8, 10, 12Nếu tháng 1 hoặc tháng 3 hoặc 5, 7, 8, 10, 12
Số ngày =31
– Nếu tháng =4 hoặc tháng =6 hoặc 9, 11
Số ngày =30Số ngày 30
– Nếu tháng =2
Nếu năm nhuần
Số ngày =29
29
Số ngày 29
Ngược lại
Số ngày =28
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
• Hướng dẫn
−Bài 2: Tìm số ngày của thángBài 2: Tìm số ngày của tháng
• Năm nhuần là năm:
– Chia hết cho 400 (nam % 400 == 0)
Hoặc
– Chia hết cho 4 và không chia hết cho 100
(nam % 4 == 0 && Nam % 100 != 0)
• Ví dụ
– Năm 2000: năm nhuần vì năm chia hết cho 400
Năm 1900: không nhuần vì năm chia hết cho 4 và chia hết 100– Năm 1900: không nhuần vì năm chia hết cho 4 và chia hết 100
30
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Bài tập
−Bài 1: Giải phương trình bậc I: ax + b = 0
• Yêu cầu:
– Nhập 2 hệ số a và bNhập 2 hệ số a và b
– Tìm nghiệm x của phương trình
• Thuật toán
– Nếu a = 0:
Nếu b = 0: Phương trình có vô số nghiệm
Ngược lại (nếu b != 0): Phương trình vô nghiệmg ợ ạ ( ) g g ệ
– Ngược lại (nếu a != 0)
Nghiệm x = -b/a
31
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
−Bài 2: Giải phương trình bậc 2: ax2 + bx +c =0
ầ• Yêu cầu:
– Nhập 3 hệ số a, b và c
– Tìm nghiệm x của phương trình
• Thuật toán
– Nếu a=0:
Giải phương trình bậc nhất: bx + c=0Giải phương trình bậc nhất: bx + c=0
– Ngược lại (nếu a!=0)
Tính Delta = b2 - 4ac
Tìm nghiệm theo Delta
Delta <0: Phương trình vô nghiệm
Delta =0: Phương trình có nghiệm kép x1=x2=-b / 2a
32
g g p
Delta >0: Phương trình có 2 nghiệm:
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các cấu trúc điều khiển
• Cấu trúc rẽ nhánh
ề• Toán tử điều kiện ?
• Cấu trúc lựa chọn switch
• Cấu trúc lặp while, do, for, foreach
33
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Toán tử điều kiện - ?
• Toán tử ? hoạt động tương tự như dạng 2 của cú• Toán tử ? hoạt động tương tự như dạng 2 của cú
pháp IF
• Cú pháp• Cú pháp
Biến_kết_quả = <Điều kiện> ? <biểu_thức_1> : <biểu_thức_2>
Ý• Ý nghĩa
Nếu <Điều kiện> Đúng Thì
ề ểTrả về <Biểu_thức_1>
Ngược lại
Trả về <Biểu thức 2>
34
Trả về <Biểu_thức_2>
− <Điều kiện>: là 1 biểu thức logic, trả về true hoặc false
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Toán tử điều kiện - ?
• Ví dụ: Xét kết quả học tập dựa vào điểm trung
bình
• Nếu DTB <5 thì Kết quả là Ở lại lớp
• Ngược lại là Được lên lớp
double dtb = double.Parse(Console.ReadLine());
t i k t (dtb > 5) ? "Đ lê lớ “ "Ở l i lớ “string ket_qua = (dtb >= 5) ? "Được lên lớp“ : "Ở lại lớp“;
Console.WriteLine(“Kết quả: {0}”, ket_qua);
35
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các cấu trúc điều khiển
• Cấu trúc rẽ nhánh
ề• Toán tử điều kiện ?
• Cấu trúc lựa chọn switch
• Cấu trúc lặp while, do, for, foreach
36
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc lựa chọn – switch
• Công dụng
−Với cấu trúc IF, khi có nhiều trường hợp cần xét, ta sẽ
dùng toán tử || để nối các điều kiện phức tạp khi có quádùng toán tử || để nối các điều kiện phức tạp khi có quá
nhiều điều kiện
−Do đó có thể sử dụng cấu trúc chọn switch để thay thế choDo đó có thể sử dụng cấu trúc chọn switch để thay thế cho
cấu trúc IF trong trường hợp này
37
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc lựa chọn – switch
• Cú pháp• Cú pháp
switch (<biểu thức chọn lựa>)
{
< iá t ị 1>case <giá trị 1>:
<Tập lệnh 1>
break;
< iá t ị 2>case <giá trị 2>:
<Tập lệnh 2>
break;
…
default: // các lệnh thực thi khi <biểu thức> không bằng bất kỳ
<giá trị> nào của case
<Tập lệnh n>
38
<Tập lệnh n>
break;
}
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc lựa chọn – switch
Ý• Ý nghĩa
− case: Liệt kê các trường hợp cần xét
− Giá trị i: chứa các giá trị cần so sánh với <biểu thức>
− Tập lệnh x: được thực hiện khi biểu thức chọn lựa =
ốmột trong số các giá trị của <Tập giá trị i>
39
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
• Ví dụ: nhập vào thứ, cho biết tên thứ trong tuần
int thu = Int.Parse(Console.ReadLine());
switch (thu)
{
case 2:case 2:
Console.WriteLine(“Thứ Hai”);
break;
...
case 8:
Console.WriteLine(“Chủ Nhật”);
break;
default:
Console.WriteLine(“Thứ nhập vào không hợp lệ”);
40
break;
}
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc lựa chọn – switch
• Chú ý:
− Nếu như các trường hợp cần xét có cùng một tập giá trị
thì lần lượt liệt kê các trường hợp, sau đó mới viết tập giá
trị
41
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
• Ví dụ: Tính số ngày trong tháng
int thang = int.Parse(Console.ReadLine());g ( ())
int nam = int.Parse(Console.ReadLine());
switch(thang)
{{
case 1:
case 3:
case 5:
case 7:
case 8:case 8:
case 10:
case 12:
42
Console.WriteLine(“Tháng {0} năm {1} có 31 ngày”, thang, nam);
break;
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
• Ví dụ: Tính số ngày trong tháng
case 4:
case 6:
case 9:
11case 11:
Console.WriteLine(“Tháng {0} năm {1} có 30 ngày”, thang, nam);
break;
case 2:
if ((nam % 4 == 0 && nam % 100 != 0) || nam % 400 == 0)
Console WriteLine(“Tháng {0} năm {1} có 29 ngày” thang nam);Console.WriteLine( Tháng {0} năm {1} có 29 ngày , thang, nam);
else
Console.WriteLine(“Tháng {0} năm {1} có 28 ngày”, thang, nam);
43
break;
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
• Ví dụ: Tính số ngày trong tháng
default:
Console.WriteLine(“Tháng nhập vào không hợp lệ”);
break;
}}
44
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
• Ví dụ: So sánh với cách viết dùng IF
int thang = int.Parse(Console.ReadLine());int thang int.Parse(Console.ReadLine());
int nam = int.Parse(Console.ReadLine());
if (thang==1 || thang==3 || thang==5 || thang==7 || thang==8 || thang==10 ||
thang==12)g )
Console.WriteLine(“Tháng {0} có 31 ngày”, thang);
else if (thang==4 || thang==6 || thang==9 || thang== 11)
Console WriteLine(“Tháng {0} có 30 ngày” thang);Console.WriteLine( Tháng {0} có 30 ngày , thang);
else if (thang==2)
{
if (( % 400 0) || ( % 4 0 && % 100 ! 0))if ((nam % 400==0) || (nam % 4==0 && nam % 100 !=0))
Console.WriteLine(“Tháng {0} có 31 ngày”, thang);
else
45
ngay=28;
}
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
• Ví dụ: So sánh với cách viết dùng IF
elseelse
Console.WriteLine(“Tháng nhập vào không hợp lệ”);
46
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
ố• Ví dụ: Tính số ngày trong tháng
47
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Bài tập áp dụng switch
Áp dụng switch cho các bài tập saup ụ g ập
−Bài 1: Viết lại bài Tìm số ngày của tháng sử dụng switch
−Bài 2: Đọc số bằng chữg
• Nhập 1 số nguyên (từ 0 đến 9)
• Đọc số bằng chữ
0 Không– 0 Không
– 1 Một
– …
Bài 3 Tì thứ t t ầ−Bài 3: Tìm thứ trong tuần
• Nhập vào ngày, tháng, năm
• Cho biết ngày đó là thứ mấy
48
C o b ết gày đó à t ứ ấy
trong tuần
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
• Hướng dẫn
−Bài 1: Tìm số ngày của thángBài 1: Tìm số ngày của tháng
• Dựa vào bài tập tính số ngày trong tháng đã viết bằng cấu trúc
IF để viết lại bằng cấu trúc switch
−Bài 2: Đọc số bằng chữ
• Đọc số dạng đơn giản (chỉ có 1 chữ số từ 0 9)
(S đó ó thể â ấ đ hiề hữ ố)(Sau đó có thể nâng cấp đọc nhiều chữ số)
• Kiểm tra số hợp lệ trước khi đọc
−Bài 3: Tìm thứ trong tuần−Bài 3: Tìm thứ trong tuần
• Dùng phương thức DateTime.Parse để tạo ra 1 ngày từ các
thành phần ngày, tháng, năm
49
• Dùng thuộc tính DayOfWeek của biến kiểu DateTime để tìm
thứ trong tuần.
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các cấu trúc điều khiển
• Cấu trúc rẽ nhánh
ề• Toán tử điều kiện ?
• Cấu trúc lựa chọn switch
• Cấu trúc lặp while, do, for, foreach
50
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc lặp – while
• Cô d• Công dụng
−Dùng để thực hiện lặp đi lặp lại công việc nào đó khi thoả
điều kiệnđiều kiện
−Bản chất của câu lệnh lặp while là trước tiên sẽ kiểm tra
biểu thức điều kiện lặp, nếu kết quả kiểm tra là :ệ ặp, q
• True : sẽ thực hiện một câu lệnh hay khối lệnh thuộc câu lệnh
while.
• False sẽ chấm dứt câ lệnh hile à ch ển đến câ lệnh• False : sẽ chấm dứt câu lệnh while và chuyển đến câu lệnh
tuần tự kế tiếp.
51
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc lặp – while
• Cú há• Cú pháp
while (<Điều kiện lặp>)
{
<Tập lệnh>
[continue;]
[break;]
}
52
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc lặp – while
• Ý hĩ• Ý nghĩa
− Điều kiện lặp: là biểu thức logic, trả về true/false
− Tập lệnh: chỉ có thể được thực hiện và lặp nếu và chỉ nếu
<Điều kiện lặp> = true
break: thoát khỏi vòng lặp− break: thoát khỏi vòng lặp
− continue: quay trở lên kiểm tra điều kiện của vòng lặp khi
cầncần
53
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc lặp – while
• Sơ đồ hoạt động:• Sơ đồ hoạt động:
<Điều kiện lặp>
False
Thoát khỏi
vòng lặp
<Khối lệnh lặp>
True
vòng lặp
<Khối lệnh lặp>
54
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc lặp – while
ổ ố ế• Ví dụ 1: Tính tổng các số nguyên từ 1 đến 100
int i=1, tong=0;
hil (i < 100)while (i <= 100)
{
tong += i; // tong =tong + itong i; // tong tong i
//Tăng i tác động đến điều kiện lặp
i ++;
}
Console.WriteLine(“Tổng các số nguyên từ 1=> 100: {0}”, tong);
55
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc lặp – while
ổ ố ế• Ví dụ 2: Tính tổng các số nguyên lẻ từ 1 đến 100
int i=1, tong=0;
while (i <=100)
{
t i // t t itong += i; // tong =tong + i;
// Tăng i lên 2 để có được những số lẻ
i += 2;i 2;
}
56
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc lặp – while
• Ví d 3 Tì ố ê lớ hất t kh ả từ• Ví dụ 3: Tìm số nguyên lớn nhất trong khoảng từ
1 đến 100 chia hết cho n (0<n<=100)
i t i 100int i=100, max;
while (i >= 1)
{ if (i % n == 0){ if (i % n 0)
{
max = i;
break; //thoát khỏi vòng lặp
}
57
i -= 1;
}
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc lặp – while
• Cá ê tắ bả ầ l ý khi là iệ ới• Các nguyên tắc cơ bản cần lưu ý khi làm việc với
cấu trúc while:
Khởi tạo giá trị ban đầu cho biến tham gia biểu thức điều−Khởi tạo giá trị ban đầu cho biến tham gia biểu thức điều
kiện của cấu trúc lặp while trước khi cấu trúc lặp while
được thực hiện.
−Nếu có nhiều hơn một câu lệnh bên trong vòng lặp while
phải đặt các lệnh đó trong dấu khối lệnh { }
Bê t ò lặ hải ó ít hất ột â lệ h tá độ−Bên trong vòng lặp phải có ít nhất một câu lệnh tác động
lên biến tham gia điều kiện lặp. Tác động này phải có
khuynh hướng sau hữu hạn số lần lặp biểu thức điều kiện
lặ ẽ th đổi iá t ị (để t á h ò lặ ô h )
58
lặp sẽ thay đổi giá trị (để tránh vòng lặp vô hạn)
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc lặp – while
• Cá ê tắ bả ầ l ý khi là iệ ới• Các nguyên tắc cơ bản cần lưu ý khi làm việc với
cấu trúc while:
Câu lệnh while “xét trước làm sau” do vậy các câu lệnh−Câu lệnh while xét trước làm sau do vậy các câu lệnh
bên trong nó có thể sẽ không thực hiện lần nào cả nếu
ngay lần đầu tiên kết quả của kiểm tra biểu thức điều kiện
là sailà sai.
−Câu lệnh while đặc biệt hữu dụng cho các dạng bài toán
mà số lần lặp của các câu lệnh bên trong vòng lặp làmà số lần lặp của các câu lệnh bên trong vòng lặp là
không thể xác định.
−Câu lệnh while có thể được sử dụng lồng trong một câu
lệ h hil khá
59
lệnh while khác.
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Bài tập áp dụng while
Áp dụng vòng lặp while cho các bài tập sauÁp dụng vòng lặp while cho các bài tập sau
−Bài 1: Tìm ước số chung lớn nhất
• Nhập vào số thứ nhất (so 1) và số thứ hai (so 2)Nhập vào số thứ nhất (so_1) và số thứ hai (so_2)
• Tìm ước số chung lớn nhất của so_1 và so_2 sau đó xuất kết
quả ra màn hình
ố−Bài 2: Tìm số nghịch đảo
• Nhập vào một số bất kỳ (n)
• Tì à ất ố đả ủ ( í d ố 123 ó ố hị h• Tìm và xuất ra số đảo ngược của n (ví dụ: số 123 có số nghịch
đảo là 321)
60
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc lặp – do
• Cô d• Công dụng
−Câu lệnh do thực thi một hoặc nhiều câu lệnh đặt trong
khối lệnh {} và chúng sẽ được lặp lại cho đến khi giá trịkhối lệnh {}, và chúng sẽ được lặp lại cho đến khi giá trị
xác định trong biểu thức điều kiện lặp là false.
−Bản chất của cấu trúc lặp do là trước tiên sẽ thực hiện mộtặp ự ệ ộ
câu lệnh hay khối lệnh trước, sau đó sẽ kiểm tra biểu thức
điều kiện lặp, nếu kết quả kiểm tra là :
• True : sẽ thực hiện lặp lại một câu lệnh hay khối lệnh thuộc• True : sẽ thực hiện lặp lại một câu lệnh hay khối lệnh thuộc
câu lệnh do.
• False : sẽ chấm dứt câu lệnh do và chuyển đến câu lệnh tuần
tự kế tiếp
61
tự kế tiếp .
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc lặp – do
• Cú há• Cú pháp
do
{
<Tập lệnh>
[continue;]
[break;]
}
while (<Điều kiện lặp>)
62
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc lặp – do
• Ý hĩ• Ý nghĩa
− Điều kiện lặp: là biểu thức logic, trả về true/false
− Tập lệnh: có thể chỉ được thực hiện một lần nếu <Điều
kiện lặp> = false hoặc được lặp lại nhiều lần nếu <Điều
kiện lặp> = trueệ ặp
− break: thoát khỏi vòng lặp
− continue: quay trở lên kiểm tra điều kiện của vòng lặp khicontinue: quay trở lên kiểm tra điều kiện của vòng lặp khi
cần.
63
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc lặp – do
• Sơ đồ hoạt động:• Sơ đồ hoạt động:
<Khối lệnh lặp>
<Điều kiện lặp>
False
TrueThoát khỏi
64
vòng lặp
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc lặp – do
ổ ố ế• Ví dụ 1: Tính tổng các số nguyên từ 1 đến 100
int i = 0, tong = 0;
ddo
{
tong += i; // tong =tong + itong i; // tong tong i
i ++; //Tăng i tác động đến điều kiện lặp
}
while (i <= 100)
Console.WriteLine(“Tổng các số nguyên từ 1=> 100: {0}”, tong);
65
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc lặp – do
ổ ố ế• Ví dụ 1: Tính tổng các số nguyên từ 1 đến 100
int i = 0, tong = 0;
ddo
{
i ++;i ;
tong += i;
}
while (i <= 100)
Console.WriteLine(“Tổng các số nguyên từ 1=> 100: {0}”, tong);
66
− Bạn có nhận xét gì khi đưa dòng lệnh i++ lên trước tong +=i ?
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc lặp – for
• Công dụng
−Dùng để thực hiện lặp đi lặp lại một xử lý khi thoả điều
kiệ lặkiện lặp
−Vòng lặp for thích hợp cho việc duyệt các mảng và cho
việc xử lý tuần tựviệc xử lý tuần tự.
−Bản chất của vòng lặp for là số lần lặp xác định trước khi
bắt đầu thực hiện.
67
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc lặp – for
• Cú pháp
for (<biến đếm> = <gt đầu>; <điều kiện lặp>; <tăng/giảm biến
đếm>)đếm>)
{
<Khối lệnh lặp>
[continue;]
[break;]
}
68
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc lặp – for
Ý• Ý nghĩa
−Khối lệnh lặp: chỉ được thực hiện nếu <biến đếm> còn
thỏ điề kiệ lặthỏa điều kiện lặp
−break: thoát khỏi vòng lặp khi cần
−continue: bỏ qua các lệnh còn lại (nếu có) và tiếp tục
lặp
69
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc lặp – for
• Sơ đồ hoạt động:• Sơ đồ hoạt động:
<Gán giá trị ban đầu<Gán giá trị ban đầu
cho biến chạy>
<Điều
kiện lặp>
False
Thoát khỏi
True
Thoát khỏi
vòng lặp
<Tăng/Giảm giá trị
70
<Khối lệnh lặp>
<Tăng/Giảm giá trị
biến đếm>
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc lặp – for
• Ví dụ 1: Tính tổng các số nguyên từ 1 đến 100• Ví dụ 1: Tính tổng các số nguyên từ 1 đến 100
int tong =0;
int i;int i;
for(i = 1; i<=100; i++)
{{
tong += i; tong =tong + i
}
Console.WriteLine(“Tổng các số nguyên 1=>100: {0}”, tong);
71
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc lặp – for
• Ví dụ 2: Tính tổng các số nguyên lẻ từ 1 đến 100
int i, tong;
tong =0;
for(i=1; i<=100; i=i+2) for(i=1; i<=100; i++)
{{
tong += i;
{
if(i%2 != 0)
tong += i;
}
Hoặc
}
Console.WriteLine(“Tổng các số nguyên lẻ từ 1=>100: {0}”, tong);
}
72
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc lặp – for
• Ví dụ 3: Tìm số nguyên lớn nhất trong khoảng từ• Ví dụ 3: Tìm số nguyên lớn nhất trong khoảng từ
1 đến 100 chia hết cho n (0<n<=100)
int i, max;int i, max;
int n = int.Parse(Console.ReadLine());
for(i = 100; i>=1; i--)
{ if( i%n == 0)
{ max = i;
//break; //thoát khỏi vòng lặp
}
}
73
}
Console.WriteLine(“Số lớn nhất chia hết cho {0} là {1}”, n, max);
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc lặp – for
• Ví dụ 4: Tính tổng các số nguyên chẵn từ 1 đến• Ví dụ 4: Tính tổng các số nguyên chẵn từ 1 đến
100
int tong=0;
for(int i = 1; i<=100;i++)
{
if(i%2 != 0)
continue;
tong+=i;
}
74
}
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc lặp – for
• Ví dụ 4: Cho số nguyên n. Liệt kê các ước số của
nó
int i;
int n = int.Parse(Console.ReadLine());
string kq = "";string kq = "";
for (i = 1; i < n; i++)
{ if (n % i == 0)
kq = kq + " " + i;
}
C l W it Li (k )
75
Console.WriteLine(kq);
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc lặp – foreach
• Cú há• Cú pháp
foreach (<kiểu dữ liệu> <phần tử> in <tập hợp>)
{{
<Tập lệnh>
}}
• Ý nghĩa
• Duyệt qua từng phần tử trong tập hợp để thực hiện xử lýDuyệt qua từng phần tử trong tập hợp để thực hiện xử lý
tương ứng
76
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc lặp – foreach
• Ví dụ: Duyệt mảng• Ví dụ: Duyệt mảng
77
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Bài tập
Áp dụng vòng lặp for cho các bài tập sauÁp dụng vòng lặp for cho các bài tập sau
−Bài 1:Tạo bảng cửu chương
• Nhập vào số cho biết cửu chương mấyNhập vào số cho biết cửu chương mấy
• Xuất bảng cửu chương tương ứng
78
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Bài tập
Áp dụng vòng lặp for cho các bài tập sauÁp dụng vòng lặp for cho các bài tập sau
−Bài 2: Số nguyên tố
• Nhập vào một số nguyên NNhập vào một số nguyên N
• Kiểm tra xem số N có phải là số nguyên tố hay không
79
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Bài 3: Các cấu trúc điều khiển cơ
bản trong C#bản trong C#
• Tổng quan về cấu trúc điều khiển
• Các cấu trúc điều khiển
• Xử lý bẫy lỗi trong chương trìnhý y g g
• Mảng (Array)
80
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Xử lý bẫy lỗi trong chương trình
• Phân loại lỗi
ỗ• Xử lý lỗi
81
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Phân loại lỗi
• Lỗi cú pháp (syntax error)
− Xuất hiện khi ta viết code.ệ
− Được thông báo ngay khi viết sai cú pháp.
− Nguyên nhân: viết sai hoặc thiếu cú phápNguyên nhân: viết sai hoặc thiếu cú pháp.
• Lỗi thực thi (runtime error)
Xả khi t th thi h t ì h− Xảy ra khi ta thực thi chương trình.
− Khó xác định hơn lỗi cú pháp.
N ê hâ Mở ột tậ ti đ tồ t i hi h 0
82
− Nguyên nhân: Mở một tập tin đang tồn tại, chia cho 0,
truy xuất bảng không tồn tại trong CSDL, …
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Phân loại lỗi
• Lỗi luận lý
− Xảy ra khi ta thực thi chương trìnhXảy ra khi ta thực thi chương trình
− Được thể hiện dưới những hình thức hoặc những kết
quả không mong đợi.q g g
− Nguyên nhân: sai lầm trong thuật giải.
83
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Xử lý lỗi
• Dò và sửa lỗi thủ công
− Khi có lỗi phát sinh thì VS sẽ tự động thông báo lỗi và tựKhi có lỗi phát sinh thì VS sẽ tự động thông báo lỗi và tự
động nhảy đến dòng lệnh gây ra lỗi
− Cách sửa lỗi:
• Xem thông báo lỗi và dòng xảy ra lỗi
• Kiểm tra lại cú pháp của dòng lệnh gây ra lỗi
84
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Xử lý lỗi
• Lệnh throw
−Câu lệnh throw thường được dùng để báo hiệu sự cố xảy
ủ ột tì h t bất th ờ ( i lệ ti )ra của một tình trạng bất thường (sự ngoại lệ - exception)
trong khi chương trình thực thi.
−Cú pháp:Cú pháp:
throw new <loại Exception>( [“Câu thông báo lỗi”]);
85
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Phân loại lỗi
• Lệnh throw
−Ví dụ:
86
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Xử lý lỗi
• Dùng try…catch để bẫy và xử lý lỗi
− Try … catch: cho phép thử thực hiện một khối lệnh xem
ỗ ế ẫ ỗcó bị lỗi hay không, nếu có sẽ bẫy và xử lý lỗi.
− Cấu trúc try … catch có ba khối:
ố ỗ• Khối try: chứa các câu lệnh có khả năng gây ra lỗi
• Khối catch: chứa các câu lệnh để bẫy và xử lý lỗi phát sinh
trên khối try.
• Khối finally: chứa các câu lệnh sẽ được thực hiện cuối cùng
(cho dù có lỗi xảy ra hay không)
Một lỗi ả ra khi th c thi ch ơng trình gọi là một
87
− Một lỗi xảy ra khi thực thi chương trình gọi là một
Exception.
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Xử lý lỗi
• Dùng try…catch để bẫy và xử lý lỗi
− Nếu không có vấn đề nào xảy ra công cụ vận hành sẽ bỏNếu không có vấn đề nào xảy ra, công cụ vận hành sẽ bỏ
qua khối catch.
− Một số nguồn tài nguyên cần phải được thu dọn, ví dụg g y p
như việc đóng một tập tin, phải luôn được thực thi ngay
cả khi một exception đã được throw. Để hoàn tất điều
này có thể sử dụng khối lệnh finally.y g y
− Một khối lệnh finally luôn được thực thi, không quan tâm
đến việc liệu một exception có đã được throw hay không.
88
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Xử lý lỗi
• Dùng try…catch để bẫy và xử lý lỗi
− Ví dụ:Ví dụ:
89
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Xử lý lỗi
• Dùng try…catch để bẫy và xử lý lỗi
− Lưu ý:
• Một khối try có thể dùng một hay nhiều khối catch
• Mỗi khối catch hiển thị một loại lỗi khác nhau. Lúc đó công
cụ vận hành sẽ chỉ thực thi khối catch với kiểu exception phù
ầ
ụ ậ ự p p
hợp đầu tiên
• Trường hợp có nhiều khối catch thì khối catch với các
exception cụ thể phải được liệt kê trước các exception tổng
quátquát.
• Các khai báo biến trong khối lệnh try sẽ không có hiệu lực
đối với các lệnh sử dụng nó nằm ở bên ngoài. Do vậy, nếu
bên trong khối lệnh finally có sử dụng các biến liên quan đến
90
bên trong khối lệnh finally có sử dụng các biến liên quan đến
các biến được khai báo và sử dụng trong khối lệnh try
phải đưa các khai báo biến này ra ngoài khối lệnh try.
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Xử lý lỗi
• Dùng try…catch để bẫy và xử lý lỗi
− Ví dụ:Ví dụ:
91
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Bài 3: Các cấu trúc điều khiển cơ
bản trong C#bản trong C#
• Tổng quan về cấu trúc điều khiển
• Các cấu trúc điều khiển
• Xử lý bẫy lỗi trong chương trìnhý y g g
• Mảng (Array)
92
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Mảng
• Khái niệm
• Khai báo và khởi tạo mảng
• Các thao tác trên mảng
93
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Mảng
• Giới thiệu
−Mảng là tập hợp các biến có cùng kiểu dữ liệu, cùng tên
h ó hỉ ố khá hnhưng có chỉ số khác nhau.
−Trong C#, mảng có chỉ số bắt đầu là 0 và luôn luôn là
mảng động (mảng có khả năng thay đổi kích thước)mảng động (mảng có khả năng thay đổi kích thước).
−Ví dụ: Mảng nguyên 5 phần tử
0 1 2 3 4
10 20 15 6 8
Chỉ sốChỉ số
Giá t ịGiá t ị
94
10 20 15 6 8 Giá trịGiá trị
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Mảng
• Khái niệm
• Khai báo và khởi tạo mảng
• Các thao tác trên mảng
95
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Khai báo và khởi tạo mảng
Kh i bá khô khởi kí h h ớ à iá ị• Khai báo không khởi tạo kích thước và giá trị
<Kiểu dữ liệu>[ ] Tên_mảng;
Ví dụ: int[ ] a;Ví dụ: int[ ] a;
• Khai báo có khởi tạo kích thước nhưng không khởi tạo• Khai báo có khởi tạo kích thước nhưng không khởi tạo
giá trị ban đầu:
<Kiểu dữ liệu>[ ] Tên_mảng = new <Kiểu dữ liệu>[<số phần tử>];
Ví dụ: Khai báo mảng nguyên 10 phần tử
int[ ] a = new int[10];
96
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Khai báo và khởi tạo mảng
• Kh i bá ó khởi t kí h th ớ à khởi t iá t ị b• Khai báo có khởi tạo kích thước và khởi tạo giá trị ban
đầu:
<Kiểu dữ liệu>[ ] Tên mảng = new <Kiểu dữ liệu>[<Số phần tử>]ệ [ ] _ g ệ [ p ]
{giá trị 1, giá trị 2, giá trị 3, ...};
hoặc:
<Kiể dữ liệ >[ ] Tê ả { iá t ị 1 iá t ị 2 iá t ị 3 }<Kiểu dữ liệu>[ ] Tên_mảng = {giá trị 1, giá trị 2, giá trị 3, ...};
Ví dụ: Khai báo và khởi tạo mảng nguyên có 5 phần tử
int[ ] a = new int[5]{2,10,4,8,5};int[ ] a new int[5]{2,10,4,8,5};
int[ ] a = {2, 10, 4, 8, 5};
97
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Mảng
• Khái niệm
• Khai báo và khởi tạo mảng
• Các thao tác trên mảng
98
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các thao tác trên mảng
• Truy xuất giá trị của một phần tử trong mảng
ế• Tìm kiếm trên mảng
• Sắp xếp mảng
• Thêm, bớt phần tử trong mảng
99
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các thao tác trên mảng
• Truy xuất 1 phần tử của mảng
Tên_mảng[<vị trí i>]
• Vị trí i: trong khoảng từ 0 Số phần tử -1
100
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các thao tác trên mảng
ấ ề• Lấy chiều dài của mảng
−Sử dụng thuộc tính Length của mảng
−Ví dụ:
int[ ] a = {2, 10, 4, 8, 5};
Console.WriteLine(a.Length.ToString());
// kết quả là 5
101
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các thao tác trên mảng
• Duyệt mảng
−Duyệt qua và xử lý trên từng phần tử của mảngyệ q ý g p g
for (int i = 0; i<Tên_mảng.Length; i++)
{{
// Xử lý trên phần tử Tên_mảng[i]
}}
102
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các thao tác trên mảng
• Duyệt mảng
−Ví dụ: Duyệt và xuất mảngụ yệ g
int[] d = {1, 2, 3, 4, 5};
string chuoi_mang = "";
for (int i = 0; i < d.Length; i++)
{
S ()chuoi_mang += d[i].ToString() + " ";
}
Console WriteLine(chuoi mang);
103
Console.WriteLine(chuoi_mang);
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các thao tác trên mảng
• Duyệt mảng
− Ví dụ: Duyệt và nhập giá trị cho từng phần tử của mảng mang_nguyen
int[ ] mang_nguyen;
mang nguyen = new int[sopt];mang_nguyen new int[sopt];
for (int i = 0; i < mang_nguyen.Length; i++)
{
Console Write(“Nhập giá trị cho phần tử thứ {0}” i + 1);Console.Write(“Nhập giá trị cho phần tử thứ {0}”, i + 1);
string n = Console.ReadLine();
if(n != "")
mang_nguyen[i] = int.Parse(n);
}
104
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các thao tác trên mảng
• Duyệt mảng• Duyệt mảng
−Ví dụ: Duyệt và xuất giá trị từng phần tử của mảng
mang nguyenmang_nguyen
string chuoi_mang = "";
for (int i = 0; i < mang_nguyen.Length; i++)
{
chuoi_mang += mang_nguyen[i] + " ";
}
return chuoi_mang;
105
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các thao tác trên mảng
• Truy xuất giá trị của một phần tử trong mảng
ế• Tìm kiếm trên mảng
• Sắp xếp mảng
• Thêm, bớt phần tử trong mảng
106
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Tìm kiếm trên mảng
• Tìm phần tử lớn nhất / nhỏ nhất• Tìm phần tử lớn nhất / nhỏ nhất
int i, max;
[0] // hầ tử đầ tiêmax = mang_nguyen[0]; // phần tử đầu tiên
for (i = 0; i < mang_nguyen.Length; i++)
{
// nếu gặp phần tử lớn hơn
if (max < mang_nguyen[i])
max = mang_nguyen[i];
107
}
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Tìm kiếm trên mảng
• Tìm phần tử lớn nhất / nhỏ nhấtTìm phần tử lớn nhất / nhỏ nhất
int i, min;
min = mang nguyen[0]; // phần tử đầu tiênmin mang_nguyen[0]; // phần tử đầu tiên
for (i = 0; i < mang_nguyen.Length; i++)
{
// nếu gặp phần tử nhỏ hơn
if (min > mang_nguyen[i])
i [i]min = mang_nguyen[i];
}
108
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Tìm kiếm trên mảng
• Tìm phần tử có giá trị được cung cấpTìm phần tử có giá trị được cung cấp
int so_tim = int.Parse(Console.ReadLine());
// Khai báo và tạo giá trị mặc định: giả sử không tìm thấyạ g ị ặ ị g g y
string kq = "Không tìm thấy " + so_tim + " trong mảng";
for (int i = 0; i < mang_nguyen.Length; i++)
{{
if(mang_nguyen[i]==so_tim) // nếu tìm thấy
{
kq = "Tìm thấy " + so_tim + " trong mảng, tại ví trí " + (i+1);
break;
}
109
}
}
Console.WriteLine("Kết quả tìm kiếm: {0}“, kq);
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các thao tác trên mảng
• Truy xuất giá trị của một phần tử trong mảng
ế• Tìm kiếm trên mảng
• Sắp xếp mảng
• Thêm, bớt phần tử trong mảng
110
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Sắp xếp trên mảng
• Sắp xếp các phần tử tăng dầnSắp xếp các phần tử tăng dần
for (int i = 0; i < mang_nguyen.Length - 1; i++)
{
for (int j = i + 1; j < mang_nguyen.Length; j++)
{
if (mang_nguyen[i] > mang_nguyen[j])
{ // nếu gặp phần tử nhỏ hơn thì đổi chỗ
int tam = mang_nguyen[i];
mang_nguyen[i] = mang_nguyen[j];
mang_nguyen[j] = tam;
} //if
} // for j
111
} j
} // for i
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Sắp xếp trên mảng
• Sắp xếp các phần tử tăng dầnSắp xếp các phần tử tăng dần
1 83 2155 1334 2895
1 82155 133 289534
3 82155 131 289534
3 82155 131 289345 3 82155 131 289345
………………………………
112
13 342 213 551 8985
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các phương thức của mảng
• Sắ ế• Sắp xếp
−Sắp tăng dần
Array.Sort(<Mảng>);
• Array: lớp được xây dựng sẵn
• Ví d• Ví dụ
// Sắp xếp mang_nguyen tăng dần
Array.Sort(mang_nguyen);
113
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các phương thức của mảng
• Sắ ế• Sắp xếp
−Đảo ngược mảng
Array.Reverse(<Mảng>);
• Ví dụ
// Đảo ngược mang_nguyen
Array.Reverse(mang_nguyen);
114
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các phương thức của mảng
• Tì kiế• Tìm kiếm
−Tìm 1 giá trị trong mảng, sẽ trả về vị trí của phần tử nếu
tìm thấy nếu không sẽ trả về 1tìm thấy, nếu không sẽ trả về -1
Array.IndexOf(<Mảng>, <giá trị tìm>)
Ví dVí dụ
int gia_tri = 5; // Tìm vị trí của phần tử có giá trị là 5
int vi tri = Array.IndexOf(mang nguyen, gia tri);_ y ( g_ g y , g _ );
if (vi_tri < 0)
Console.WriteLine("Không tìm thấy!", "Thông báo");
else
Console WriteLine("Đã tìm thấy {0} tại vị trí {1}“ gia tri vi tri);
115
Console.WriteLine("Đã tìm thấy {0} tại vị trí {1} , gia_tri, vi_tri);
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các thao tác trên mảng
• Truy xuất giá trị của một phần tử trong mảng
ế• Tìm kiếm trên mảng
• Sắp xếp mảng
• Thêm, bớt phần tử trong mảng
116
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Thêm, bớt phần tử trong mảng
• Thêm một phần tử vào cuối mảngThêm một phần tử vào cuối mảng
−Sử dụng phương thức Resize của lớp Array để tăng thêm
kích thước của mảng một phần tửg ộ p
−Gán giá trị cho phần tử cuối cùng là giá trị cần thêm
−Cú pháp:Cú pháp:
Array.Resize <Kiểu dữ liệu>(<Mảng tham chiếu>, <Số phần tử mới>)
−Ví dụ: thêm 1 phần tử có giá trị là 9 vào cuối mảng sau:
int[ ] a = {4, 2, 5}; //ban đầu mảng a có 3 phần tử
Array.Resize <int> (ref a, 4); //tăng kích thước của mảng a
117
a[3] = 9;
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Thêm, bớt phần tử trong mảng
• Thêm một phần tử vào vị trí bất kỳ trong mảng
−Xác định vị trí k cần chèn thêm 1 phần tử
−Sử dụng phương thức Resize của lớp Array để tăng thêm
kích thước của mảng một phần tử
ể ầ ố ế−Dịch chuyển giá trị của các phần tử tại vị trí có chỉ số k đến
phần tử kế cuối có chỉ số n-1 sang phải 1 phần tử
−Gán giá trị cho phần tử thứ k là giá trị cần thêmGán giá trị cho phần tử thứ k là giá trị cần thêm
118
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Thêm, bớt phần tử trong mảng
• Thêm một phần tử vào vị trí bất kỳ trong mảng
−Ví dụ: thêm 1 phần tử có giá trị là 9 vào vị trí thứ 2 trong
ả A ó 3 hầ tử đ kh i bá hmảng A có 3 phần tử được khai báo như sau:
int[ ] A = {4, 2, 5};
4 2 5Mảng A trước khi thêm:
4 9 2Mảng A sau khi thêm: 5
119
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Thêm, bớt phần tử trong mảng
• Thêm một phần tử vào vị trí bất kỳ trong mảng
−Các bước thực hiện:
• Bước 1: tăng kích thước của mảng A lên một phần tử
Array.Resize <int>(ref A, 4);
4 2 5Mảng A sau khi Resize: 0
120
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Thêm, bớt phần tử trong mảng
• Thêm một phần tử vào vị trí bất kỳ trong mảng
−Các bước thực hiện:
• Bước 2: Dịch chuyển giá trị của các phần tử tại vị trí có chỉ số
k (k=1) đến phần tử kế cuối có chỉ số n-1 (n=3) sang phải 1
phần tử
for(int i = A.Length - 1; i > 1; i--)
{
A[i] = A[i – 1];[ ] [ ];
};
121
4 2 2Mảng A sau khi dịch chuyển: 5
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Thêm, bớt phần tử trong mảng
• Thêm một phần tử vào vị trí bất kỳ trong mảng
−Các bước thực hiện:
• Bước 3: Gán giá trị cho phần tử thứ k (k=1) là giá trị cần thêm
A[1] = 9;
4 9 2Mảng A sau gán giá trị: 5g g g ị
122
Phần tử mới thêm vào
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Thêm, bớt phần tử trong mảng
• Xóa một phần tử ở cuối mảng
−Sử dụng phương thức Resize của lớp Array để giảm kíchụ g p g p y g
thước của mảng xuống một phần tử
−Cú pháp:
Array.Resize <Kiểu dữ liệu>(<Mảng tham chiếu>, <Số phần tử mới>)
−Ví dụ: xóa 1 phần tử cuối cùng có giá trị là 5 trong mảng
sau:sau:
int[ ] a = {4, 9, 2, 5}; //ban đầu mảng a có 4 phần tử
Array.Resize <int> (ref a, 3); //giảm kích thước của mảng a
123
y ( , ); g g
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Thêm, bớt phần tử trong mảng
• Xóa một phần tử tại vị trí bất kỳ trong mảng
−Xác định vị trí k của phần tử cần xóa
−Dịch chuyển giá trị của các phần tử tại vị trí có chỉ số k+1
đến phần tử cuối cùng có chỉ số n sang trái 1 phần tử
ể−Sử dụng phương thức Resize của lớp Array để giảm kích
thước của mảng một phần tử
124
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Thêm, bớt phần tử trong mảng
• Xóa một phần tử vào vị trí bất kỳ trong mảng
−Ví dụ: xóa phần tử có giá trị là 9 tại vị trí thứ 2 trong mảng
A ó 4 hầ tử đ kh i bá hA có 4 phần tử được khai báo như sau:
int[ ] A = {4, 9, 2, 5};
4 9 2Mảng A trước khi xóa: 5
4 2Mảng A sau khi xóa: 5
125
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Thêm, bớt phần tử trong mảng
• Xóa một phần tử tại vị trí bất kỳ trong mảng
−Các bước thực hiện:
• Bước 1: Dịch chuyển giá trị của các phần tử tại vị trí có chỉ số
k+1 (k=1) đến phần tử cuối cùng có chỉ số n (n=3) sang trái 1
phần tử
for(int i = 2; i < A.Length; i++)
{
A[i - 1] = A[i];[ ] [ ];
};
126
4 2 5Mảng A sau khi dịch chuyển: 5
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Thêm, bớt phần tử trong mảng
• Xóa một phần tử tại vị trí bất kỳ trong mảng
−Các bước thực hiện:
• Bước 2: giảm kích thước của mảng A xuống một phần tử
Array.Resize <int>(ref A, 3);
4 2 5Mảng A sau khi Resize:
127
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
128

More Related Content

What's hot

(HoaND) giao trinh webservice
(HoaND) giao trinh webservice (HoaND) giao trinh webservice
(HoaND) giao trinh webservice Duc Hoa
 
Bài 7: Thiết kế cơ sở dữ liệu vật lý
Bài 7: Thiết kế cơ sở dữ liệu vật lýBài 7: Thiết kế cơ sở dữ liệu vật lý
Bài 7: Thiết kế cơ sở dữ liệu vật lýMasterCode.vn
 
Báo cáo ATTT CÁC DẠNG TẤN CÔNG SQL INJECTION
Báo cáo ATTT CÁC DẠNG TẤN CÔNG SQL INJECTIONBáo cáo ATTT CÁC DẠNG TẤN CÔNG SQL INJECTION
Báo cáo ATTT CÁC DẠNG TẤN CÔNG SQL INJECTIONnataliej4
 
Phân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàngPhân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàngleemindinh
 
Nghiên cứu thống kê thu nhập-chi tiêu và tiết kiệm của sinh viên ĐH Ngoại Thương
Nghiên cứu thống kê thu nhập-chi tiêu và tiết kiệm của sinh viên ĐH Ngoại ThươngNghiên cứu thống kê thu nhập-chi tiêu và tiết kiệm của sinh viên ĐH Ngoại Thương
Nghiên cứu thống kê thu nhập-chi tiêu và tiết kiệm của sinh viên ĐH Ngoại ThươngNgNgcc
 
[Java] Khái niệm về RMI trong Java và cách sử dụng RMI
[Java] Khái niệm về RMI trong Java và cách sử dụng RMI[Java] Khái niệm về RMI trong Java và cách sử dụng RMI
[Java] Khái niệm về RMI trong Java và cách sử dụng RMITí Bụng Bự
 
Bài tập nhập môn lập trình
Bài tập nhập môn lập trìnhBài tập nhập môn lập trình
Bài tập nhập môn lập trìnhHuy Rùa
 
Danh Sach Lien Ket
Danh Sach Lien KetDanh Sach Lien Ket
Danh Sach Lien KetTony Nhân
 
Thuật toán mã hóa rsa
Thuật toán mã hóa rsaThuật toán mã hóa rsa
Thuật toán mã hóa rsaBảo Điệp
 
Giáo Trình Java Cơ Bản ( Vietnamese)
Giáo Trình Java Cơ Bản ( Vietnamese)Giáo Trình Java Cơ Bản ( Vietnamese)
Giáo Trình Java Cơ Bản ( Vietnamese)Đông Lương
 
Phần 10: Dữ liệu kiểu cấu trúc
Phần 10: Dữ liệu kiểu cấu trúcPhần 10: Dữ liệu kiểu cấu trúc
Phần 10: Dữ liệu kiểu cấu trúcHuy Rùa
 
Devwork.vn Giáo trình C# cơ bản
Devwork.vn Giáo trình C# cơ bảnDevwork.vn Giáo trình C# cơ bản
Devwork.vn Giáo trình C# cơ bảnDevwork
 
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"Tú Cao
 
Xây dựng ứng dụng Chatbot tư vấn khách hàng sử dụng các kỹ thuật học sâu.pdf
Xây dựng ứng dụng Chatbot tư vấn khách hàng sử dụng các kỹ thuật học sâu.pdfXây dựng ứng dụng Chatbot tư vấn khách hàng sử dụng các kỹ thuật học sâu.pdf
Xây dựng ứng dụng Chatbot tư vấn khách hàng sử dụng các kỹ thuật học sâu.pdfMan_Ebook
 
Xây dựng ứng dụng hỗ trợ học tiếng anh trên thiết bị android
Xây dựng ứng dụng hỗ trợ học tiếng anh trên thiết bị androidXây dựng ứng dụng hỗ trợ học tiếng anh trên thiết bị android
Xây dựng ứng dụng hỗ trợ học tiếng anh trên thiết bị androidTrần Võ Khôi Nguyên
 
bài tập định chế tài chính BUH
bài tập định chế tài chính BUHbài tập định chế tài chính BUH
bài tập định chế tài chính BUHphamhang34
 
phân tích mối quan hệ giữa chi phí-khối lượng và lợi nhuận
phân tích mối quan hệ giữa chi phí-khối lượng và lợi nhuậnphân tích mối quan hệ giữa chi phí-khối lượng và lợi nhuận
phân tích mối quan hệ giữa chi phí-khối lượng và lợi nhuậnKi Di
 

What's hot (20)

Đề tài: Xây dựng hệ thống Chatbots tự động, HAY, 9đ
Đề tài: Xây dựng hệ thống Chatbots tự động, HAY, 9đĐề tài: Xây dựng hệ thống Chatbots tự động, HAY, 9đ
Đề tài: Xây dựng hệ thống Chatbots tự động, HAY, 9đ
 
(HoaND) giao trinh webservice
(HoaND) giao trinh webservice (HoaND) giao trinh webservice
(HoaND) giao trinh webservice
 
Bài 7: Thiết kế cơ sở dữ liệu vật lý
Bài 7: Thiết kế cơ sở dữ liệu vật lýBài 7: Thiết kế cơ sở dữ liệu vật lý
Bài 7: Thiết kế cơ sở dữ liệu vật lý
 
Báo cáo ATTT CÁC DẠNG TẤN CÔNG SQL INJECTION
Báo cáo ATTT CÁC DẠNG TẤN CÔNG SQL INJECTIONBáo cáo ATTT CÁC DẠNG TẤN CÔNG SQL INJECTION
Báo cáo ATTT CÁC DẠNG TẤN CÔNG SQL INJECTION
 
Phân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàngPhân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàng
 
Nghiên cứu thống kê thu nhập-chi tiêu và tiết kiệm của sinh viên ĐH Ngoại Thương
Nghiên cứu thống kê thu nhập-chi tiêu và tiết kiệm của sinh viên ĐH Ngoại ThươngNghiên cứu thống kê thu nhập-chi tiêu và tiết kiệm của sinh viên ĐH Ngoại Thương
Nghiên cứu thống kê thu nhập-chi tiêu và tiết kiệm của sinh viên ĐH Ngoại Thương
 
[Java] Khái niệm về RMI trong Java và cách sử dụng RMI
[Java] Khái niệm về RMI trong Java và cách sử dụng RMI[Java] Khái niệm về RMI trong Java và cách sử dụng RMI
[Java] Khái niệm về RMI trong Java và cách sử dụng RMI
 
Bài tập nhập môn lập trình
Bài tập nhập môn lập trìnhBài tập nhập môn lập trình
Bài tập nhập môn lập trình
 
Danh Sach Lien Ket
Danh Sach Lien KetDanh Sach Lien Ket
Danh Sach Lien Ket
 
Thuật toán mã hóa rsa
Thuật toán mã hóa rsaThuật toán mã hóa rsa
Thuật toán mã hóa rsa
 
Giáo Trình Java Cơ Bản ( Vietnamese)
Giáo Trình Java Cơ Bản ( Vietnamese)Giáo Trình Java Cơ Bản ( Vietnamese)
Giáo Trình Java Cơ Bản ( Vietnamese)
 
Phần 10: Dữ liệu kiểu cấu trúc
Phần 10: Dữ liệu kiểu cấu trúcPhần 10: Dữ liệu kiểu cấu trúc
Phần 10: Dữ liệu kiểu cấu trúc
 
Devwork.vn Giáo trình C# cơ bản
Devwork.vn Giáo trình C# cơ bảnDevwork.vn Giáo trình C# cơ bản
Devwork.vn Giáo trình C# cơ bản
 
Bai tap thuc hanh
Bai tap thuc hanhBai tap thuc hanh
Bai tap thuc hanh
 
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
 
Xây dựng ứng dụng Chatbot tư vấn khách hàng sử dụng các kỹ thuật học sâu.pdf
Xây dựng ứng dụng Chatbot tư vấn khách hàng sử dụng các kỹ thuật học sâu.pdfXây dựng ứng dụng Chatbot tư vấn khách hàng sử dụng các kỹ thuật học sâu.pdf
Xây dựng ứng dụng Chatbot tư vấn khách hàng sử dụng các kỹ thuật học sâu.pdf
 
Thuật toán K mean
Thuật toán K meanThuật toán K mean
Thuật toán K mean
 
Xây dựng ứng dụng hỗ trợ học tiếng anh trên thiết bị android
Xây dựng ứng dụng hỗ trợ học tiếng anh trên thiết bị androidXây dựng ứng dụng hỗ trợ học tiếng anh trên thiết bị android
Xây dựng ứng dụng hỗ trợ học tiếng anh trên thiết bị android
 
bài tập định chế tài chính BUH
bài tập định chế tài chính BUHbài tập định chế tài chính BUH
bài tập định chế tài chính BUH
 
phân tích mối quan hệ giữa chi phí-khối lượng và lợi nhuận
phân tích mối quan hệ giữa chi phí-khối lượng và lợi nhuậnphân tích mối quan hệ giữa chi phí-khối lượng và lợi nhuận
phân tích mối quan hệ giữa chi phí-khối lượng và lợi nhuận
 

Viewers also liked

Bai tap lap trinh c
Bai tap lap trinh  cBai tap lap trinh  c
Bai tap lap trinh ctiểu minh
 
Baigiang - bai4. Bài Toán Và Thuật Toán
Baigiang - bai4. Bài Toán Và Thuật ToánBaigiang - bai4. Bài Toán Và Thuật Toán
Baigiang - bai4. Bài Toán Và Thuật ToánVan Vo
 
2 whats-new-in-ios7-m2-xcode-slides
2 whats-new-in-ios7-m2-xcode-slides2 whats-new-in-ios7-m2-xcode-slides
2 whats-new-in-ios7-m2-xcode-slidesMasterCode.vn
 
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vnPdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Bài 7 - Xử lý nhập xuất - Nền tảng lập trình ứng dụng với C#
Bài 7 - Xử lý nhập xuất - Nền tảng lập trình ứng dụng với C#Bài 7 - Xử lý nhập xuất - Nền tảng lập trình ứng dụng với C#
Bài 7 - Xử lý nhập xuất - Nền tảng lập trình ứng dụng với C#MasterCode.vn
 
Bài 3 - Điều khiển kiểm tra dữ liệu
Bài 3 - Điều khiển kiểm tra dữ liệuBài 3 - Điều khiển kiểm tra dữ liệu
Bài 3 - Điều khiển kiểm tra dữ liệuMasterCode.vn
 
Bài 5 - Tính thừa kế và Đa hình - Nền tảng lập trình ứng dụng với C#
Bài 5 - Tính thừa kế và Đa hình - Nền tảng lập trình ứng dụng với C#Bài 5 - Tính thừa kế và Đa hình - Nền tảng lập trình ứng dụng với C#
Bài 5 - Tính thừa kế và Đa hình - Nền tảng lập trình ứng dụng với C#MasterCode.vn
 
Bài 4 Làm việc với báo cáo cơ bản - Giáo trình FPT
Bài 4 Làm việc với báo cáo cơ bản - Giáo trình FPTBài 4 Làm việc với báo cáo cơ bản - Giáo trình FPT
Bài 4 Làm việc với báo cáo cơ bản - Giáo trình FPTMasterCode.vn
 
Bài 5 Làm việc với báo cáo nâng cao - Giáo trình FPT
Bài 5 Làm việc với báo cáo nâng cao - Giáo trình FPTBài 5 Làm việc với báo cáo nâng cao - Giáo trình FPT
Bài 5 Làm việc với báo cáo nâng cao - Giáo trình FPTMasterCode.vn
 
Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...
Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...
Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...MasterCode.vn
 
Bài 6 - Quản lý ứng dụng web asp.net
Bài 6 - Quản lý ứng dụng web asp.netBài 6 - Quản lý ứng dụng web asp.net
Bài 6 - Quản lý ứng dụng web asp.netMasterCode.vn
 
Bài 6 - Interface - Nền tảng lập trình ứng dụng với C#
Bài 6 - Interface - Nền tảng lập trình ứng dụng với C#Bài 6 - Interface - Nền tảng lập trình ứng dụng với C#
Bài 6 - Interface - Nền tảng lập trình ứng dụng với C#MasterCode.vn
 
Bài 2 : Các khái niệm và nguyên tắc cơ bản của NET Framework - NỀN TẢNG LẬP T...
Bài 2 : Các khái niệm và nguyên tắc cơ bản của NET Framework - NỀN TẢNG LẬP T...Bài 2 : Các khái niệm và nguyên tắc cơ bản của NET Framework - NỀN TẢNG LẬP T...
Bài 2 : Các khái niệm và nguyên tắc cơ bản của NET Framework - NỀN TẢNG LẬP T...MasterCode.vn
 
Pdf bai 4 làm việc với báo cáo cơ bản-slide 04-quan tri csdl voi access-maste...
Pdf bai 4 làm việc với báo cáo cơ bản-slide 04-quan tri csdl voi access-maste...Pdf bai 4 làm việc với báo cáo cơ bản-slide 04-quan tri csdl voi access-maste...
Pdf bai 4 làm việc với báo cáo cơ bản-slide 04-quan tri csdl voi access-maste...MasterCode.vn
 
Bài 5 - Web User Controls Asp.net
Bài 5 - Web User Controls Asp.netBài 5 - Web User Controls Asp.net
Bài 5 - Web User Controls Asp.netMasterCode.vn
 
Bài 3: Cấu trúc điều khiển, hàm và xử lý sự kiện - Giáo trình FPT
Bài 3: Cấu trúc điều khiển, hàm và xử lý sự kiện - Giáo trình FPTBài 3: Cấu trúc điều khiển, hàm và xử lý sự kiện - Giáo trình FPT
Bài 3: Cấu trúc điều khiển, hàm và xử lý sự kiện - Giáo trình FPTMasterCode.vn
 
Bài 8 - Collection Generics - Nền tảng lập trình ứng dụng với C#
Bài 8 - Collection Generics - Nền tảng lập trình ứng dụng với C#Bài 8 - Collection Generics - Nền tảng lập trình ứng dụng với C#
Bài 8 - Collection Generics - Nền tảng lập trình ứng dụng với C#MasterCode.vn
 
Bài 7: Làm việc với truy vấn nâng cao - Giáo trình FPT
Bài 7: Làm việc với truy vấn nâng cao - Giáo trình FPTBài 7: Làm việc với truy vấn nâng cao - Giáo trình FPT
Bài 7: Làm việc với truy vấn nâng cao - Giáo trình FPTMasterCode.vn
 

Viewers also liked (20)

Bai tap lap trinh c
Bai tap lap trinh  cBai tap lap trinh  c
Bai tap lap trinh c
 
Excel 2007
Excel 2007Excel 2007
Excel 2007
 
Baigiang - bai4. Bài Toán Và Thuật Toán
Baigiang - bai4. Bài Toán Và Thuật ToánBaigiang - bai4. Bài Toán Và Thuật Toán
Baigiang - bai4. Bài Toán Và Thuật Toán
 
2 whats-new-in-ios7-m2-xcode-slides
2 whats-new-in-ios7-m2-xcode-slides2 whats-new-in-ios7-m2-xcode-slides
2 whats-new-in-ios7-m2-xcode-slides
 
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vnPdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
 
Bài 7 - Xử lý nhập xuất - Nền tảng lập trình ứng dụng với C#
Bài 7 - Xử lý nhập xuất - Nền tảng lập trình ứng dụng với C#Bài 7 - Xử lý nhập xuất - Nền tảng lập trình ứng dụng với C#
Bài 7 - Xử lý nhập xuất - Nền tảng lập trình ứng dụng với C#
 
Bài 3 - Điều khiển kiểm tra dữ liệu
Bài 3 - Điều khiển kiểm tra dữ liệuBài 3 - Điều khiển kiểm tra dữ liệu
Bài 3 - Điều khiển kiểm tra dữ liệu
 
J query khtn
J query khtnJ query khtn
J query khtn
 
Bài 5 - Tính thừa kế và Đa hình - Nền tảng lập trình ứng dụng với C#
Bài 5 - Tính thừa kế và Đa hình - Nền tảng lập trình ứng dụng với C#Bài 5 - Tính thừa kế và Đa hình - Nền tảng lập trình ứng dụng với C#
Bài 5 - Tính thừa kế và Đa hình - Nền tảng lập trình ứng dụng với C#
 
Bài 4 Làm việc với báo cáo cơ bản - Giáo trình FPT
Bài 4 Làm việc với báo cáo cơ bản - Giáo trình FPTBài 4 Làm việc với báo cáo cơ bản - Giáo trình FPT
Bài 4 Làm việc với báo cáo cơ bản - Giáo trình FPT
 
Bài 5 Làm việc với báo cáo nâng cao - Giáo trình FPT
Bài 5 Làm việc với báo cáo nâng cao - Giáo trình FPTBài 5 Làm việc với báo cáo nâng cao - Giáo trình FPT
Bài 5 Làm việc với báo cáo nâng cao - Giáo trình FPT
 
Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...
Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...
Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...
 
Bài 6 - Quản lý ứng dụng web asp.net
Bài 6 - Quản lý ứng dụng web asp.netBài 6 - Quản lý ứng dụng web asp.net
Bài 6 - Quản lý ứng dụng web asp.net
 
Bài 6 - Interface - Nền tảng lập trình ứng dụng với C#
Bài 6 - Interface - Nền tảng lập trình ứng dụng với C#Bài 6 - Interface - Nền tảng lập trình ứng dụng với C#
Bài 6 - Interface - Nền tảng lập trình ứng dụng với C#
 
Bài 2 : Các khái niệm và nguyên tắc cơ bản của NET Framework - NỀN TẢNG LẬP T...
Bài 2 : Các khái niệm và nguyên tắc cơ bản của NET Framework - NỀN TẢNG LẬP T...Bài 2 : Các khái niệm và nguyên tắc cơ bản của NET Framework - NỀN TẢNG LẬP T...
Bài 2 : Các khái niệm và nguyên tắc cơ bản của NET Framework - NỀN TẢNG LẬP T...
 
Pdf bai 4 làm việc với báo cáo cơ bản-slide 04-quan tri csdl voi access-maste...
Pdf bai 4 làm việc với báo cáo cơ bản-slide 04-quan tri csdl voi access-maste...Pdf bai 4 làm việc với báo cáo cơ bản-slide 04-quan tri csdl voi access-maste...
Pdf bai 4 làm việc với báo cáo cơ bản-slide 04-quan tri csdl voi access-maste...
 
Bài 5 - Web User Controls Asp.net
Bài 5 - Web User Controls Asp.netBài 5 - Web User Controls Asp.net
Bài 5 - Web User Controls Asp.net
 
Bài 3: Cấu trúc điều khiển, hàm và xử lý sự kiện - Giáo trình FPT
Bài 3: Cấu trúc điều khiển, hàm và xử lý sự kiện - Giáo trình FPTBài 3: Cấu trúc điều khiển, hàm và xử lý sự kiện - Giáo trình FPT
Bài 3: Cấu trúc điều khiển, hàm và xử lý sự kiện - Giáo trình FPT
 
Bài 8 - Collection Generics - Nền tảng lập trình ứng dụng với C#
Bài 8 - Collection Generics - Nền tảng lập trình ứng dụng với C#Bài 8 - Collection Generics - Nền tảng lập trình ứng dụng với C#
Bài 8 - Collection Generics - Nền tảng lập trình ứng dụng với C#
 
Bài 7: Làm việc với truy vấn nâng cao - Giáo trình FPT
Bài 7: Làm việc với truy vấn nâng cao - Giáo trình FPTBài 7: Làm việc với truy vấn nâng cao - Giáo trình FPT
Bài 7: Làm việc với truy vấn nâng cao - Giáo trình FPT
 

Similar to Bài 3 - Cấu trúc điều khiển - Nền tảng lập trình ứng dụng với C#

Bai3cautrucdieukhien 130622085309-phpapp02
Bai3cautrucdieukhien 130622085309-phpapp02Bai3cautrucdieukhien 130622085309-phpapp02
Bai3cautrucdieukhien 130622085309-phpapp02Tiểu Sương Lãnh
 
CLB Internet - iShare: Ky nang Excel cho moi nguoi - 240615
CLB Internet - iShare: Ky nang Excel cho moi nguoi - 240615CLB Internet - iShare: Ky nang Excel cho moi nguoi - 240615
CLB Internet - iShare: Ky nang Excel cho moi nguoi - 240615clbinternet.info
 
Bài 4.2 - SQL (STRUCTURED QUERY LANGUAGE) - SQL server
Bài 4.2 - SQL (STRUCTURED QUERY LANGUAGE) - SQL serverBài 4.2 - SQL (STRUCTURED QUERY LANGUAGE) - SQL server
Bài 4.2 - SQL (STRUCTURED QUERY LANGUAGE) - SQL serverMasterCode.vn
 
Tổng quát về tích phân
Tổng quát về tích phân Tổng quát về tích phân
Tổng quát về tích phân Hoàng Hải Huy
 
Chuong 3 tin 11
Chuong 3 tin 11Chuong 3 tin 11
Chuong 3 tin 11Sunkute
 
Nhập môn lập trình - Vương Bá Thịnh
Nhập môn lập trình - Vương Bá ThịnhNhập môn lập trình - Vương Bá Thịnh
Nhập môn lập trình - Vương Bá Thịnhsilverclaw
 
LeThanhNghe_bai_10_chuong3_lop11
LeThanhNghe_bai_10_chuong3_lop11LeThanhNghe_bai_10_chuong3_lop11
LeThanhNghe_bai_10_chuong3_lop11K33LA-KG
 
Tich phan %28 nguyen duy khoi%29
Tich phan %28 nguyen duy khoi%29Tich phan %28 nguyen duy khoi%29
Tich phan %28 nguyen duy khoi%29trongphuckhtn
 
Tich phan (nguyen duy khoi)
Tich phan (nguyen duy khoi)Tich phan (nguyen duy khoi)
Tich phan (nguyen duy khoi)roggerbob
 
csdl - buoi7-8-9
csdl - buoi7-8-9csdl - buoi7-8-9
csdl - buoi7-8-9kikihoho
 
Phan2 chuong4 caclenhcautruc
Phan2 chuong4 caclenhcautrucPhan2 chuong4 caclenhcautruc
Phan2 chuong4 caclenhcautrucLy hai
 
Tin học ứng dụng trong kinh doanh data4u
Tin học ứng dụng trong kinh doanh data4uTin học ứng dụng trong kinh doanh data4u
Tin học ứng dụng trong kinh doanh data4uXephang Daihoc
 
Vuong ngoc anh
Vuong ngoc anhVuong ngoc anh
Vuong ngoc anhvb2tin09
 
Vuong ngoc anh
Vuong ngoc anhVuong ngoc anh
Vuong ngoc anhvb2tin09
 
[Bài dạy] cấu trúc rẽ nhánh
[Bài dạy] cấu trúc rẽ nhánh[Bài dạy] cấu trúc rẽ nhánh
[Bài dạy] cấu trúc rẽ nhánhNguyễn Thiên Ý
 
Huong danontapc
Huong danontapcHuong danontapc
Huong danontapcHồ Lợi
 

Similar to Bài 3 - Cấu trúc điều khiển - Nền tảng lập trình ứng dụng với C# (20)

Bai3cautrucdieukhien 130622085309-phpapp02
Bai3cautrucdieukhien 130622085309-phpapp02Bai3cautrucdieukhien 130622085309-phpapp02
Bai3cautrucdieukhien 130622085309-phpapp02
 
CLB Internet - iShare: Ky nang Excel cho moi nguoi - 240615
CLB Internet - iShare: Ky nang Excel cho moi nguoi - 240615CLB Internet - iShare: Ky nang Excel cho moi nguoi - 240615
CLB Internet - iShare: Ky nang Excel cho moi nguoi - 240615
 
Bài 4.2 - SQL (STRUCTURED QUERY LANGUAGE) - SQL server
Bài 4.2 - SQL (STRUCTURED QUERY LANGUAGE) - SQL serverBài 4.2 - SQL (STRUCTURED QUERY LANGUAGE) - SQL server
Bài 4.2 - SQL (STRUCTURED QUERY LANGUAGE) - SQL server
 
Tổng quát về tích phân
Tổng quát về tích phân Tổng quát về tích phân
Tổng quát về tích phân
 
Chuong 3 tin 11
Chuong 3 tin 11Chuong 3 tin 11
Chuong 3 tin 11
 
Bai giang ctrn
Bai giang ctrnBai giang ctrn
Bai giang ctrn
 
Nhập môn lập trình - Vương Bá Thịnh
Nhập môn lập trình - Vương Bá ThịnhNhập môn lập trình - Vương Bá Thịnh
Nhập môn lập trình - Vương Bá Thịnh
 
Bg cau trucrenhanh
Bg cau trucrenhanhBg cau trucrenhanh
Bg cau trucrenhanh
 
LeThanhNghe_bai_10_chuong3_lop11
LeThanhNghe_bai_10_chuong3_lop11LeThanhNghe_bai_10_chuong3_lop11
LeThanhNghe_bai_10_chuong3_lop11
 
Tich phan %28 nguyen duy khoi%29
Tich phan %28 nguyen duy khoi%29Tich phan %28 nguyen duy khoi%29
Tich phan %28 nguyen duy khoi%29
 
Tich phan (nguyen duy khoi)
Tich phan (nguyen duy khoi)Tich phan (nguyen duy khoi)
Tich phan (nguyen duy khoi)
 
csdl - buoi7-8-9
csdl - buoi7-8-9csdl - buoi7-8-9
csdl - buoi7-8-9
 
Phan2 chuong4 caclenhcautruc
Phan2 chuong4 caclenhcautrucPhan2 chuong4 caclenhcautruc
Phan2 chuong4 caclenhcautruc
 
Tin học ứng dụng trong kinh doanh data4u
Tin học ứng dụng trong kinh doanh data4uTin học ứng dụng trong kinh doanh data4u
Tin học ứng dụng trong kinh doanh data4u
 
Vuong ngoc anh
Vuong ngoc anhVuong ngoc anh
Vuong ngoc anh
 
Vuong ngoc anh
Vuong ngoc anhVuong ngoc anh
Vuong ngoc anh
 
[Bài dạy] cấu trúc rẽ nhánh
[Bài dạy] cấu trúc rẽ nhánh[Bài dạy] cấu trúc rẽ nhánh
[Bài dạy] cấu trúc rẽ nhánh
 
Huong danontapc
Huong danontapcHuong danontapc
Huong danontapc
 
Luận văn: Bài tập Cơ sở dữ liệu quan hệ, HAY
Luận văn: Bài tập Cơ sở dữ liệu quan hệ, HAYLuận văn: Bài tập Cơ sở dữ liệu quan hệ, HAY
Luận văn: Bài tập Cơ sở dữ liệu quan hệ, HAY
 
Gioi thieubaiday20121012
Gioi thieubaiday20121012Gioi thieubaiday20121012
Gioi thieubaiday20121012
 

More from MasterCode.vn

Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vnPd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vnMasterCode.vn
 
Why apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vnWhy apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vnMasterCode.vn
 
Dzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vnDzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vnMasterCode.vn
 
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vnGoogle công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vnMasterCode.vn
 
Nghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vnNghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vnMasterCode.vn
 
Lập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vnLập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vnMasterCode.vn
 
Pd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vnPd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vnMasterCode.vn
 
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vnPd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vnMasterCode.vn
 
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vnPdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vnMasterCode.vn
 
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vnPd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vnMasterCode.vn
 
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vnPd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vnMasterCode.vn
 
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vnPd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vnMasterCode.vn
 
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vnPdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vnMasterCode.vn
 
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vnPdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vnPdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vnPdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vnPdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vnPdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vnPdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...MasterCode.vn
 

More from MasterCode.vn (20)

Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vnPd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
 
Why apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vnWhy apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vn
 
Dzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vnDzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vn
 
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vnGoogle công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
 
Nghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vnNghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vn
 
Lập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vnLập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vn
 
Pd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vnPd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vn
 
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vnPd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
 
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vnPdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
 
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vnPd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
 
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vnPd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
 
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vnPd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
 
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vnPdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
 
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vnPdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vnPdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vnPdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vnPdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vnPdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vnPdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
 
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
 

Bài 3 - Cấu trúc điều khiển - Nền tảng lập trình ứng dụng với C#

  • 1. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 1
  • 2. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài 3: Các cấu trúc điều khiển cơ bản trong C#bản trong C# • Tổng quan về cấu trúc điều khiển • Các cấu trúc điều khiển • Xử lý bẫy lỗi trong chương trìnhý y g g • Mảng (Array) 2
  • 3. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Tổng quan về cấu trúc điều khiển • Một chương trình không chỉ bao gồm các lệnh tuần tự nối tiếp nhau. Trong quá trình chạy nó có thể rẽ nhánh hay lặp lại một đoạn mã nào đó Để làm điềunhánh hay lặp lại một đoạn mã nào đó. Để làm điều này chúng ta sử dụng các cấu trúc điều khiển. • Cùng với việc giới thiệu các cấu trúc điều khiểnCùng với việc giới thiệu các cấu trúc điều khiển chúng ta cũng sẽ phải biết tới một khái niệm mới: khối lệnh, đó là một nhóm các lệnh được ngăn cách bởi dấu chấm phẩy (;) nhưng được gộp trong mộtbởi dấu chấm phẩy (;) nhưng được gộp trong một khối giới hạn bởi một cặp ngoặc nhọn: { và }. • Nếu khối lệnh chỉ có 1 lệnh thì không cần sử dụng 3 Nếu khối lệnh chỉ có 1 lệnh thì không cần sử dụng cặp dấu ngoặc nhọn { và }
  • 4. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Tổng quan về cấu trúc điều khiển • Trong C# có 3 loại cấu trúc cơ bản: ấ ầ− Cấu trúc tuần tự − Cấu trúc quyết định chọn lựa rẽ nhánh ấ− Cấu trúc lặp 4
  • 5. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Các cấu trúc điều khiển • Cấu trúc rẽ nhánh ề• Toán tử điều kiện ? • Cấu trúc lựa chọn switch • Cấu trúc lặp while, do, for, foreach 5
  • 6. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc rẽ nhánh - IF • Dạng 1: if• Dạng 1: if −Cú pháp if (<Điề kiệ >)if (<Điều kiện>) { <Khối lệnh A>Khối lệnh A } −Ý nghĩag Nếu <Điều kiện> Đúng Thì Thực hiện <Khối lệnh A> 6 • <Điều kiện>: là 1 biểu thức logic, trả về true (Đúng) hoặc false (Sai)
  • 7. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc rẽ nhánh - IF • Dạng 1: if• Dạng 1: if −Sơ đồ hoạt động: <Biểu thức điều kiện> False True <Khối lệnh A> True <Khối lệnh A> 7
  • 8. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc rẽ nhánh - IF • Dạng 1: if• Dạng 1: if −Ví dụ: Kiểm tra điểm trung bình để xét kết quả đậu hay rớt • Nếu điểm trung bình >=5 thì kết quả là đạt• Nếu điểm trung bình >=5 thì kết quả là đạt 8
  • 9. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc rẽ nhánh - IF • Dạng 2: if else• Dạng 2: if … else … −Đặt vấn đề: Trường Y có nhu cầu xét kết quả học tập của học sinh dựa vào điểm trung bình để quyết định xem họchọc sinh dựa vào điểm trung bình để quyết định xem học sinh đó có được lên lớp hay không. Có 2 trường hợp có thể xảy ra: • T ờ h 1 đ lê lớ (điể t bì h 5 0)• Trường hợp 1: được lên lớp (điểm trung bình >= 5.0) • Trường hợp 2: không được lên lớp (điểm trung bình <= 5.0) −2 trường hợp của bài toán trên loại trừ nhau để giải quyết−2 trường hợp của bài toán trên loại trừ nhau, để giải quyết bài toán này chúng ta dùng cấu trúc if … else … 9
  • 10. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc rẽ nhánh - IF • Dạng 2: if else• Dạng 2: if … else … −Cú pháp if ( Điề kiệ )if (<Điều kiện>) { <Khối lệnh A><Khối lệnh A> } else // khi điều kiện của if là false { <Khối lệnh B> 10 }
  • 11. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc rẽ nhánh - IF • Dạng 2: if … else … −Ý nghĩa Nếu <Điều kiện> Đúng Thì Thực hiện <Khối lệnh A> N l i Điề kiệ S iNgược lại, <Điều kiện> Sai Thực hiện <Khối lệnh B> • <Điều kiện>: là 1 biểu thức logic, trả về true hoặc false • Cấu trúc if có thể lồng nhau 11
  • 12. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc rẽ nhánh - IF • Dạng 2: if else• Dạng 2: if … else … −Sơ đồ hoạt động: <Biểu thức điều kiện> False True <Khối lệnh A> True <Khối lệnh B> <Khối lệnh A><Khối lệnh B> 12
  • 13. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc rẽ nhánh - IF f• Dạng 2: if … else … −Ví dụ 1: Xét kết quả học tập dựa vào điểm trung bình Nếu DTB <5 thì Kết quả là Ở lại lớp Ngược lại là Được lên lớp double dtb = double.Parse(Console.ReadLine()); if (dtb >= 5)( ) Console.Write("Được lên lớp“); else 13 Console.Write("Ở lại lớp“);
  • 14. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc rẽ nhánh - IF f• Dạng 2: if … else … −Ví dụ 2: Xét kết quả học tập dựa vào điểm trung bình Nếu DTB <5 thì Kết quả là Ở lại lớp và phải thi lại Ngược lại là Được lên lớp và không phải thi lại 14
  • 15. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc rẽ nhánh - IF f• Dạng 2: if … else … −Ví dụ 3: Lập trình cho phép nhập vào từ bàn phím thông tin họ tên khách hàng mã số điện kế chỉ số đầu chỉ số cuốihọ tên khách hàng, mã số điện kế, chỉ số đầu, chỉ số cuối. Sau đó xuất kết quả ra màn hình dạng sau: • Họ tên khách hàng: • Mã số điện kế: • Chỉ số đầu: ố ố• Chỉ số cuối: • Số tiền phải trả: 15
  • 16. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc rẽ nhánh - IF f• Dạng 2: if … else … −Quy ước tính toán: • Nếu 0 < số Kw tiêu thụ <= 100 => đơn giá là 500 đồng/1kw • Nếu 100 < số Kw tiêu thụ <= 250 => đơn giá là 600 đồng/1kw • Nếu 250 < số Kw tiêu thụ <= 300 => đơn giá là 800 đồng/1kw• Nếu 250 < số Kw tiêu thụ <= 300 => đơn giá là 800 đồng/1kw • Nếu 300 < số Kw tiêu thụ => đơn giá là 1000 đồng/1kw 16
  • 17. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc rẽ nhánh - IF f• Dạng 2: if … else … −Các bước thực hiện: • Bước 1: khởi động Visual Studio 2005 và tạo mới một project dạng Console Application, đặt tên project là TinhTienDien • Bước 2: trong hàm Main có thể khai báo các lệnh như saug ệ – Khai báo các biến cần sử dụng 17
  • 18. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc rẽ nhánh - IF f• Dạng 2: if … else … −Các bước thực hiện: • Bước 2: (tt) – Xử lý nhập dữ liệu từ bàn phím 18
  • 19. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc rẽ nhánh - IF f• Dạng 2: if … else … −Các bước thực hiện: • Bước 2: (tt) – Xử lý tính tiền điện phải trả 19
  • 20. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc rẽ nhánh - IF f• Dạng 2: if … else … −Các bước thực hiện: • Bước 2: (tt) – Xử lý xuất kết quả ra màn hình • Bước 3: chạy trình ứng dụng nhập vào các thông tin cần thiết ể ếvà kiểm tra kết quả. 20
  • 21. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc rẽ nhánh - IF • Dạng 3: if … else if … −Cú pháp if (<Điều kiện 1>) <Tập lệnh 1> else if (<Điều kiện 2>) <Tập lệnh 2> … else <Tập lệnh n> 21 ập ệ
  • 22. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc rẽ nhánh - IF • Dạng 3: if … else if … −Ý nghĩag Nếu <Điều kiện 1> Đúng Thì Thực hiện <Tập lệnh 1> Ngược lại nếu <Điều kiện 2> Đúng Thì Thực hiện <Tập lệnh 2> … Ngược lại tất cả điều kiện trên Thực hiện <Tập lệnh n> 22 Thực hiện <Tập lệnh n>
  • 23. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC • Lưu ý −Có thể phối hợp các dạng if với nhaup ợp ạ g −Cấu trúc IF có thể lồng nhau if (<Điều kiện 1>) IF Dạng 1 { if (<Điều kiện A>) <Tập lệnh A> else if (<Điều kiện B>)else if (<Điều kiện B>) <Tập lệnh B> … else <Tập lệnh n> } 23 }
  • 24. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC • Lưu ý −Có thể phối hợp các dạng If với nhaup ợp ạ g −Cấu trúc IF có thể lồng nhau if (<Điều kiện 1>) { if (<Điều kiện A>) <Tập lệnh A><Tập lệnh A> else if (<Điều kiện B>) <Tập lệnh B> IF Dạng 3 … else <Tập lệnh n> 24 <Tập lệnh n> }
  • 25. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC • Lưu ý −Ví dụ: Kiểm tra điểm nhập hợp lệ trước khi xếp loạiVí dụ: Kiểm tra điểm nhập hợp lệ trước khi xếp loại double dtb = double.Parse(Console.ReadLine()); string xl=""; if (dtb < 0 || dtb > 10) Console.WriteLine("Điểm không hợp lệ !"); else { if (dtb < 5)if (dtb < 5) xl = "Yếu"; else if (dtb < 6.5) l "T bì h" 25 xl = "Trung bình";
  • 26. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC • Lưu ý −Ví dụ: Kiểm tra điểm nhập hợp lệ trước khi xếp loạiVí dụ: Kiểm tra điểm nhập hợp lệ trước khi xếp loại else if (dtb < 8) xl = "Khá"; else xl = "Giỏi"; Console.WriteLine(“Xếp loại: {0}”, xl); } 26
  • 27. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài tập áp dụng IF Bài 1: Kết quả học tập−Bài 1: Kết quả học tập • Nhập vào điểm học kỳ 1 (HK1), học kỳ 2 (HK2) • Tính và xuất ra điểm trung bình (ĐTB) = (HK1 + HK2*2 ) /3Tính và xuất ra điểm trung bình (ĐTB) (HK1 HK2 2 ) /3 • Dựa vào ĐTB xuất ra Kết quả và Xếp loại học lực với: – Kết quả: ếĐược lên lớp: nếu ĐTB >=5 Ở lại lớp : nếu ĐTB <5 – Xếp loại học lực:p Giỏi: nếu ĐTB >=8 Khá: nếu 6.5 < ĐTB <8 Trung bình: nếu 5 < = ĐTB <6 5 27 Trung bình: nếu 5 < = ĐTB <6.5 Yếu: nếu ĐTB <5
  • 28. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài tập áp dụng IF −Bài 2: Tìm số ngày của tháng • Nhập vào Tháng và Năm • Tính và xuất ra số ngày có trong Tháng và Năm được nhập 28
  • 29. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC ẫ• Hướng dẫn −Bài 1: Xếp loại học tập • Có thể sử dụng IF dạng 2 (lồng nhau) hoặc dạng 3 −Bài 2: Tìm số ngày của tháng ể ế ề ề• Dùng toán tử || để kết hợp nhiều điều kiện trong IF • Thuật toán – Nếu tháng =1 hoặc tháng =3 hoặc 5, 7, 8, 10, 12Nếu tháng 1 hoặc tháng 3 hoặc 5, 7, 8, 10, 12 Số ngày =31 – Nếu tháng =4 hoặc tháng =6 hoặc 9, 11 Số ngày =30Số ngày 30 – Nếu tháng =2 Nếu năm nhuần Số ngày =29 29 Số ngày 29 Ngược lại Số ngày =28
  • 30. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC • Hướng dẫn −Bài 2: Tìm số ngày của thángBài 2: Tìm số ngày của tháng • Năm nhuần là năm: – Chia hết cho 400 (nam % 400 == 0) Hoặc – Chia hết cho 4 và không chia hết cho 100 (nam % 4 == 0 && Nam % 100 != 0) • Ví dụ – Năm 2000: năm nhuần vì năm chia hết cho 400 Năm 1900: không nhuần vì năm chia hết cho 4 và chia hết 100– Năm 1900: không nhuần vì năm chia hết cho 4 và chia hết 100 30
  • 31. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài tập −Bài 1: Giải phương trình bậc I: ax + b = 0 • Yêu cầu: – Nhập 2 hệ số a và bNhập 2 hệ số a và b – Tìm nghiệm x của phương trình • Thuật toán – Nếu a = 0: Nếu b = 0: Phương trình có vô số nghiệm Ngược lại (nếu b != 0): Phương trình vô nghiệmg ợ ạ ( ) g g ệ – Ngược lại (nếu a != 0) Nghiệm x = -b/a 31
  • 32. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC −Bài 2: Giải phương trình bậc 2: ax2 + bx +c =0 ầ• Yêu cầu: – Nhập 3 hệ số a, b và c – Tìm nghiệm x của phương trình • Thuật toán – Nếu a=0: Giải phương trình bậc nhất: bx + c=0Giải phương trình bậc nhất: bx + c=0 – Ngược lại (nếu a!=0) Tính Delta = b2 - 4ac Tìm nghiệm theo Delta Delta <0: Phương trình vô nghiệm Delta =0: Phương trình có nghiệm kép x1=x2=-b / 2a 32 g g p Delta >0: Phương trình có 2 nghiệm:
  • 33. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Các cấu trúc điều khiển • Cấu trúc rẽ nhánh ề• Toán tử điều kiện ? • Cấu trúc lựa chọn switch • Cấu trúc lặp while, do, for, foreach 33
  • 34. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Toán tử điều kiện - ? • Toán tử ? hoạt động tương tự như dạng 2 của cú• Toán tử ? hoạt động tương tự như dạng 2 của cú pháp IF • Cú pháp• Cú pháp Biến_kết_quả = <Điều kiện> ? <biểu_thức_1> : <biểu_thức_2> Ý• Ý nghĩa Nếu <Điều kiện> Đúng Thì ề ểTrả về <Biểu_thức_1> Ngược lại Trả về <Biểu thức 2> 34 Trả về <Biểu_thức_2> − <Điều kiện>: là 1 biểu thức logic, trả về true hoặc false
  • 35. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Toán tử điều kiện - ? • Ví dụ: Xét kết quả học tập dựa vào điểm trung bình • Nếu DTB <5 thì Kết quả là Ở lại lớp • Ngược lại là Được lên lớp double dtb = double.Parse(Console.ReadLine()); t i k t (dtb > 5) ? "Đ lê lớ “ "Ở l i lớ “string ket_qua = (dtb >= 5) ? "Được lên lớp“ : "Ở lại lớp“; Console.WriteLine(“Kết quả: {0}”, ket_qua); 35
  • 36. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Các cấu trúc điều khiển • Cấu trúc rẽ nhánh ề• Toán tử điều kiện ? • Cấu trúc lựa chọn switch • Cấu trúc lặp while, do, for, foreach 36
  • 37. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc lựa chọn – switch • Công dụng −Với cấu trúc IF, khi có nhiều trường hợp cần xét, ta sẽ dùng toán tử || để nối các điều kiện phức tạp khi có quádùng toán tử || để nối các điều kiện phức tạp khi có quá nhiều điều kiện −Do đó có thể sử dụng cấu trúc chọn switch để thay thế choDo đó có thể sử dụng cấu trúc chọn switch để thay thế cho cấu trúc IF trong trường hợp này 37
  • 38. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc lựa chọn – switch • Cú pháp• Cú pháp switch (<biểu thức chọn lựa>) { < iá t ị 1>case <giá trị 1>: <Tập lệnh 1> break; < iá t ị 2>case <giá trị 2>: <Tập lệnh 2> break; … default: // các lệnh thực thi khi <biểu thức> không bằng bất kỳ <giá trị> nào của case <Tập lệnh n> 38 <Tập lệnh n> break; }
  • 39. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc lựa chọn – switch Ý• Ý nghĩa − case: Liệt kê các trường hợp cần xét − Giá trị i: chứa các giá trị cần so sánh với <biểu thức> − Tập lệnh x: được thực hiện khi biểu thức chọn lựa = ốmột trong số các giá trị của <Tập giá trị i> 39
  • 40. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC • Ví dụ: nhập vào thứ, cho biết tên thứ trong tuần int thu = Int.Parse(Console.ReadLine()); switch (thu) { case 2:case 2: Console.WriteLine(“Thứ Hai”); break; ... case 8: Console.WriteLine(“Chủ Nhật”); break; default: Console.WriteLine(“Thứ nhập vào không hợp lệ”); 40 break; }
  • 41. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc lựa chọn – switch • Chú ý: − Nếu như các trường hợp cần xét có cùng một tập giá trị thì lần lượt liệt kê các trường hợp, sau đó mới viết tập giá trị 41
  • 42. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC • Ví dụ: Tính số ngày trong tháng int thang = int.Parse(Console.ReadLine());g ( ()) int nam = int.Parse(Console.ReadLine()); switch(thang) {{ case 1: case 3: case 5: case 7: case 8:case 8: case 10: case 12: 42 Console.WriteLine(“Tháng {0} năm {1} có 31 ngày”, thang, nam); break;
  • 43. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC • Ví dụ: Tính số ngày trong tháng case 4: case 6: case 9: 11case 11: Console.WriteLine(“Tháng {0} năm {1} có 30 ngày”, thang, nam); break; case 2: if ((nam % 4 == 0 && nam % 100 != 0) || nam % 400 == 0) Console WriteLine(“Tháng {0} năm {1} có 29 ngày” thang nam);Console.WriteLine( Tháng {0} năm {1} có 29 ngày , thang, nam); else Console.WriteLine(“Tháng {0} năm {1} có 28 ngày”, thang, nam); 43 break;
  • 44. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC • Ví dụ: Tính số ngày trong tháng default: Console.WriteLine(“Tháng nhập vào không hợp lệ”); break; }} 44
  • 45. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC • Ví dụ: So sánh với cách viết dùng IF int thang = int.Parse(Console.ReadLine());int thang int.Parse(Console.ReadLine()); int nam = int.Parse(Console.ReadLine()); if (thang==1 || thang==3 || thang==5 || thang==7 || thang==8 || thang==10 || thang==12)g ) Console.WriteLine(“Tháng {0} có 31 ngày”, thang); else if (thang==4 || thang==6 || thang==9 || thang== 11) Console WriteLine(“Tháng {0} có 30 ngày” thang);Console.WriteLine( Tháng {0} có 30 ngày , thang); else if (thang==2) { if (( % 400 0) || ( % 4 0 && % 100 ! 0))if ((nam % 400==0) || (nam % 4==0 && nam % 100 !=0)) Console.WriteLine(“Tháng {0} có 31 ngày”, thang); else 45 ngay=28; }
  • 46. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC • Ví dụ: So sánh với cách viết dùng IF elseelse Console.WriteLine(“Tháng nhập vào không hợp lệ”); 46
  • 47. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC ố• Ví dụ: Tính số ngày trong tháng 47
  • 48. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài tập áp dụng switch Áp dụng switch cho các bài tập saup ụ g ập −Bài 1: Viết lại bài Tìm số ngày của tháng sử dụng switch −Bài 2: Đọc số bằng chữg • Nhập 1 số nguyên (từ 0 đến 9) • Đọc số bằng chữ 0 Không– 0 Không – 1 Một – … Bài 3 Tì thứ t t ầ−Bài 3: Tìm thứ trong tuần • Nhập vào ngày, tháng, năm • Cho biết ngày đó là thứ mấy 48 C o b ết gày đó à t ứ ấy trong tuần
  • 49. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC • Hướng dẫn −Bài 1: Tìm số ngày của thángBài 1: Tìm số ngày của tháng • Dựa vào bài tập tính số ngày trong tháng đã viết bằng cấu trúc IF để viết lại bằng cấu trúc switch −Bài 2: Đọc số bằng chữ • Đọc số dạng đơn giản (chỉ có 1 chữ số từ 0 9) (S đó ó thể â ấ đ hiề hữ ố)(Sau đó có thể nâng cấp đọc nhiều chữ số) • Kiểm tra số hợp lệ trước khi đọc −Bài 3: Tìm thứ trong tuần−Bài 3: Tìm thứ trong tuần • Dùng phương thức DateTime.Parse để tạo ra 1 ngày từ các thành phần ngày, tháng, năm 49 • Dùng thuộc tính DayOfWeek của biến kiểu DateTime để tìm thứ trong tuần.
  • 50. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Các cấu trúc điều khiển • Cấu trúc rẽ nhánh ề• Toán tử điều kiện ? • Cấu trúc lựa chọn switch • Cấu trúc lặp while, do, for, foreach 50
  • 51. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc lặp – while • Cô d• Công dụng −Dùng để thực hiện lặp đi lặp lại công việc nào đó khi thoả điều kiệnđiều kiện −Bản chất của câu lệnh lặp while là trước tiên sẽ kiểm tra biểu thức điều kiện lặp, nếu kết quả kiểm tra là :ệ ặp, q • True : sẽ thực hiện một câu lệnh hay khối lệnh thuộc câu lệnh while. • False sẽ chấm dứt câ lệnh hile à ch ển đến câ lệnh• False : sẽ chấm dứt câu lệnh while và chuyển đến câu lệnh tuần tự kế tiếp. 51
  • 52. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc lặp – while • Cú há• Cú pháp while (<Điều kiện lặp>) { <Tập lệnh> [continue;] [break;] } 52
  • 53. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc lặp – while • Ý hĩ• Ý nghĩa − Điều kiện lặp: là biểu thức logic, trả về true/false − Tập lệnh: chỉ có thể được thực hiện và lặp nếu và chỉ nếu <Điều kiện lặp> = true break: thoát khỏi vòng lặp− break: thoát khỏi vòng lặp − continue: quay trở lên kiểm tra điều kiện của vòng lặp khi cầncần 53
  • 54. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc lặp – while • Sơ đồ hoạt động:• Sơ đồ hoạt động: <Điều kiện lặp> False Thoát khỏi vòng lặp <Khối lệnh lặp> True vòng lặp <Khối lệnh lặp> 54
  • 55. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc lặp – while ổ ố ế• Ví dụ 1: Tính tổng các số nguyên từ 1 đến 100 int i=1, tong=0; hil (i < 100)while (i <= 100) { tong += i; // tong =tong + itong i; // tong tong i //Tăng i tác động đến điều kiện lặp i ++; } Console.WriteLine(“Tổng các số nguyên từ 1=> 100: {0}”, tong); 55
  • 56. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc lặp – while ổ ố ế• Ví dụ 2: Tính tổng các số nguyên lẻ từ 1 đến 100 int i=1, tong=0; while (i <=100) { t i // t t itong += i; // tong =tong + i; // Tăng i lên 2 để có được những số lẻ i += 2;i 2; } 56
  • 57. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc lặp – while • Ví d 3 Tì ố ê lớ hất t kh ả từ• Ví dụ 3: Tìm số nguyên lớn nhất trong khoảng từ 1 đến 100 chia hết cho n (0<n<=100) i t i 100int i=100, max; while (i >= 1) { if (i % n == 0){ if (i % n 0) { max = i; break; //thoát khỏi vòng lặp } 57 i -= 1; }
  • 58. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc lặp – while • Cá ê tắ bả ầ l ý khi là iệ ới• Các nguyên tắc cơ bản cần lưu ý khi làm việc với cấu trúc while: Khởi tạo giá trị ban đầu cho biến tham gia biểu thức điều−Khởi tạo giá trị ban đầu cho biến tham gia biểu thức điều kiện của cấu trúc lặp while trước khi cấu trúc lặp while được thực hiện. −Nếu có nhiều hơn một câu lệnh bên trong vòng lặp while phải đặt các lệnh đó trong dấu khối lệnh { } Bê t ò lặ hải ó ít hất ột â lệ h tá độ−Bên trong vòng lặp phải có ít nhất một câu lệnh tác động lên biến tham gia điều kiện lặp. Tác động này phải có khuynh hướng sau hữu hạn số lần lặp biểu thức điều kiện lặ ẽ th đổi iá t ị (để t á h ò lặ ô h ) 58 lặp sẽ thay đổi giá trị (để tránh vòng lặp vô hạn)
  • 59. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc lặp – while • Cá ê tắ bả ầ l ý khi là iệ ới• Các nguyên tắc cơ bản cần lưu ý khi làm việc với cấu trúc while: Câu lệnh while “xét trước làm sau” do vậy các câu lệnh−Câu lệnh while xét trước làm sau do vậy các câu lệnh bên trong nó có thể sẽ không thực hiện lần nào cả nếu ngay lần đầu tiên kết quả của kiểm tra biểu thức điều kiện là sailà sai. −Câu lệnh while đặc biệt hữu dụng cho các dạng bài toán mà số lần lặp của các câu lệnh bên trong vòng lặp làmà số lần lặp của các câu lệnh bên trong vòng lặp là không thể xác định. −Câu lệnh while có thể được sử dụng lồng trong một câu lệ h hil khá 59 lệnh while khác.
  • 60. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài tập áp dụng while Áp dụng vòng lặp while cho các bài tập sauÁp dụng vòng lặp while cho các bài tập sau −Bài 1: Tìm ước số chung lớn nhất • Nhập vào số thứ nhất (so 1) và số thứ hai (so 2)Nhập vào số thứ nhất (so_1) và số thứ hai (so_2) • Tìm ước số chung lớn nhất của so_1 và so_2 sau đó xuất kết quả ra màn hình ố−Bài 2: Tìm số nghịch đảo • Nhập vào một số bất kỳ (n) • Tì à ất ố đả ủ ( í d ố 123 ó ố hị h• Tìm và xuất ra số đảo ngược của n (ví dụ: số 123 có số nghịch đảo là 321) 60
  • 61. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc lặp – do • Cô d• Công dụng −Câu lệnh do thực thi một hoặc nhiều câu lệnh đặt trong khối lệnh {} và chúng sẽ được lặp lại cho đến khi giá trịkhối lệnh {}, và chúng sẽ được lặp lại cho đến khi giá trị xác định trong biểu thức điều kiện lặp là false. −Bản chất của cấu trúc lặp do là trước tiên sẽ thực hiện mộtặp ự ệ ộ câu lệnh hay khối lệnh trước, sau đó sẽ kiểm tra biểu thức điều kiện lặp, nếu kết quả kiểm tra là : • True : sẽ thực hiện lặp lại một câu lệnh hay khối lệnh thuộc• True : sẽ thực hiện lặp lại một câu lệnh hay khối lệnh thuộc câu lệnh do. • False : sẽ chấm dứt câu lệnh do và chuyển đến câu lệnh tuần tự kế tiếp 61 tự kế tiếp .
  • 62. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc lặp – do • Cú há• Cú pháp do { <Tập lệnh> [continue;] [break;] } while (<Điều kiện lặp>) 62
  • 63. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc lặp – do • Ý hĩ• Ý nghĩa − Điều kiện lặp: là biểu thức logic, trả về true/false − Tập lệnh: có thể chỉ được thực hiện một lần nếu <Điều kiện lặp> = false hoặc được lặp lại nhiều lần nếu <Điều kiện lặp> = trueệ ặp − break: thoát khỏi vòng lặp − continue: quay trở lên kiểm tra điều kiện của vòng lặp khicontinue: quay trở lên kiểm tra điều kiện của vòng lặp khi cần. 63
  • 64. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc lặp – do • Sơ đồ hoạt động:• Sơ đồ hoạt động: <Khối lệnh lặp> <Điều kiện lặp> False TrueThoát khỏi 64 vòng lặp
  • 65. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc lặp – do ổ ố ế• Ví dụ 1: Tính tổng các số nguyên từ 1 đến 100 int i = 0, tong = 0; ddo { tong += i; // tong =tong + itong i; // tong tong i i ++; //Tăng i tác động đến điều kiện lặp } while (i <= 100) Console.WriteLine(“Tổng các số nguyên từ 1=> 100: {0}”, tong); 65
  • 66. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc lặp – do ổ ố ế• Ví dụ 1: Tính tổng các số nguyên từ 1 đến 100 int i = 0, tong = 0; ddo { i ++;i ; tong += i; } while (i <= 100) Console.WriteLine(“Tổng các số nguyên từ 1=> 100: {0}”, tong); 66 − Bạn có nhận xét gì khi đưa dòng lệnh i++ lên trước tong +=i ?
  • 67. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc lặp – for • Công dụng −Dùng để thực hiện lặp đi lặp lại một xử lý khi thoả điều kiệ lặkiện lặp −Vòng lặp for thích hợp cho việc duyệt các mảng và cho việc xử lý tuần tựviệc xử lý tuần tự. −Bản chất của vòng lặp for là số lần lặp xác định trước khi bắt đầu thực hiện. 67
  • 68. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc lặp – for • Cú pháp for (<biến đếm> = <gt đầu>; <điều kiện lặp>; <tăng/giảm biến đếm>)đếm>) { <Khối lệnh lặp> [continue;] [break;] } 68
  • 69. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc lặp – for Ý• Ý nghĩa −Khối lệnh lặp: chỉ được thực hiện nếu <biến đếm> còn thỏ điề kiệ lặthỏa điều kiện lặp −break: thoát khỏi vòng lặp khi cần −continue: bỏ qua các lệnh còn lại (nếu có) và tiếp tục lặp 69
  • 70. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc lặp – for • Sơ đồ hoạt động:• Sơ đồ hoạt động: <Gán giá trị ban đầu<Gán giá trị ban đầu cho biến chạy> <Điều kiện lặp> False Thoát khỏi True Thoát khỏi vòng lặp <Tăng/Giảm giá trị 70 <Khối lệnh lặp> <Tăng/Giảm giá trị biến đếm>
  • 71. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc lặp – for • Ví dụ 1: Tính tổng các số nguyên từ 1 đến 100• Ví dụ 1: Tính tổng các số nguyên từ 1 đến 100 int tong =0; int i;int i; for(i = 1; i<=100; i++) {{ tong += i; tong =tong + i } Console.WriteLine(“Tổng các số nguyên 1=>100: {0}”, tong); 71
  • 72. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc lặp – for • Ví dụ 2: Tính tổng các số nguyên lẻ từ 1 đến 100 int i, tong; tong =0; for(i=1; i<=100; i=i+2) for(i=1; i<=100; i++) {{ tong += i; { if(i%2 != 0) tong += i; } Hoặc } Console.WriteLine(“Tổng các số nguyên lẻ từ 1=>100: {0}”, tong); } 72
  • 73. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc lặp – for • Ví dụ 3: Tìm số nguyên lớn nhất trong khoảng từ• Ví dụ 3: Tìm số nguyên lớn nhất trong khoảng từ 1 đến 100 chia hết cho n (0<n<=100) int i, max;int i, max; int n = int.Parse(Console.ReadLine()); for(i = 100; i>=1; i--) { if( i%n == 0) { max = i; //break; //thoát khỏi vòng lặp } } 73 } Console.WriteLine(“Số lớn nhất chia hết cho {0} là {1}”, n, max);
  • 74. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc lặp – for • Ví dụ 4: Tính tổng các số nguyên chẵn từ 1 đến• Ví dụ 4: Tính tổng các số nguyên chẵn từ 1 đến 100 int tong=0; for(int i = 1; i<=100;i++) { if(i%2 != 0) continue; tong+=i; } 74 }
  • 75. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc lặp – for • Ví dụ 4: Cho số nguyên n. Liệt kê các ước số của nó int i; int n = int.Parse(Console.ReadLine()); string kq = "";string kq = ""; for (i = 1; i < n; i++) { if (n % i == 0) kq = kq + " " + i; } C l W it Li (k ) 75 Console.WriteLine(kq);
  • 76. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc lặp – foreach • Cú há• Cú pháp foreach (<kiểu dữ liệu> <phần tử> in <tập hợp>) {{ <Tập lệnh> }} • Ý nghĩa • Duyệt qua từng phần tử trong tập hợp để thực hiện xử lýDuyệt qua từng phần tử trong tập hợp để thực hiện xử lý tương ứng 76
  • 77. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cấu trúc lặp – foreach • Ví dụ: Duyệt mảng• Ví dụ: Duyệt mảng 77
  • 78. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài tập Áp dụng vòng lặp for cho các bài tập sauÁp dụng vòng lặp for cho các bài tập sau −Bài 1:Tạo bảng cửu chương • Nhập vào số cho biết cửu chương mấyNhập vào số cho biết cửu chương mấy • Xuất bảng cửu chương tương ứng 78
  • 79. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài tập Áp dụng vòng lặp for cho các bài tập sauÁp dụng vòng lặp for cho các bài tập sau −Bài 2: Số nguyên tố • Nhập vào một số nguyên NNhập vào một số nguyên N • Kiểm tra xem số N có phải là số nguyên tố hay không 79
  • 80. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài 3: Các cấu trúc điều khiển cơ bản trong C#bản trong C# • Tổng quan về cấu trúc điều khiển • Các cấu trúc điều khiển • Xử lý bẫy lỗi trong chương trìnhý y g g • Mảng (Array) 80
  • 81. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Xử lý bẫy lỗi trong chương trình • Phân loại lỗi ỗ• Xử lý lỗi 81
  • 82. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Phân loại lỗi • Lỗi cú pháp (syntax error) − Xuất hiện khi ta viết code.ệ − Được thông báo ngay khi viết sai cú pháp. − Nguyên nhân: viết sai hoặc thiếu cú phápNguyên nhân: viết sai hoặc thiếu cú pháp. • Lỗi thực thi (runtime error) Xả khi t th thi h t ì h− Xảy ra khi ta thực thi chương trình. − Khó xác định hơn lỗi cú pháp. N ê hâ Mở ột tậ ti đ tồ t i hi h 0 82 − Nguyên nhân: Mở một tập tin đang tồn tại, chia cho 0, truy xuất bảng không tồn tại trong CSDL, …
  • 83. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Phân loại lỗi • Lỗi luận lý − Xảy ra khi ta thực thi chương trìnhXảy ra khi ta thực thi chương trình − Được thể hiện dưới những hình thức hoặc những kết quả không mong đợi.q g g − Nguyên nhân: sai lầm trong thuật giải. 83
  • 84. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Xử lý lỗi • Dò và sửa lỗi thủ công − Khi có lỗi phát sinh thì VS sẽ tự động thông báo lỗi và tựKhi có lỗi phát sinh thì VS sẽ tự động thông báo lỗi và tự động nhảy đến dòng lệnh gây ra lỗi − Cách sửa lỗi: • Xem thông báo lỗi và dòng xảy ra lỗi • Kiểm tra lại cú pháp của dòng lệnh gây ra lỗi 84
  • 85. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Xử lý lỗi • Lệnh throw −Câu lệnh throw thường được dùng để báo hiệu sự cố xảy ủ ột tì h t bất th ờ ( i lệ ti )ra của một tình trạng bất thường (sự ngoại lệ - exception) trong khi chương trình thực thi. −Cú pháp:Cú pháp: throw new <loại Exception>( [“Câu thông báo lỗi”]); 85
  • 86. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Phân loại lỗi • Lệnh throw −Ví dụ: 86
  • 87. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Xử lý lỗi • Dùng try…catch để bẫy và xử lý lỗi − Try … catch: cho phép thử thực hiện một khối lệnh xem ỗ ế ẫ ỗcó bị lỗi hay không, nếu có sẽ bẫy và xử lý lỗi. − Cấu trúc try … catch có ba khối: ố ỗ• Khối try: chứa các câu lệnh có khả năng gây ra lỗi • Khối catch: chứa các câu lệnh để bẫy và xử lý lỗi phát sinh trên khối try. • Khối finally: chứa các câu lệnh sẽ được thực hiện cuối cùng (cho dù có lỗi xảy ra hay không) Một lỗi ả ra khi th c thi ch ơng trình gọi là một 87 − Một lỗi xảy ra khi thực thi chương trình gọi là một Exception.
  • 88. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Xử lý lỗi • Dùng try…catch để bẫy và xử lý lỗi − Nếu không có vấn đề nào xảy ra công cụ vận hành sẽ bỏNếu không có vấn đề nào xảy ra, công cụ vận hành sẽ bỏ qua khối catch. − Một số nguồn tài nguyên cần phải được thu dọn, ví dụg g y p như việc đóng một tập tin, phải luôn được thực thi ngay cả khi một exception đã được throw. Để hoàn tất điều này có thể sử dụng khối lệnh finally.y g y − Một khối lệnh finally luôn được thực thi, không quan tâm đến việc liệu một exception có đã được throw hay không. 88
  • 89. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Xử lý lỗi • Dùng try…catch để bẫy và xử lý lỗi − Ví dụ:Ví dụ: 89
  • 90. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Xử lý lỗi • Dùng try…catch để bẫy và xử lý lỗi − Lưu ý: • Một khối try có thể dùng một hay nhiều khối catch • Mỗi khối catch hiển thị một loại lỗi khác nhau. Lúc đó công cụ vận hành sẽ chỉ thực thi khối catch với kiểu exception phù ầ ụ ậ ự p p hợp đầu tiên • Trường hợp có nhiều khối catch thì khối catch với các exception cụ thể phải được liệt kê trước các exception tổng quátquát. • Các khai báo biến trong khối lệnh try sẽ không có hiệu lực đối với các lệnh sử dụng nó nằm ở bên ngoài. Do vậy, nếu bên trong khối lệnh finally có sử dụng các biến liên quan đến 90 bên trong khối lệnh finally có sử dụng các biến liên quan đến các biến được khai báo và sử dụng trong khối lệnh try phải đưa các khai báo biến này ra ngoài khối lệnh try.
  • 91. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Xử lý lỗi • Dùng try…catch để bẫy và xử lý lỗi − Ví dụ:Ví dụ: 91
  • 92. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài 3: Các cấu trúc điều khiển cơ bản trong C#bản trong C# • Tổng quan về cấu trúc điều khiển • Các cấu trúc điều khiển • Xử lý bẫy lỗi trong chương trìnhý y g g • Mảng (Array) 92
  • 93. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Mảng • Khái niệm • Khai báo và khởi tạo mảng • Các thao tác trên mảng 93
  • 94. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Mảng • Giới thiệu −Mảng là tập hợp các biến có cùng kiểu dữ liệu, cùng tên h ó hỉ ố khá hnhưng có chỉ số khác nhau. −Trong C#, mảng có chỉ số bắt đầu là 0 và luôn luôn là mảng động (mảng có khả năng thay đổi kích thước)mảng động (mảng có khả năng thay đổi kích thước). −Ví dụ: Mảng nguyên 5 phần tử 0 1 2 3 4 10 20 15 6 8 Chỉ sốChỉ số Giá t ịGiá t ị 94 10 20 15 6 8 Giá trịGiá trị
  • 95. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Mảng • Khái niệm • Khai báo và khởi tạo mảng • Các thao tác trên mảng 95
  • 96. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Khai báo và khởi tạo mảng Kh i bá khô khởi kí h h ớ à iá ị• Khai báo không khởi tạo kích thước và giá trị <Kiểu dữ liệu>[ ] Tên_mảng; Ví dụ: int[ ] a;Ví dụ: int[ ] a; • Khai báo có khởi tạo kích thước nhưng không khởi tạo• Khai báo có khởi tạo kích thước nhưng không khởi tạo giá trị ban đầu: <Kiểu dữ liệu>[ ] Tên_mảng = new <Kiểu dữ liệu>[<số phần tử>]; Ví dụ: Khai báo mảng nguyên 10 phần tử int[ ] a = new int[10]; 96
  • 97. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Khai báo và khởi tạo mảng • Kh i bá ó khởi t kí h th ớ à khởi t iá t ị b• Khai báo có khởi tạo kích thước và khởi tạo giá trị ban đầu: <Kiểu dữ liệu>[ ] Tên mảng = new <Kiểu dữ liệu>[<Số phần tử>]ệ [ ] _ g ệ [ p ] {giá trị 1, giá trị 2, giá trị 3, ...}; hoặc: <Kiể dữ liệ >[ ] Tê ả { iá t ị 1 iá t ị 2 iá t ị 3 }<Kiểu dữ liệu>[ ] Tên_mảng = {giá trị 1, giá trị 2, giá trị 3, ...}; Ví dụ: Khai báo và khởi tạo mảng nguyên có 5 phần tử int[ ] a = new int[5]{2,10,4,8,5};int[ ] a new int[5]{2,10,4,8,5}; int[ ] a = {2, 10, 4, 8, 5}; 97
  • 98. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Mảng • Khái niệm • Khai báo và khởi tạo mảng • Các thao tác trên mảng 98
  • 99. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Các thao tác trên mảng • Truy xuất giá trị của một phần tử trong mảng ế• Tìm kiếm trên mảng • Sắp xếp mảng • Thêm, bớt phần tử trong mảng 99
  • 100. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Các thao tác trên mảng • Truy xuất 1 phần tử của mảng Tên_mảng[<vị trí i>] • Vị trí i: trong khoảng từ 0 Số phần tử -1 100
  • 101. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Các thao tác trên mảng ấ ề• Lấy chiều dài của mảng −Sử dụng thuộc tính Length của mảng −Ví dụ: int[ ] a = {2, 10, 4, 8, 5}; Console.WriteLine(a.Length.ToString()); // kết quả là 5 101
  • 102. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Các thao tác trên mảng • Duyệt mảng −Duyệt qua và xử lý trên từng phần tử của mảngyệ q ý g p g for (int i = 0; i<Tên_mảng.Length; i++) {{ // Xử lý trên phần tử Tên_mảng[i] }} 102
  • 103. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Các thao tác trên mảng • Duyệt mảng −Ví dụ: Duyệt và xuất mảngụ yệ g int[] d = {1, 2, 3, 4, 5}; string chuoi_mang = ""; for (int i = 0; i < d.Length; i++) { S ()chuoi_mang += d[i].ToString() + " "; } Console WriteLine(chuoi mang); 103 Console.WriteLine(chuoi_mang);
  • 104. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Các thao tác trên mảng • Duyệt mảng − Ví dụ: Duyệt và nhập giá trị cho từng phần tử của mảng mang_nguyen int[ ] mang_nguyen; mang nguyen = new int[sopt];mang_nguyen new int[sopt]; for (int i = 0; i < mang_nguyen.Length; i++) { Console Write(“Nhập giá trị cho phần tử thứ {0}” i + 1);Console.Write(“Nhập giá trị cho phần tử thứ {0}”, i + 1); string n = Console.ReadLine(); if(n != "") mang_nguyen[i] = int.Parse(n); } 104
  • 105. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Các thao tác trên mảng • Duyệt mảng• Duyệt mảng −Ví dụ: Duyệt và xuất giá trị từng phần tử của mảng mang nguyenmang_nguyen string chuoi_mang = ""; for (int i = 0; i < mang_nguyen.Length; i++) { chuoi_mang += mang_nguyen[i] + " "; } return chuoi_mang; 105
  • 106. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Các thao tác trên mảng • Truy xuất giá trị của một phần tử trong mảng ế• Tìm kiếm trên mảng • Sắp xếp mảng • Thêm, bớt phần tử trong mảng 106
  • 107. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Tìm kiếm trên mảng • Tìm phần tử lớn nhất / nhỏ nhất• Tìm phần tử lớn nhất / nhỏ nhất int i, max; [0] // hầ tử đầ tiêmax = mang_nguyen[0]; // phần tử đầu tiên for (i = 0; i < mang_nguyen.Length; i++) { // nếu gặp phần tử lớn hơn if (max < mang_nguyen[i]) max = mang_nguyen[i]; 107 }
  • 108. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Tìm kiếm trên mảng • Tìm phần tử lớn nhất / nhỏ nhấtTìm phần tử lớn nhất / nhỏ nhất int i, min; min = mang nguyen[0]; // phần tử đầu tiênmin mang_nguyen[0]; // phần tử đầu tiên for (i = 0; i < mang_nguyen.Length; i++) { // nếu gặp phần tử nhỏ hơn if (min > mang_nguyen[i]) i [i]min = mang_nguyen[i]; } 108
  • 109. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Tìm kiếm trên mảng • Tìm phần tử có giá trị được cung cấpTìm phần tử có giá trị được cung cấp int so_tim = int.Parse(Console.ReadLine()); // Khai báo và tạo giá trị mặc định: giả sử không tìm thấyạ g ị ặ ị g g y string kq = "Không tìm thấy " + so_tim + " trong mảng"; for (int i = 0; i < mang_nguyen.Length; i++) {{ if(mang_nguyen[i]==so_tim) // nếu tìm thấy { kq = "Tìm thấy " + so_tim + " trong mảng, tại ví trí " + (i+1); break; } 109 } } Console.WriteLine("Kết quả tìm kiếm: {0}“, kq);
  • 110. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Các thao tác trên mảng • Truy xuất giá trị của một phần tử trong mảng ế• Tìm kiếm trên mảng • Sắp xếp mảng • Thêm, bớt phần tử trong mảng 110
  • 111. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Sắp xếp trên mảng • Sắp xếp các phần tử tăng dầnSắp xếp các phần tử tăng dần for (int i = 0; i < mang_nguyen.Length - 1; i++) { for (int j = i + 1; j < mang_nguyen.Length; j++) { if (mang_nguyen[i] > mang_nguyen[j]) { // nếu gặp phần tử nhỏ hơn thì đổi chỗ int tam = mang_nguyen[i]; mang_nguyen[i] = mang_nguyen[j]; mang_nguyen[j] = tam; } //if } // for j 111 } j } // for i
  • 112. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Sắp xếp trên mảng • Sắp xếp các phần tử tăng dầnSắp xếp các phần tử tăng dần 1 83 2155 1334 2895 1 82155 133 289534 3 82155 131 289534 3 82155 131 289345 3 82155 131 289345 ……………………………… 112 13 342 213 551 8985
  • 113. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Các phương thức của mảng • Sắ ế• Sắp xếp −Sắp tăng dần Array.Sort(<Mảng>); • Array: lớp được xây dựng sẵn • Ví d• Ví dụ // Sắp xếp mang_nguyen tăng dần Array.Sort(mang_nguyen); 113
  • 114. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Các phương thức của mảng • Sắ ế• Sắp xếp −Đảo ngược mảng Array.Reverse(<Mảng>); • Ví dụ // Đảo ngược mang_nguyen Array.Reverse(mang_nguyen); 114
  • 115. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Các phương thức của mảng • Tì kiế• Tìm kiếm −Tìm 1 giá trị trong mảng, sẽ trả về vị trí của phần tử nếu tìm thấy nếu không sẽ trả về 1tìm thấy, nếu không sẽ trả về -1 Array.IndexOf(<Mảng>, <giá trị tìm>) Ví dVí dụ int gia_tri = 5; // Tìm vị trí của phần tử có giá trị là 5 int vi tri = Array.IndexOf(mang nguyen, gia tri);_ y ( g_ g y , g _ ); if (vi_tri < 0) Console.WriteLine("Không tìm thấy!", "Thông báo"); else Console WriteLine("Đã tìm thấy {0} tại vị trí {1}“ gia tri vi tri); 115 Console.WriteLine("Đã tìm thấy {0} tại vị trí {1} , gia_tri, vi_tri);
  • 116. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Các thao tác trên mảng • Truy xuất giá trị của một phần tử trong mảng ế• Tìm kiếm trên mảng • Sắp xếp mảng • Thêm, bớt phần tử trong mảng 116
  • 117. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Thêm, bớt phần tử trong mảng • Thêm một phần tử vào cuối mảngThêm một phần tử vào cuối mảng −Sử dụng phương thức Resize của lớp Array để tăng thêm kích thước của mảng một phần tửg ộ p −Gán giá trị cho phần tử cuối cùng là giá trị cần thêm −Cú pháp:Cú pháp: Array.Resize <Kiểu dữ liệu>(<Mảng tham chiếu>, <Số phần tử mới>) −Ví dụ: thêm 1 phần tử có giá trị là 9 vào cuối mảng sau: int[ ] a = {4, 2, 5}; //ban đầu mảng a có 3 phần tử Array.Resize <int> (ref a, 4); //tăng kích thước của mảng a 117 a[3] = 9;
  • 118. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Thêm, bớt phần tử trong mảng • Thêm một phần tử vào vị trí bất kỳ trong mảng −Xác định vị trí k cần chèn thêm 1 phần tử −Sử dụng phương thức Resize của lớp Array để tăng thêm kích thước của mảng một phần tử ể ầ ố ế−Dịch chuyển giá trị của các phần tử tại vị trí có chỉ số k đến phần tử kế cuối có chỉ số n-1 sang phải 1 phần tử −Gán giá trị cho phần tử thứ k là giá trị cần thêmGán giá trị cho phần tử thứ k là giá trị cần thêm 118
  • 119. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Thêm, bớt phần tử trong mảng • Thêm một phần tử vào vị trí bất kỳ trong mảng −Ví dụ: thêm 1 phần tử có giá trị là 9 vào vị trí thứ 2 trong ả A ó 3 hầ tử đ kh i bá hmảng A có 3 phần tử được khai báo như sau: int[ ] A = {4, 2, 5}; 4 2 5Mảng A trước khi thêm: 4 9 2Mảng A sau khi thêm: 5 119
  • 120. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Thêm, bớt phần tử trong mảng • Thêm một phần tử vào vị trí bất kỳ trong mảng −Các bước thực hiện: • Bước 1: tăng kích thước của mảng A lên một phần tử Array.Resize <int>(ref A, 4); 4 2 5Mảng A sau khi Resize: 0 120
  • 121. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Thêm, bớt phần tử trong mảng • Thêm một phần tử vào vị trí bất kỳ trong mảng −Các bước thực hiện: • Bước 2: Dịch chuyển giá trị của các phần tử tại vị trí có chỉ số k (k=1) đến phần tử kế cuối có chỉ số n-1 (n=3) sang phải 1 phần tử for(int i = A.Length - 1; i > 1; i--) { A[i] = A[i – 1];[ ] [ ]; }; 121 4 2 2Mảng A sau khi dịch chuyển: 5
  • 122. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Thêm, bớt phần tử trong mảng • Thêm một phần tử vào vị trí bất kỳ trong mảng −Các bước thực hiện: • Bước 3: Gán giá trị cho phần tử thứ k (k=1) là giá trị cần thêm A[1] = 9; 4 9 2Mảng A sau gán giá trị: 5g g g ị 122 Phần tử mới thêm vào
  • 123. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Thêm, bớt phần tử trong mảng • Xóa một phần tử ở cuối mảng −Sử dụng phương thức Resize của lớp Array để giảm kíchụ g p g p y g thước của mảng xuống một phần tử −Cú pháp: Array.Resize <Kiểu dữ liệu>(<Mảng tham chiếu>, <Số phần tử mới>) −Ví dụ: xóa 1 phần tử cuối cùng có giá trị là 5 trong mảng sau:sau: int[ ] a = {4, 9, 2, 5}; //ban đầu mảng a có 4 phần tử Array.Resize <int> (ref a, 3); //giảm kích thước của mảng a 123 y ( , ); g g
  • 124. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Thêm, bớt phần tử trong mảng • Xóa một phần tử tại vị trí bất kỳ trong mảng −Xác định vị trí k của phần tử cần xóa −Dịch chuyển giá trị của các phần tử tại vị trí có chỉ số k+1 đến phần tử cuối cùng có chỉ số n sang trái 1 phần tử ể−Sử dụng phương thức Resize của lớp Array để giảm kích thước của mảng một phần tử 124
  • 125. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Thêm, bớt phần tử trong mảng • Xóa một phần tử vào vị trí bất kỳ trong mảng −Ví dụ: xóa phần tử có giá trị là 9 tại vị trí thứ 2 trong mảng A ó 4 hầ tử đ kh i bá hA có 4 phần tử được khai báo như sau: int[ ] A = {4, 9, 2, 5}; 4 9 2Mảng A trước khi xóa: 5 4 2Mảng A sau khi xóa: 5 125
  • 126. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Thêm, bớt phần tử trong mảng • Xóa một phần tử tại vị trí bất kỳ trong mảng −Các bước thực hiện: • Bước 1: Dịch chuyển giá trị của các phần tử tại vị trí có chỉ số k+1 (k=1) đến phần tử cuối cùng có chỉ số n (n=3) sang trái 1 phần tử for(int i = 2; i < A.Length; i++) { A[i - 1] = A[i];[ ] [ ]; }; 126 4 2 5Mảng A sau khi dịch chuyển: 5
  • 127. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Thêm, bớt phần tử trong mảng • Xóa một phần tử tại vị trí bất kỳ trong mảng −Các bước thực hiện: • Bước 2: giảm kích thước của mảng A xuống một phần tử Array.Resize <int>(ref A, 3); 4 2 5Mảng A sau khi Resize: 127
  • 128. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 128