Bài giảng Toán rời rạc - Chương 1: Thuật toán cung cấp cho người học các kiến thức: Khái niệm thuật toán, tính chất của thuật toán, các cách biểu diễn thuật toán, cấu trúc cơ bản của thuật toán, một số thuật toán cơ bản. Mời các bạn cùng tham khảo.
Trang 1Toán rời rạc
Chương 1: THUẬT TOÁN
GV: Nguyễn Lê Minh
Trang 2Nội dung
1. Khái niệm thuật toán
2. Tính chất của thuật toán
3. Các cách biểu diễn thuật toán
4. Cấu trúc cơ bản của thuật toán
5. Một số thuật toán cơ bản
6. Bài tập
Trang 3Nội dung
1. Khái niệm thuật toán
2. Tính chất của thuật toán
3. Các cách biểu diễn thuật toán
4. Cấu trúc cơ bản của thuật toán
5. Một số thuật toán cơ bản
6. Bài tập
Trang 41 Khái niệm thuật toán
Thuật toán là một tập hữu hạn các bước, các phép toán cơ bản
được sắp xếp theo một trình tự nhất định để từ thông tin đầu vào của bài toán sau một tập hữu hạn các bước đó sẽ đạt được kết quả ở đầu ra như mong muốn
Trang 51 Khái niệm thuật toán
Thông thường, thuật toán dùng để giải một lớp các bài toán cụ thế Gồm 2 thành phần chính:
• Input : Thông tin bài toán đã cho
• Output : Thông tin cần tìm hoặc trả lời câu hỏi cần thiết
Ví dụ:
S = a *b
Trang 61 Khái niệm thuật toán
Ví dụ : Giải phương trình bậc nhất P(x): ax + b = 0, (a, b là các số
Trang 71 Khái niệm thuật toán
Ví dụ 2 : Kiểm tra một số nguyên X có chia hết cho 5 không ?
• Input : X
• Output : Kết quả kiểm tra Result
o Mô tả thuật toán:
o Bước 1: Tìm số dư r của phép chia x cho 5
o Bước 2: Kiểm tra
Nếu r = 0 thì result = True
Nếu r <> 0 thì result = False
Trang 8Nội dung
1. Khái niệm thuật toán
2. Tính chất của thuật toán
3. Các cách biểu diễn thuật toán
4. Cấu trúc cơ bản của thuật toán
5. Một số thuật toán cơ bản
6. Bài tập
Trang 92 Tính chất của thuật toán
Trang 102 Tính chất của thuật toán
■ Tính dừng : Thuật toán phải bao đảm được kết thúc sau một số hữu hạn bước
■ Tính dừng là tính dễ bị vi phạm, thường là do sai sót khi trình bày
thuật toán dẫn đến “Lặp vô tận”.
Trang 112 Tính chất của thuật toán
Thuật toán phải có tính xác định: các bước trong thuật toán phải
được xác định rõ ràng, có thể thực thi được, không gây mập mờ, nhập nhằng, tùy chọn
Trang 122 Tính chất của thuật toán
q Thuật toán phải có Tính đúng đắn: để đảm bảo kết quả tính toán
hay các thao tác mà máy tính thực hiện được là chính xác
q Trong một kỳ thi kiểm tra không phải tất cả các học sinh điều đưa
ra được lời giải “đúng”.
q Khi thiết kế thuật toán cần kiểm nghiệm và chỉnh sửa nhiều lần để
có được một thuật toán đúng.
Trang 132 Tính chất của thuật toán
lượng vào và ra
để giải, một thuật toán tốt thì nó phải hiệu quả, tính hiệu quả của thuật toán được đánh giá dựa trên một số tiêu chuẩn như khối lượng tính toán, không gian và thời gian khi thuật toán được thi hành
dụng được cho mọi trường hợp của bài toán chứ không phải chỉ
áp dụng được cho một số trường hợp riêng lẻ nào đó
Trang 14Nội dung
1. Khái niệm thuật toán
2. Tính chất của thuật toán
3. Các cách biểu diễn thuật toán
4. Cấu trúc cơ bản của thuật toán
5. Một số thuật toán cơ bản
6. Bài tập
Trang 153 Các cách biểu diễn của thuật toán
Sơ đồ khối Liệt kê
Mã giả
Trang 163 Các cách biểu diễn của thuật toán
Phương pháp liệt kê
o Tại mỗi bước sử dụng ngôn ngữ tự nhiên để diễn tả công việc phải làm.
o Các bước được đánh số thứ tự, bước có số thứ tự nhỏ hơn được
thực hiện trước.
o Ưu điểm: Dễ hiểu, dễ thực hiện.
o Khuyết điểm: Phụ thuộc cách trình bày của người thiết kế, khó áp dụng
cho những thuật toán có tính phức tạp.
Trang 173 Các cách biểu diễn của thuật toán
Ví dụ : Giải phương trình bậc nhất P(x): ax +b = 0:
■ Input: a,b
■ Output: Kết quả giải phương trình.
■ Bước 2.2: Nếu b <> 0 thì phương trình vô nghiệm
Trang 183 Các cách biểu diễn của thuật toán
Phương pháp sơ đồ khối
o Sử dụng các hình khối để biểu diễn các lệnh hay thao tác.
o Sử dụng mũi tên để biểu diễn thứ tự thực hiện.
o Ưu điểm: Diễn đạt khoa học, có tính nhất quán, dễ hiểu và dễ kiểm tra.
o Khuyết điểm: Phải vẽ nhiều hình, cồng kềnh, không phù hợp với các
thuật toán phức tạp.
Trang 193 Các cách biểu diễn của thuật toán
Trang 203 Các cách biểu diễn của thuật toán
Câu lệnh rẽ nhánh
- Nếu đúng thì thực hiện nhánh Đ
- Nếu sai thì thực hiện nhánh S
Biểu diễn thực hiện công việc A
Biểu diễn việc gọi chương trình con A
Trang 213 Các cách biểu diễn của thuật toán
Trang 223 Các cách biểu diễn của thuật toán
Trang 233 Các cách biểu diễn của thuật toán
Phương pháp mã giả
o Dựa trên các ngôn ngữ bậc cao (Pascal, C )
o Sử dụng ngôn ngữ tự nhiên con người
o Ưu điểm: Tương tự ngôn ngôn ngữ lập trình và ngôn ngữ tự nhiên,
chuyển từ thuật toán sang chương trình dễ dàng.
o Khuyết điểm: Viết như cách biểu diễn liệt kê, khó bao quát với những
bài toán nhiều chương trình Phải làm quen với những ngôn ngữ mới.
Trang 243 Các cách biểu diễn của thuật toán
Ví dụ: Tính tổng n số tự nhiên đầu tiên
Trang 25Nội dung
1. Khái niệm thuật toán
2. Tính chất của thuật toán
3. Các cách biểu diễn thuật toán
4. Cấu trúc cơ bản của thuật toán
5. Một số thuật toán cơ bản
6. Bài tập
Trang 263 Các cấu trúc cơ bản của thuật toán
Rẽ nhánh Tuần tự
Lặp
Trang 274 Các cấu trúc cơ bản của thuật toán
thực hiện: Bước 1, Bước 2, Bước 2.1, …
• Khi dùng sơ đồ khối ta sử dụng để biểu diễn thứ tự thực hiện của thuật toán
Trang 284 Các cấu trúc cơ bản của thuật toán
Cấu trúc rẽ nhánh:
o Là cấu trúc kiểm tra một điều kiện, khi điều kiện đúng chương trình
sẽ thực hiện theo nhánh đúng, khi điều kiện sai chương trình sẽ thực hiện theo nhánh sai
Trang 294 Các cấu trúc cơ bản của thuật toán
Cấu trúc lặp:
o Là cấu trúc lặp đi lặp lại một hành động nhiều lần:
o Số lần lặp xác định trước.
o Số lần lặp không xác định trước.
Trang 30Nội dung
1. Khái niệm thuật toán
2. Tính chất của thuật toán
3. Các cách biểu diễn thuật toán
4. Cấu trúc cơ bản của thuật toán
5. Một số thuật toán cơ bản
6. Bài tập
Trang 314 Một số thuật toán cơ bản
■ Tính chu vi và diện tích hình tròn
■ Cho 3 số a,b,c In ra màn hình 3 số sau khi đã cộng thêm 1
■ Nhập n Nếu n>0, in ra màn hình n sau khi bình phương
■ Tính tổng dãy số p = 1+2+3+ +n
■ Tính tích dãy số p = 1x2x3x xn
■ Tìm n min thỏa mãn S = 1 + ½ + 1/3 + + 1/n >= 3
Trang 324 Một số thuật toán cơ bản
Kiểm tra xem N có phải là 1 số nguyên tố không ?
Ý tưởng :
- Nếu N=1 -> N không là số nguyên tố
- Nếu 1<N>4 -> N là số nguyên tố
- Nếu N >= 4 : Tìm ước i > 1 của N
+ Nếu i <N -> N không phải số nguyên tố ( vì N có ít nhất 3 ước
N, i, 1)
+ Nếu i=N -> N là số nguyên tố
Trang 334 Một số thuật toán cơ bản
o Tính tổng dãy số
o Tính tích dãy số
o Tìm kiếm một số có trong dãy hay không
o Đếm số lượng phần tử thỏa mãn điều kiện
o Tìm giá trị max, min
o Sắp xếp tăng, giảm dãy số
Trang 344 Một số thuật toán cơ bản
o Tính tổng: Cho dãy n phần tử a1,a2,a3 an Hãy tính tổng ra dãy số trên
-Sử dụng một biến để tính tổng các phần tử Ban đầu biến này bằng 0
- Duyệt từng phần tử và cộng phần tử vào biến tổng
Trang 354 Một số thuật toán cơ bản
Trang 364 Một số thuật toán cơ bản
o Tính tổng: Cho dãy n phần tử a1,a2,a3 an Hãy tính tích ra dãy số trên
-Sử dụng một biến để tính tích các phần tử Ban đầu biến này bằng 1 (nếu biến ban đầu bằng 0 thí tích sẽ bằng 0 sai)
- Duyệt từng phần tử và nhân phần tử vào biến tích
Trang 374 Một số thuật toán cơ bản
o Tính tổng: Cho dãy n phần tử a1,a2,a3 an Kiểm tra số X có nằm trên dãy trên hay không ?
Trang 384 Một số thuật toán cơ bản
Trang 394 Một số thuật toán cơ bản
o Tính tổng: Cho dãy n phần tử a1,a2,a3 an Đếm xem trong dãy có bao nhiêu phần tử thỏa mãn điều kiện nào đó
Trang 404 Một số thuật toán cơ bản
Trang 414 Một số thuật toán cơ bản
Đếm số chẵn
Trang 424 Một số thuật toán cơ bản
o Tính tổng: Cho dãy n phần tử a1,a2,a3 an Tìm phần tử Max – Min trong dãy số
Trang 434 Một số thuật toán cơ bản
Tìm max
Trang 444 Một số thuật toán cơ bản
o Tính tổng: Cho dãy n phần tử a1,a2,a3 an Sắp xếp dãy số tăng giảm
- Duyệt từng phần tử:
- Phần tử đang duyệt được gọi là phần tử hiện tại
- Thực hiện một vòng lặp con, duyệt các phần tử còn lại Nếu giá trị của phần tử được duyệt trong vòng lặp con bé hơn phần tử hiện tại
thực hiện việc đổi chỗ 2 phần tử.
Trang 454 Một số thuật toán cơ bản
Tăng dần
Trang 46Nội dung
1. Khái niệm thuật toán
2. Tính chất của thuật toán
3. Các cách biểu diễn thuật toán
4. Cấu trúc cơ bản của thuật toán
5. Một số thuật toán cơ bản
6. Bài tập
Trang 474 Vẽ sơ đồ khối biểu diễn thuật toán nhập dãy số a1,a2,a3,….,an , in
ra màn hình dãy số theo chiều ngược lại
5 Vẽ sơ đồ khối biểu diễn thuật toán nhập dãy số a1,a2,a3,….,an , xuất ra màn hình 3 số âm lớn nhất trong dãy