Lựa chọn hoặc thiết kế thuật toán... Mỗi thuật toán chỉ giải một bài toán, nhưng một bài toán có thể có nhiều thuật toán để giải.. Do đó chúng ta phải lựa chọn hoặc thiết kế thuật toán t
Trang 1Tiết 18
Tiết 18 GIẢI BÀI TOÁN TRÊN MÁY TÍNH
Trang 2* Để giải bài toán trên máy tính, ta thường tiến hành qua các bước:
Bước 1: Xác định bài toán ; Bước 2: Lựa chọn hoặc thiết kế thuật toán ; Bước 3: Viết chương trình ;
Bước 4: Hiệu chỉnh ; Bước 5: Viết tài liệu
Trang 31 Xác định bài toán
Là xác định Input và Output của bài toán
Ví Dụ: Bài toán tìm ƯCLN của 2 số nguyên dương M và N?
Input : 2 số nguyên dương M và N
Output : ƯCLN của M và N
Trang 4a) Lựa chọn thuật
toán:
2 Lựa chọn hoặc thiết kế thuật toán
Trang 5Ta lựa chọn thuật toán tối ưu dựa vào những tiêu chuẩn
nào?
Mỗi thuật toán chỉ giải một bài toán, nhưng một bài toán có thể có nhiều thuật toán để giải Do đó chúng ta phải lựa chọn hoặc thiết kế thuật toán tốt nhất để giải bài toán (thuật toán tối ưu)
Tiêu chuẩn lựa chọn thuật toán tối ưu:
- Thời gian thực hiện nhanh;
- Thuật toán đơn giản, dễ nhìn, dễ hiểu;
- Tốn ít tài nguyên bộ nhớ.
Trang 6Ta có những cách nào để diễn tả thuật toán?
b) Diễn tả thuật
toán :
Diễn tả thuật toán bằng cách liệt kê Diễn tả thuật toán bằng sơ đồ khối
Trang 7 * Diễn tả thuật toán bằng cách
liệt kê Bài toán: Tìm uớc chung lớn nhất (ƯCLN) của 2 số nguyên
duơng M và N?
- Xác định bài toán:
- Ý tưởng:
+ Nếu M=N thì ƯCLN(M,N)=M hoặc ƯCLN(M,N)=N;
+ Nếu M>N thì ƯCLN(M,N)= ƯCLN(M-N,N);
+ Nếu M<N thì ƯCLN(M,N)= ƯCLN(M,N-M);
Có mấy điều kiện để kiểm tra bài toán
tìm ƯCLN(M,N)?
Trang 8 Mô phỏng : M=18 N=24
M
N
M=18
N=24
M<>N
M=18
N=6
M<>N
M=12
N=6
M<>N
M=6
N=6
M=N
M
N
M=6
N=5
M<>N
M=1
N=5
M<>N
M=1
N=4
M<>N
M=1
N=3
M<>N
M=1
N=2
M<>N
M>N M<N M<N M<N M<N
M=1
N=1
M=N
UCLN=1
Trang 9 - Thuật toán
Cách liệt kê:
Bước 1 : Nhập M và N;
Bước 2: Nếu M=N thì thông báo ƯCLN là M hoặc N rồi kết thúc;
Bước 3 : Nếu M>N thì M M-N rồi quay lại bước 2;
Bước 4 : N N-M rồi quay lại bước 2;
Trang 10 * Diễn tả thuật toán bằng sơ đồ
khốiSơ đồ khối:
Nhập M và N
Đưa ra ƯCLN=M
rồi kết thúc
M M-N
Trang 11 - Việc lựa chọn cách tổ chức dữ liệu;
- Sử dụng ngôn ngữ lập trình để diễn đạt đúng thuật toán.
Viết chương trình là tổng hợp giữa:
3 Viết chương trình
Trang 12Sử dụng các bộ Input đặc trưng cho bài toán để thử tính đúng đắn của chương trình
VD: Chương trình giải phương trình bậc 2 ax2+bx+c=0 ,
ta có thể thử với ba bộ Input với các trường hợp sau:
Cho a, b, c sao cho ∆>0: Kết quả chương trình đưa ra 2nghiệm
Cho a, b, c sao cho ∆=0: Kết quả chương trình đưa ra nghiệm kép
Cho a, b, c sao cho ∆<0: Kết quả chương trình thông báo pt vô nghiệm
4 Hiệu chỉnh
Tại sao phải hiệu chỉnh? Hiệu chỉnh là chúng ta làm
gì?
) 0 ( a ≠
Trang 13 Mục đích của việc viết tài liệu:
- Giúp ích cho người sử dụng trong quá trình sử dụng chương trình;
- Giúp ích cho việc nghiên cứu và đề xuất khả năng hoàn
thiện chương trình.
5 Viết tài liệu
Trang 14Bài tập:
Trình bày các bước thực hiện việc giải bài toán:
Giải phương trình bậc nhất trên máy tính.
Trang 15Củng cố
Các bước giải bài toán trên máy tính:
Bước 1: Xác định bài toán;
là xác định Intput, Output và mối liên hệ giữa chúng
Bước 2: Lựa chọn hoặc thiết kế thuật toán;
Lựa chọn thuật toán tối ưu, diễn tả thuật tóan bằng liệt kê hoặc SĐK
Bước 3: Viết chương trình;
Sử dụng ngôn ngữ lập trình diễn tả đúng thuật toán Bước 4: Hiệu chỉnh;
Thử chương trình với các bộ Input đặc trưng cho các trường hợp, phát hiện lỗi và chỉnh sửa lỗi cho chương trình
Bước 5: Viết tài liệu
Tài liệu lưu lại những gì liên quan bài toán và hướng dẫn sử dụng
Trang 16Bài toán:
Viết thuật toán giải pt bậc nhất ax+b=0
• Xác định bài toán :
- Input : các hệ số a,b
- Output : các kết luận về nghiệm của pt.
• Ý tưởng : nghiệm của bài toán phụ thuộc vào các số a và b như sau:
-Nếu a=0 :
+Nếu b=0 :kết luận pt có vô số nghiệm;
+Nếu b≠ 0 : kết luận pt vô nghiệm;
-Nếu a ≠ 0 : kết luận pt có một nghiệm x = -b/a.
Trang 17Đ
•Thuật toán :
- Sơ đồ khối
Nhập a và b
a=0?
b=0? Pt vn rồi
kết thúc
Pt vsn rồi
kết thúc
Đ
S
nghiệm x=-b/a rồi kết thúc
Giải pt: 8x+96=0
Trang 18Câu 1: Các bước cần phải có khi giải bài toán trên máy tính
là
a Xác định bài toán,lựa chọn hoặc thiết kế thuật toán,diễn tả thuật toán,hiệu chỉnh, viết tài liệu
b Xác định bài toán,lựa chọn hoặc thiết kế thuật toán,viết chương trình, viết tài liệu
c Xác định bài toán,lựa chọn hoặc thiết kế thuật toán, viết chương trình, hiệu chỉnh, viết tài liệu
d Xác định bài toán, viết thuật chọn, viết chương trình, viết tài liệu
CÂU HỎI TRẮC NGHIỆM
Trang 19Câu 2: Mục đích của việc hiệu chỉnh là :
a Xác định lại Input và Output của bài toán.
b Phát hiện và sửa sai sót.
c Mô tả chi tiết bài toán
d Để tạo ra một chương trình mới.
Trang 20Câu 3 Thuật toán tối ưu là?
a) Sử dụng ít thời gian, ít bộ nhớ
b) Sử dụng ít thời gian, nhiều bộ nhớ, ít phép toán
c) Sử dụng nhiều thời gian, nhiều bộ nhớ, ít phép
toán
d) Sử dụng ít thời gian, ít bộ nhớ, ít phép toán