-Củng cố rõ hơn về khái niệm về bài toán, thuật toán, dữ liệu, lệnh, ngôn ngữ lập trình và chương trình.. 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
Trang 1TRƯỜNG THPT KRÔNG BUK
(TỔ TOÁN TIN)
KIỂM TRA BÀI CŨ
1 Em hãy so
sánh ngôn
ngữ máy và
ngôn ngữ lập
trình bậc cao?
2 Chương trình
dịch dùng để
làm gì?
Hướng dẫn trả lời
-Viết bằng mã nhị phân,
-Máy tình hiểu ngay,
-Mỗi loại máy có một ngôn ngữ riêng
-Viết bằng ngôn ngữ gần với ngôn ngữ tự nhiên,
-Muốn máy hiểu được phải chuyển sang
ngôn ngữ máy, -Không phụ thuộc vào loại máy,
Chương trình dịch dùng để dịch từ chương trình viết bằng ngôn ngữ khác sang ngôn ngữ máy
Trang 2MỤC ĐÍCH
YÊU CẦU
MỤC ĐÍCH
YÊU CẦU
-Giới thiệu cách dùng máy tính để giải bài toán.
-Củng cố rõ hơn về khái niệm về bài toán, thuật
toán, dữ liệu, lệnh, ngôn ngữ lập trình và chương trình.
-Nắm được nội dung cụ thể các bước cần thực
hiện khi giải một bài toán trên máy tính
Trang 3B1 Xác định bài tốn
B2 Lựa chọn hoặc thiết kế thuật tốn
B3 Viết chương trình B4 Hiệu chỉnhNỘI DUNGB5 Viết tài liệu
Trang 4NỘI DUNG
1 XÁC ĐịNH
BÀI TOÁN
NỘI DUNG
1 XÁC ĐịNH
BÀI TOÁN
1 XÁC ĐỊNH BÀI TOÁN
Ví dụ: Cho bài toán tìm ước chung lớn nhất của hai số
M và N là 2 số nguyên dương
Output tìm UCLN(M,N)
Việc xác định bài toán là xác định rõ hai thành phần:
Input
Hãy xác định bài toán trên?
Trang 52 LỰA CHỌN HOẶC THIẾT KẾ THUẬT TOÁN
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
Cần phải chọn cách giải (Thuật toán) sao cho :
-Thuật toán cần ít thời gian thực hiện, chiếm ít ô nhớ, thực hiện ít phép toán
-Thuật toán ít phức tạp,
NỘI DUNG
1 XÁC ĐỊNH
BÀI TOÁN
2 LỰA CHỌN
HOẶC
THIẾT KẾ
THUẬT
TOÁN
a Lựa chọn
thuật toán
NỘI DUNG
1 XÁC ĐỊNH
BÀI TOÁN
2 LỰA CHỌN
HOẶC
THIẾT KẾ
THUẬT
TOÁN
a Lựa chọn
thuật toán
-Lựa chọn thuật toán và tổ chức dữ liệu
KẾT QUẢ
Trang 62 LỰA CHỌN HOẶC THIẾT KẾ THUẬT TOÁN
b Diễn tả thuật toán
NỘI DUNG
1 XÁC ĐỊNH
BÀI TOÁN
2 LỰA CHỌN
HOẶC
THIẾT KẾ
THUẬT
TOÁN
a Lựa chọn
thuật toán
b Diễn tả thuật
toán
NỘI DUNG
1 XÁC ĐỊNH
BÀI TOÁN
2 LỰA CHỌN
HOẶC
THIẾT KẾ
THUẬT
TOÁN
a Lựa chọn
thuật toán
b Diễn tả thuật
toán
Tìm ước chung lớn nhất của hai số nguyên dương M,N
Nếu M=N thì giá trị chung
là UCLN
Nếu M>N thì UCLN(M,N)=UCLN(M-N,N) Nếu M<N thì
UCLN(M,N)=UCLN(M,N-M)
Chia M cho N lấy dư là R Nếu R=0 thì UCLN(M,N)=N Nếu khác 0 thì gán N cho M
gán R cho N Tiếp tục chia M cho N
Trình bày ý tưởng một vài cách giải Xác định bài toán
Trang 72 LỰA CHỌN HOẶC THIẾT KẾ THUẬT TOÁN
b Diễn tả thuật toán
? Thuật toán
B1: Nhập M, N
B2: Chia M cho N lấy dư
là R
B3: Nếu R=0 thì UCLN(M,N)=N rồi kết thúc
B4: M N , N R chuyển sang
B2
B1:Nhập M,N
B2: Nếu M=N thì giá trị chung là UCLN rồi kết thúc
B3:Nếu M>N thì M M-N
chuyển sang B2 B4: N N-M chuyển sang B2
NỘI DUNG
1 XÁC ĐỊNH
BÀI TOÁN
2 LỰA CHỌN
HOẶC
THIẾT KẾ
THUẬT
TOÁN
a Lựa chọn
thuật toán
b Diễn tả thuật
toán
NỘI DUNG
1 XÁC ĐỊNH
BÀI TOÁN
2 LỰA CHỌN
HOẶC
THIẾT KẾ
THUẬT
TOÁN
a Lựa chọn
thuật toán
b Diễn tả thuật
toán
Trang 82 LỰA CHỌN HOẶC THIẾT KẾ THUẬT TOÁN
b Diễn tả thuật toán Thuật toán
Nhập M,N
N N-M
KT
M>N
S
Đ
S
M M-N Đ
Nhập M,N
Chia M cho N lấy dư R R=0
M N
N R
Đưa KQ KT
Nên lựa chọn cách giải (thuật toán) nào để viết chương trình?
Giải thích tại sao?
Đ S
2 1
NỘI DUNG
1 XÁC ĐỊNH
BÀI TOÁN
2 LỰA CHỌN
HOẶC
THIẾT KẾ
THUẬT
TOÁN
a Lựa chọn
thuật toán
b Diễn tả thuật
toán
NỘI DUNG
1 XÁC ĐỊNH
BÀI TOÁN
2 LỰA CHỌN
HOẶC
THIẾT KẾ
THUẬT
TOÁN
a Lựa chọn
thuật toán
b Diễn tả thuật
toán
Trang 93 VIẾT CHƯƠNG TRÌNH Thuật toán+ Ngôn ngữ lập trình=chương trình
Program Tin UCLN;
Var M, N, R:integer;
Begin Write(‘Nhap vao M,N); Read(M,N); R:=M mod N;
While N<>0 and R<>0 do Begin
M:=N; N:=R;
end;
Write(‘ uoc chung lon nhat la:’, N); End.
Program Tin UCLN;
Var M, N, R:integer;
Begin Write(‘Nhap vao M,N);
Read(M,N);
While M<>N do
IF M>N THEN M:=M-N;
ELSE N:=N-M;
Write(‘ uoc chung lon nhat la:’, M);
NỘI DUNG
1 XÁC ĐỊNH
BÀI TOÁN
2 LỰA CHỌN
HOẶC
THIẾT KẾ
THUẬT
TOÁN
a Lựa chọn
thuật toán
b Diễn tả thuật
toán
3 VIẾT
CHƯƠNG
TRÌNH
NỘI DUNG
1 XÁC ĐỊNH
BÀI TOÁN
2 LỰA CHỌN
HOẶC
THIẾT KẾ
THUẬT
TOÁN
a Lựa chọn
thuật toán
b Diễn tả thuật
toán
3 VIẾT
CHƯƠNG
TRÌNH
Trang 104 HIỆU CHỈNH
M=9,N=15;
NỘI DUNG
1 XÁC ĐỊNH
BÀI TOÁN
2 LỰA CHỌN
HOẶC
THIẾT KẾ
THUẬT
TOÁN
a Lựa chọn
thuật toán
b Diễn tả thuật
toán
3 VIẾT
CHƯƠNG
TRÌNH
4 HIỆU CHỈNH
NỘI DUNG
1 XÁC ĐỊNH
BÀI TOÁN
2 LỰA CHỌN
HOẶC
THIẾT KẾ
THUẬT
TOÁN
a Lựa chọn
thuật toán
b Diễn tả thuật
toán
3 VIẾT
CHƯƠNG
TRÌNH
4 HIỆU CHỈNH
3 3 6 9
15
N
UCLN(M,N)
0 6
4
3 9
3
6 15
2
9 9
1
R M
LẦN
? Chạy thử chương trình với các bộ Input tiêu biểu để
tìm ra Output:
Nhập M,N
Chia 9 cho 15 lấy dư 9 9=0
M 15
N 9
S
Chia 15 cho 9 lấy dư 6 6=0
M 9
N 6
Chia 9 cho 6 lấy dư 3 3=0
M 6
N 3
Chia 6 cho 3 lấy dư 0
Trang 11Nhập M,N
N N-M
KT
M>N
S
Đ
S
M M-N Đ
Nhập M,N
Chia M cho N lấy dư R R=0
M N
N R
Đưa KQ KT Đ
S
4 HIỆU CHỈNH
? Chạy 2 thuật toán trên theo từng bước và điền vào phiếu học tập với
bộ Input(M, N): M=6, N=1 để có được Output
NỘI DUNG
1 XÁC ĐỊNH
BÀI TOÁN
2 LỰA CHỌN
HOẶC
THIẾT KẾ
THUẬT
TOÁN
a Lựa chọn
thuật toán
b Diễn tả thuật
toán
3 VIẾT
CHƯƠNG
TRÌNH
4 HIỆU CHỈNH
NỘI DUNG
1 XÁC ĐỊNH
BÀI TOÁN
2 LỰA CHỌN
HOẶC
THIẾT KẾ
THUẬT
TOÁN
a Lựa chọn
thuật toán
b Diễn tả thuật
toán
3 VIẾT
CHƯƠNG
TRÌNH
4 HIỆU CHỈNH
Trang 125 VIẾT TÀI LIỆU
•Tài liệu phải mô tả chi tiết toàn bộ bài toán, thuật toán, thiết kế chương trình, kết quả thử nghiệm và hướng dẫn sử dụng,
•Tài liệu giúp cho việc sử dụng chương trình và đề xuất những khả năng hoàn thiện thêm
Các bước trên có thể lặp đi lặp lại nhiều lần cho đến khi ta cho rằng chương trình đã làm việc đúng đắn và hiệu quả
NỘI DUNG
1 XÁC ĐỊNH
BÀI TOÁN
2 LỰA CHỌN
HOẶC
THIẾT KẾ
THUẬT
TOÁN
a Lựa chọn
thuật toán
b Diễn tả thuật
toán
3 VIẾT
CHƯƠNG
TRÌNH
4 HIỆU CHỈNH
5 VIẾT TÀI
LIỆU
NỘI DUNG
1 XÁC ĐỊNH
BÀI TOÁN
2 LỰA CHỌN
HOẶC
THIẾT KẾ
THUẬT
TOÁN
a Lựa chọn
thuật toán
b Diễn tả thuật
toán
3 VIẾT
CHƯƠNG
TRÌNH
4 HIỆU CHỈNH
5 VIẾT TÀI
LIỆU
Trang 13CÂU HỎI TRẮC NGHIỆM
1 Giải bài toán trên máy tính được tiến hành qua mấy bước?
a) 1; b) 3: c) 5; d) 7.
2 Thuật toán tốt 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, nhiều ít bộ nhớ, ít phép toán
3 Viết chương trình là?
a) Viết thuật toán;
b) Sử dụng ngôn ngữ lập trình để diễn đạt;
c) Sử dụng ngôn ngữ lập trình để diễn đạt đúng thuật toán;
NỘI DUNG
1 XÁC ĐỊNH
BÀI TOÁN
2 LỰA CHỌN
HOẶC
THIẾT KẾ
THUẬT
TOÁN
a Lựa chọn
thuật toán
b Diễn tả thuật
toán
3 VIẾT
CHƯƠNG
TRÌNH
4 HIỆU CHỈNH
5 VIẾT TÀI
LIỆU
NỘI DUNG
1 XÁC ĐỊNH
BÀI TOÁN
2 LỰA CHỌN
HOẶC
THIẾT KẾ
THUẬT
TOÁN
a Lựa chọn
thuật toán
b Diễn tả thuật
toán
3 VIẾT
CHƯƠNG
TRÌNH
4 HIỆU CHỈNH
5 VIẾT TÀI
LIỆU