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#
•
•
•
•

Tổng q...
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...
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...
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...
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
− Cú pháp

if (<Điều kiệ ...
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

− Sơ đồ hoạt động:
False...
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

− Ví dụ: Kiểm tra điểm t...
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 …

− Đặt vấn đề: T...
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 …
− Cú pháp

if (<...
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 <...
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 …
− Sơ đồ hoạt độn...
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 …
f

− Ví dụ 1: Xé...
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 …
f

− Ví dụ 2: Xé...
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 …
f

− Ví dụ 3: Lậ...
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 …
f
− Quy ước tính...
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 …
f
− Các bước thự...
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 …
f
− Các bước thự...
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 …
f
− Các bước thự...
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 …
f
− Các bước thự...
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...
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ĩa
g

...
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 nhau
p
ợp
ạ g
− Cấu...
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 nhau
p
ợp
ạ g
− Cấu...
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ại...
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ại...
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

• Nhập vào điểm h...
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 ...
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 ...
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áng
• Năm nhuần là năm...
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...
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:
ầ
...
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...
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...
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...
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...
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, kh...
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
switch (<biểu thức chọ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ựa chọn – switch

• Ý nghĩa

− case: Liệt kê các trư...
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 = 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ựa chọn – switch

• Chú ý:
− Nếu như các trường hợp ...
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(Consol...
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:
case...
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(“...
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(C...
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
else
Console.WriteLine(...
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 sau
p ụ ...
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áng

• Dựa vào bài tập...
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...
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ụng
Công d

− Dùng để thực hiện lặ...
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ú pháp
há
while (<Điều kiện 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 – while

• Ý nghĩa
hĩ

− Điều kiện lặp: là biểu t...
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:
False
Thoát khỏi
vòng...
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 ...
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ừ...
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ì số nguyên lớ nhất trong kho...
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á nguyên tắ cơ bản cần lưu ý khi là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 – while

• Cá nguyên tắ cơ bản cần lưu ý khi làm ...
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 s...
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ụng
Công d

− Câu lệnh do thực thi 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 – do

• Cú pháp
há
do
{
<Tập lệnh>
[continue;]
[b...
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

• Ý nghĩa
hĩ

− Điều kiện lặp: là biểu thức...
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:
<Khối lệnh lặp>

False
T...
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...
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...
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ặ...
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ề...
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 ...
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:
<Gán giá trị ban đầu
ch...
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 đế...
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...
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 kh...
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ừ...
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 ướ...
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ú pháp
há
foreach (<kiểu dữ liệu> <...
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

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

− Bài 1:Tạo ...
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

− Bài 2: Số ...
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#
•
•
•
•

Tổng q...
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...
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 h...
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 c...
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 sin...
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 để ...
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 … c...
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 k...
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ụ:

8...
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 ý:

•...
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ụ:

9...
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#
•
•
•
•

Tổng q...
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ƯỜ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ữ...
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ƯỜ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
•

Khai báo không
Kh i bá khô khởi t...
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
•

Khai báo ó
Kh i bá có khởi tạo kí...
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ƯỜ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ầ...
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ản...
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ụn...
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 q và xử lý trên ...
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...
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 g...
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 g...
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ầ...
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
int i, m...
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
int i, m...
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ấp
int...
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ầ...
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ần

for (int 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ần
34

55

5

8...
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ắ xếp
Sắp ế

− Sắp tăng dần
Array...
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ắ xếp
Sắp ế

− Đảo ngược mảng
Arr...
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ếm
Tìm kiế

− Tìm 1 giá trị t...
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ầ...
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ảng...
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ấ...
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ấ...
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ấ...
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ấ...
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ấ...
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
− ...
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...
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...
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...
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...
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

128
Upcoming SlideShare
Loading in...5
×

Bai3cautrucdieukhien 130622085309-phpapp02

477

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
477
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
48
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Bai3cautrucdieukhien 130622085309-phpapp02

  1. 1. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 1
  2. 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# • • • • 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. 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ề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ể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ộ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 cặp dấu ngoặc nhọn { và } 3
  4. 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. 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. 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 − Cú pháp if (<Điều kiệ >) (<Điề kiện>) { Khối A> <Khối lệnh A } − Ý nghĩa g Nếu <Điều kiện> Đúng Thì Thực hiện <Khối lệnh A> • <Điều kiện>: là 1 biểu thức logic, trả về true (Đúng) hoặc false (Sai) 6
  7. 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 − Sơ đồ hoạt động: False <Biểu thức điều kiện> True <Khối lệnh A> 7
  8. 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 − 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 8
  9. 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 … − Đặ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ọ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 đ Trường hợp 1: được lê lớ (điểm t lên lớp (điể trung bì h >= 5.0) 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 nhau, bài toán này chúng ta dùng cấu trúc if … else … 9
  10. 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 … − Cú pháp if (<Điều kiệ ) ( Điề kiện>) { <Khối lệnh A> } else // khi điều kiện của if là false { <Khối lệnh B> } 10
  11. 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> Ngược l i <Điều kiệ S i N lại, Điề 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. 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 … − Sơ đồ hoạt động: False <Biểu thức điều kiện> True <Khối lệnh B> <Khối lệnh A> 12
  13. 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 • Dạng 2: if … else … f − 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 Console.Write("Ở lại lớp“); 13
  14. 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 • Dạng 2: if … else … f − 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. 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 • Dạng 2: if … else … f − 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ối. hàng, kế, đầu 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. 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 • Dạng 2: if … else … f − 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 300 < số Kw tiêu thụ => đơn giá là 1000 đồng/1kw 16
  17. 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 • Dạng 2: if … else … f − 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ư sau g ệ – Khai báo các biến cần sử dụng 17
  18. 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 • Dạng 2: if … else … f − 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. 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 • Dạng 2: if … else … f − 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. 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 2: if … else … f − 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. 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 ập ệ <Tập lệnh n> 21
  22. 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ĩa g 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
  23. 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 nhau p ợ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>) <Tập lệnh B> … else <Tập lệnh n> } 23
  24. 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 nhau p ợ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> else if (<Điều kiện B>) <Tập lệnh B> IF Dạng 3 … else <Tập lệnh n> } 24
  25. 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ạ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) xl = "Yếu"; else if (dtb < 6.5) xl = "T l "Trung bình"; bì h" 25
  26. 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ại else if (dtb < 8) xl = "Khá"; else xl = "Giỏi"; Console.WriteLine(“Xếp loại: {0}”, xl); } 26
  27. 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 • 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 ) /3 HK2 2 • 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 <6 5 Yếu: nếu ĐTB <5 27
  28. 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. 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, 12 1 3 Số ngày =31 – Nếu tháng =4 hoặc tháng =6 hoặc 9, 11 Số ngày =30 30 – Nếu tháng =2 Nếu năm nhuần Số ngày =29 29 Ngược lại Số ngày =28 29
  30. 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á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 30
  31. 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à 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ệm g ợ ạ ( ) g g ệ – Ngược lại (nếu a != 0) Nghiệm x = -b/a 31
  32. 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=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 g g p Delta =0: Phương trình có nghiệm kép x1=x2=-b / 2a Delta >0: Phương trình có 2 nghiệm: 32
  33. 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. 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ú pháp IF • 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> <Biểu_thức_2> − <Điều kiện>: là 1 biểu thức logic, trả về true hoặc false 34
  35. 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()); string k t t i ket_qua = (dtb >= 5) ? "Đ > "Được lê lớ “ : "Ở lại lớ “ lên lớp“ l i lớp“; Console.WriteLine(“Kết quả: {0}”, ket_qua); 35
  36. 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. 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 nhiều điều kiện phức tạp khi có quá − Do đó 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. 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 switch (<biểu thức chọn lựa>) { case < iá t ị 1> <giá trị 1>: <Tập lệnh 1> break; case < iá t ị 2> <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> break; } 38
  39. 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. 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: 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ệ”); break; } 40
  41. 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. 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 10: case 12: Console.WriteLine(“Tháng {0} năm {1} có 31 ngày”, thang, nam); break; 42
  43. 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: case 11 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 Console WriteLine(“Tháng {0} năm {1} có 29 ngày”, thang nam); ngày thang, else Console.WriteLine(“Tháng {0} năm {1} có 28 ngày”, thang, nam); break; 43
  44. 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. 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 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 Console WriteLine(“Tháng {0} có 30 ngày , thang); ngày” else if (thang==2) { if (( ((nam % 400 0) || ( 400==0) (nam % 4 0 && nam % 100 ! 0)) 4==0 !=0)) Console.WriteLine(“Tháng {0} có 31 ngày”, thang); else ngay=28; } 45
  46. 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 else Console.WriteLine(“Tháng nhập vào không hợp lệ”); 46
  47. 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. 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 sau p ụ 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 –1 –… Không Một − Bài 3 Tì thứ ttrong tuần 3: Tìm t ầ • Nhập vào ngày, tháng, năm • Cho biết ngày đó là t ứ mấy C o b ết gày à thứ ấy trong tuần 48
  49. 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á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) (Sau (S đó có thể nâng cấp đ nhiều chữ số) ó â ấ đọc hiề hữ ố) • Kiểm tra số hợp lệ trước khi đọc − 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 • Dùng thuộc tính DayOfWeek của biến kiểu DateTime để tìm thứ trong tuần. 49
  50. 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. 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ụng Công d − 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 − 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 q kiểm tra là : ệ ặp, quả • 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âu lệnh while và chuyển đến câu lệnh câ hile à ch ển câ tuần tự kế tiếp. 51
  52. 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ú pháp há while (<Điều kiện lặp>) { <Tập lệnh> [continue;] [break;] } 52
  53. 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 • Ý nghĩa hĩ − Đ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 − continue: quay trở lên kiểm tra điều kiện của vòng lặp khi cần 53
  54. 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: False Thoát khỏi vòng lặp <Điều kiện lặp> True <Khối lệnh lặp> 54
  55. 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; while (i < 100) hil <= { tong += i; // //Tăng i tong =tong + i tong 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. 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) { tong += i; // t i tong =tong + i; t t i // Tăng i lên 2 để có được những số lẻ i += 2; } 56
  57. 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ì số nguyên lớ nhất trong khoảng từ d 3: Tìm ố ê lớn hất t kh ả 1 đến 100 chia hết cho n (0<n<=100) int i=100, i t i 100 max; while (i >= 1) { if (i % n == 0) { max = i; break; //thoát khỏi vòng lặp } i -= 1; } 57
  58. 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á nguyên tắ cơ bản cần lưu ý khi làm việc với Các ê tắc bả ầ l là iệ ớ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 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ê ttrong vòng lặ phải có ít nhất một câu lệ h tá độ Bên ò lặp hải ó hất ột â 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ặp ẽ thay lặ sẽ th đổi giá t ị (để tránh vòng lặ vô h ) iá trị t á h ò lặp ô hạn) 58
  59. 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á nguyên tắ cơ bản cần lưu ý khi làm việc với Các ê tắc bả ầ l là iệ ớ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 xét sau 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à sai 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à 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ệnh hil khác. lệ h while khá 59
  60. 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 − 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) (so 1) (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ì và xuất ra số đảo ngược của n (víí dụ: số 123 có số nghịch Tìm à ất ố đả ủ ( d ố ó ố hị h đảo là 321) 60
  61. 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ụng Công d − 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ị {} 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 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
  62. 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ú pháp há do { <Tập lệnh> [continue;] [break;] } while (<Điều kiện lặp>) 62
  63. 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 • Ý nghĩa hĩ − Đ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 khi cần. 63
  64. 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: <Khối lệnh lặp> False Thoát khỏi vòng lặp <Điều kiện lặp> True 64
  65. 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; do { tong += i; // i ++; tong =tong + i tong //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. 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; do { i ++; ; tong += i; } while (i <= 100) Console.WriteLine(“Tổng các số nguyên từ 1=> 100: {0}”, tong); − Bạn có nhận xét gì khi đưa dòng lệnh i++ lên trước tong +=i ? 66
  67. 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ện lặp kiệ lặ − 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ự 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. 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>) { <Khối lệnh lặp> [continue;] [break;] } 68
  69. 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ỏa điều kiệ lặp thỏ điề kiện lặ − 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. 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: <Gán giá trị ban đầu cho biến chạy> False Thoát khỏi vòng lặp <Điều kiện lặp> True <Khối lệnh lặp> <Tăng/Giảm giá trị biến đếm> 70
  71. 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 int tong =0; 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. 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) { tong += i; } Hoặc for(i=1; i<=100; i++) { if(i%2 != 0) tong += i; } Console.WriteLine(“Tổng các số nguyên lẻ từ 1=>100: {0}”, tong); 72
  73. 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ừ 1 đến 100 chia hết cho n (0<n<=100) 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 } } Console.WriteLine(“Số lớn nhất chia hết cho {0} là {1}”, n, max); 73
  74. 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 100 int tong=0; for(int i = 1; i<=100;i++) { if(i%2 != 0) continue; tong+=i; } 74
  75. 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 = ""; for (i = 1; i < n; i++) { if (n % i == 0) kq = kq + " " + i; } Console.WriteLine(kq); C l W it Li (k ) 75
  76. 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ú pháp há 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ý tương ứng 76
  77. 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 77
  78. 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 − Bài 1:Tạo bảng cửu chương • Nhậ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. 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 − Bài 2: Số nguyên tố • Nhậ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. 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# • • • • 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. 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. 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áp pháp. Lỗi thực thi (runtime error) − − − Xảy Xả ra khi t thực thi chương trình. ta th h tì h Khó xác định hơn lỗi cú pháp. Nguyên nhân: Mở một tập ti đ N ê hâ ột tậ tin đang tồ t i chia cho 0 tồn tại, hi h 0, truy xuất bảng không tồn tại trong CSDL, … 82
  83. 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ình Được thể hiện dưới những hình thức hoặc những kết q quả không mong đợi. g g Nguyên nhân: sai lầm trong thuật giải. 83
  84. 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ự độ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. 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 ra của một tình trạng bất thường ( ngoại lệ - exception) ủ ột tì h t th ờ (sự i ti ) trong khi chương trình thực thi. − Cú pháp: throw new <loại Exception>( [“Câu thông báo lỗi”]); 85
  86. 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. 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 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) 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. Một lỗi xảy ra khi th c thi ch ơng trình gọi là một ả thực chương Exception. 87
  88. 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ỏ ra, 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. 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ụ: 89
  90. 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 ụ ậ ự p p cụ vận hành sẽ chỉ thực thi khối catch với kiểu exception phù 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át. quá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 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. 90
  91. 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ụ: 91
  92. 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# • • • • 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. 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. 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 nhưng có chỉ số khá nhau. h ó hỉ ố khác h − 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) thước). − Ví dụ: Mảng nguyên 5 phần tử 0 1 2 3 4 Chỉ số 10 20 15 6 8 Giá t ị trị 94
  95. 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. 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 • Khai báo không Kh i bá khô khởi tạo kích thước và giá trị kí h h ớ à iá ị <Kiểu dữ liệu>[ ] Tên_mảng; Ví dụ: int[ ] a; • 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. 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 • Khai báo ó Kh i bá có khởi tạo kí h thước và khởi tạo giá trị ban t kích th ớ à t iá t ị b đầ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ểu <Kiể dữ liệ >[ ] Tên_mảng = { iá t ị 1 giá t ị 2 giá t ị 3 ...}; liệu>[ Tê ả {giá trị 1, iá trị 2, iá 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 = {2, 10, 4, 8, 5}; 97
  98. 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. 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. 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. 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. 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 q và xử lý trên từng p tử của mảng yệ qua ý g phần 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. 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++) { chuoi_mang += d[i].ToString() + " "; S () } Console.WriteLine(chuoi_mang); Console WriteLine(chuoi mang); 103
  104. 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 mang nguyen = new int[sopt]; for (int i = 0; i < mang_nguyen.Length; i++) { Console.Write(“Nhập Console Write(“Nhập giá trị cho phần tử thứ {0}”, i + 1); {0}” string n = Console.ReadLine(); if(n != "") mang_nguyen[i] = int.Parse(n); } 104
  105. 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 − Ví dụ: Duyệt và xuất giá trị từng phần tử của mảng mang_nguyen mang nguyen string chuoi_mang = ""; for (int i = 0; i < mang_nguyen.Length; i++) { chuoi_mang += mang_nguyen[i] + " "; } return chuoi_mang; 105
  106. 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. 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 int i, max; max = mang_nguyen[0]; // phần tử đầ tiê [0] hầ đầ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. 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ất int i, min; min = mang nguyen[0]; // phần tử đầu tiên mang_nguyen[0]; for (i = 0; i < mang_nguyen.Length; i++) { // nếu gặp phần tử nhỏ hơn if (min > mang_nguyen[i]) min = mang_nguyen[i]; i [i] } 108
  109. 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ấp int so_tim = int.Parse(Console.ReadLine()); // Khai báo và tạo giá trị mặc định: g sử không tìm thấy ạ g ị ặ ị giả 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; } } Console.WriteLine("Kết quả tìm kiếm: {0}“, kq); 109
  110. 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. 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ầ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 } // for i 111
  112. 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ần 34 55 5 89 1 21 8 13 2 3 34 55 5 89 1 21 8 13 2 1 34 55 5 89 3 21 8 13 2 55 34 89 3 21 8 13 2 1 3 5 ……………………………… 1 2 3 5 8 13 21 34 55 89 112
  113. 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ắ xếp Sắp ế − Sắp tăng dần Array.Sort(<Mảng>); • Array: lớp được xây dựng sẵn • Ví dụ d // Sắp xếp mang_nguyen tăng dần Array.Sort(mang_nguyen); 113
  114. 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ắ xếp Sắp ế − Đảo ngược mảng Array.Reverse(<Mảng>); • Ví dụ // Đảo ngược mang_nguyen Array.Reverse(mang_nguyen); 114
  115. 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ếm Tìm kiế − 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ề -1 thấy 1 Array.IndexOf(<Mảng>, <giá trị tìm>) Ví dụ 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, g _tri); y ( g_ g y , gia ); if (vi_tri < 0) Console.WriteLine("Không tìm thấy!", "Thông báo"); else Console.WriteLine("Đã Console WriteLine("Đã tìm thấy {0} tại vị trí {1}“, gia tri vi tri); {1} gia_tri, vi_tri); 115
  116. 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. 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ả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: 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 a[3] = 9; 117
  118. 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êm 118
  119. 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 mảng A có 3 phần tử đ ả ó hầ được kh i bá như sau: khai báo h int[ ] A = {4, 2, 5}; Mảng A trước khi thêm: 4 2 5 Mảng A sau khi thêm: 4 9 2 5 119
  120. 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); Mảng A sau khi Resize: 4 2 5 0 120
  121. 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]; [] [ ]; }; Mảng A sau khi dịch chuyển: 4 2 2 5 121
  122. 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; Mảng A sau gán giá trị: g g g ị 4 9 2 5 Phần tử mới thêm vào 122
  123. 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 ụ g p phương thức Resize của lớp Array để g g p y giảm kích 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: int[ ] a = {4, 9, 2, 5}; //ban đầu mảng a có 4 phần tử y (ref , ); g g Array.Resize <int> ( a, 3); //giảm kích thước của mảng a 123
  124. 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. 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 có 4 phần tử đ ó hầ được kh i bá như sau: khai báo h int[ ] A = {4, 9, 2, 5}; Mảng A trước khi xóa: 4 9 2 Mảng A sau khi xóa: 4 2 5 5 125
  126. 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]; [ ] [ ]; }; Mảng A sau khi dịch chuyển: 4 2 5 5 126
  127. 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); Mảng A sau khi Resize: 4 2 5 127
  128. 128. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 128
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×