thao tác thì hoặc là thuật toán kết thúc hoặc là có đúng một thao tác xác định để được thực hiện tiếp theo;.. Tính đúng đắn: Sau khi thuật toán kết.[r]
Trang 1 Trình bày các tính chất của thuật toán
Tính dừng: Thuật toán phải kết thúc sau
một số hữu hạn lần thực hiện các thao tác;
Tính xác định: Sau khi thực hiện một
thao tác thì hoặc là thuật toán kết thúc hoặc là có đúng một thao tác xác định để được thực hiện tiếp theo;
Tính đúng đắn: Sau khi thuật toán kết
thúc, ta phải nhận được Output cần tìm
Trang 203/05/21 GV: PHẠM THỊ ANH ĐÀO 2
Trang 3A Ví dụ 1:
Kiểm tra tính nguyên tố của một số
nguyên dương.
1 Xác định bài toán
Input: Số nguyên dương N
Output: “N là số nguyên tố” hoặc “N không là
số nguyên tố”
Trang 4A Ví dụ 1:
Kiểm tra tính nguyên tố của một số
nguyên dương.
2 Ý tưởng
Nếu N=1 thì N không là số nguyên tố
Nếu 1<N<4 thì N là số nguyên tố
Nếu N>=4 và không có ước số trong phạm vi
(2, [ N]) thì N là số nguyên tố
III MỘT SỐ VÍ DỤ VỀ THUẬT TOÁN
Trang 5A Ví dụ 1:
3 Thuật toán
Liệt kê:
B1: Nhập số nguyên dương N;
B2: Nếu N=1 thì thông báo N không nguyên tố rồi kết
thúc
B3: Nếu N<4 thì thông báo N nguyên tố rồi kết thúc
B4: i 2
B5: Nếu i>[ N] thì thông báo N là nguyên tố rồi kết
thúc
B6: Nếu N chia hết cho i thì thông báo N không nguyên
tố rồi kết thúc
B7: i i+1 rồi quay lại bước 5
Trang 6 Sơ đồ khối: Nhập N
N = 1
N chia hết i?
N < 4
Tbáo N không
là SNT rồi kết
thúc
Tbáo N là SNT rồi kết thúc
i 2
i i +1
i > [ N ]
Đúng Đúng
Đúng
Đúng Sai
Sai Sai
Sai
Trang 7N=17 [ N]=4
N chia hết
cho i
i>[N]
i
4 Mô phỏng
17 là
số nguyên tố
Sai Sai
Sai
Đúng Sai
Sai Sai
5 4
3 2
Trang 8III MỘT SỐ VÍ DỤ VỀ THUẬT TOÁN
N=25 [ N]=5
4 Mô phỏng
25 không
là số nguyên tố
N chia hết
cho i
i>[N]
i
Sai Sai
Sai
Sai Sai
Sai Sai
5 4
3 2
Đúng
Trang 9B Ví dụ 2:
Tìm giá trị lớn nhất của một dãy N số
nguyên a1, a2, …, aN.
1 Xác định bài toán
Input: Số nguyên dương N và dãy N số
nguyên a1, a2, …, aN;
Output: Giá trị lớn nhất Max của dãy số
Trang 10B Ví dụ 2:
Tìm giá trị lớn nhất của một dãy N số
nguyên a1, a2, …, aN.
2 Ý tưởng
Khởi tạo giá trị Max= a1
Lần lượt với i từ 2 đến N, so sánh giá trị số
hạng ai với giá trị Max, nếu ai>Max thì Max nhận giá trị mới là ai
III MỘT SỐ VÍ DỤ VỀ THUẬT TOÁN
Trang 11B Ví dụ 2:
3 Thuật toán
B1: Nhập N và dãy a 1 , …, a N ;
B2: Max a 1 , i 2
B3: Nếu i>N thì đưa ra Max sồi kết thúc;
B4:
B4.1: Nếu a i >Max thì Max a i ;
B4.2: i i+1 rồi quay lại bước 3
Trang 12 Sơ đồ khối:
Nhập N và dãy a 1 , …, a N
i > N?
Đưa ra Max rồi kết thúc
a i > Max?
Đúng
Đúng
Sai
Sai Max a 1, i 2
Max a i, i 2
i i +1
Trang 13B Ví dụ 2:
N=9
i Max
Trang 14B Ví dụ 2:
III MỘT SỐ VÍ DỤ VỀ THUẬT TOÁN
N=9
Kết luận: Max = 41