5. Company Logo
Vieäc giaûi
toaùn treân
maùy tính
ñöôïc thöïc
hieän nhö theá
naøo ?
6. I. CÁC BƯỚC GIẢI BÀI TOÁN TRÊN MÁY TÍNH
B1
B2
B3
B4
B5
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
7. I. CÁC BƯỚC GiẢI BÀI TOÁN TRÊN MÁY TÍNH
1. XÁC ĐỊNH BÀI TOÁN ( bước 1)
Ví dụ: Tìm ước chung lớn nhất (UCLN) của hai
số nguyên dương M và N.
Input: M,N
Output: UCLN(M,N)
xác định bài toán ?
Xác định bài toán là xác định rõ hai thành phần:
- Input
- Output
8. 2. LỰA CHỌN HOẶC THIẾT KẾ THUẬT TOÁN (bước 2).
a. Lựa chọn thuật toán
Có thể có nhiều
cách giải
(thuật toán)
BÀI TOÁN
Cách 1
Cách 2
Cách 3…
- Ít phức tạp. ít thời gian thực hiện.
- Chiếm ít ô nhớ.
- Thực hiện ít phép toán, dễ hiểu. . .
KẾT QUẢ
9. 2. LỰA CHỌN HOẶC THIẾT KẾ THUẬT TOÁN
b. Diễn tả thuật toán
Ví dụ: Tìm ước chung lớn nhất (UCLN) của hai số nguyên
dương M và N.
(UCLN của hai số nguyên dương là số lớn nhất mà cả hai số cùng
chia hết cho nó.)
Ví dụ: UCLN(2,6)=2 , UCLN(4,10)= 2
Xác định bài toán
Trình bày ý tưởng một vài cách giải
10. 2. LỰA CHỌN HOẶC THIẾT KẾ THUẬT TOÁN
b. Diễn tả thuật toán
Nếu M=N thì giá trị chung là
UCLN
Ngược lại
Nếu M>N thì
UCLN(M,N)=UCLN(M-N,N)
Nếu M<N thì
UCLN(M,N)=UCLN(M,N-M)
N
10
6
2
Ví dụ: Tìm UCLN(4,10)
M
4
4
4
2
UCLN(M,N) = 2
2
Cách 1
LẦN
1
2
3
4
11. (UCLN của hai số nguyên dương là
số lớn nhất mà cả hai số cùng
chia hết cho nó.)
6
i=M i=4
i=2
2. LỰA CHỌN HOẶC THIẾT KẾ THUẬT TOÁN
b. Diễn tả thuật toán
Ví dụ: Tìm UCLN(4,10)
M=4, N=10
4
3
2
1
M=4
N=6
i=3
UCLN
Cách 2
Nếu M=N thì giá trị chung là
UCLN
Ngược lại
Nếu M<N thì i=M,
M>N thì i=N
Nếu M không chia hết cho i hoặc
N không chia hết cho i thì
i = i -1
UCLN(M,N)=i
12. 2. LỰA CHỌN HOẶC THIẾT KẾ THUẬT TOÁN
b. Diễn tả thuật toán
Ví dụ: Tìm UCLN(4,10)
M=4, N=10
LẦN M N i
2 3
UCLN(M,N) = 2
2
1
3
Cách 2
4 10 4
Nếu M=N thì giá trị chung là
UCLN
Ngược lại
Nếu M<N thì i=M
ngược lại i=N
Nếu M không chia hết cho i hoặc
N không chia hết cho i thì
i = i-1
UCLN(M,N)=i
13. N
100
98
96
Lần M
1 2
2 2
3
4 2 94
…
2
48 2 4
49 2 2
UCLN(M,N) = 2
Lần M N
i
2 100 2
1
UCLN(M,N) = 2
Ví dụ: Tìm UCLN(2,100)
Như vậy, tuỳ từng bài toán mà ta
lựa chọn thuật toán cho phù hợp.
Hiệu
chỉnh
- Ít phức tạp, ít thời gian thực hiện.
- Chiếm ít ô nhớ.
- Thực hiện ít phép toán, dễ hiểu. . .
14. 3. VIẾT CHƯƠNG TRÌNH
Ngôn ngữ lập trình + Thuật toán = Chương trình
- Laø vieäc löïa choïn caùch toå chöùc döõ lieäu
vaø söû duïng ngoân ngöõ laäp trình ñeå dieãn
ñaït thuaät toaùn.
- Caàn choïn ngoân ngöõ laäp trình hoaëc
phaàn meàm thích hôïp vôùi thuaät toaùn
15. 3. VIẾT CHƯƠNG TRÌNH
Ví dụ: Viết chương trình sử dụng cách 1:
17. 4. HIỆU CHỈNH
Một chương trình đã viết xong có thể có nhiều lỗi và sẽ
cho kết quả không đúng.
Ta cần thử chương trình bằng vài bộ số Input để phát
hiện lỗi và sửa chương trình. Quá trình này gọi là hiệu
chỉnh (test).
- Moät soá boä Test kieåm tra
thuaät toaùn tìm ÖCLN.
Test:
M = 8; N = 8 ÖCLN = 8
M = 25; N = 10 ÖCLN = 5
M = 2; N = 100 ÖCLN = 2
M = 17; N = 13 ÖCLN = 1
18. 5. VIẾT TÀI LIỆU
Mô tả chi tiết bài toán, thuật toán, chương trình
và hướng dẫn sử dụng.
19. 1
2
3
Giải bài toán trên máy tính được tiến hành qua mấy bước?
a. 3 b. 5 C. 7
Lựa chọn thuật toán ta thường quan tâm đến:
a. Sử dụng ít thời gian, ít bộ nhớ..
b. Sử dụng ít thời gian, ít phép toán.. .
C. Sử dụng ít thời gian, ít bộ nhớ, ít phép toán.. .
Viết chương trình là?
a. Viết thuật toán.
C. Sữ dụng ngôn ngữ lập trình
để trình bày dữ liệu.
b. Sử dụng ngôn ngữ lập trình để diễn đạt đúng thuật toán.
II. BÀI TẬP
BT 2
` ` `
20. Các bước cần phải có khi giải bài toán trên
máy tính là ?
Mục đích của việc hiệu chỉ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.
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.
d. Để tạo ra một chương trình mới.
21. Lựa chọn thuật toán
tối ưu nhất
Diễn tả thuật toán
Lựa chọn hoặc
thiết kế thuật
toan
GIẢI BÀI
TOÁN TRÊN
MÁY TÍNH
Xác định bài
toán
Viết chương
trình
Hiệu
chỉnh
Viết tài
liệu
Input
Output
Chọn ngôn ngữ lập trình
phù hợp.
Tổ chức dữ liệu
Test và sửa sai sót.
Mô tả chương trình
Hướng dẫn sử dụng