Các thông tin đó cần được nghiên cứu cẩn thận để có thể lựa chọn thuật toán, cách thể hiện các đại lượng đã cho, các đại lượng phát sinh trong quá trình giải bài toán và ngôn ngữ lập trì[r]
Trang 1Ngày giảng Lớp Sĩ số
Tiết 18: §6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH
I Mục tiêu:
1 Kiến thức:
Biết các bước cơ bản khi tiến hành giải bài toán trên máy tính
2 Kỹ năng:
Biết xác định bài toán, lựa chọn thuật toán hoặc thiết kế thuật toán để giải một số bài toán đơn giản
II Chuẩn bị của giáo viên và học sinh.
1 Giáo viên: Đồ dùng dạy học: một máy tính (nếu có)
2 Học sinh: học bài cũ, đọc trước bài mới
III Tiến trình bài dạy:
1 Ổn định tổ chức:
2 Kiểm tra bài cũ: Không
Em hiểu ngôn ngữ lập trình là gì?
Chương trình dịch dùng để làm gì?
3 Nội dung bài mới:
GV: Đặt vấn đề: Học sử dụng
máy tính thực chất là học cách
giao cho máy tính việc mà ta
muốn nó làm Khả năng khai
thác của máy tính phụ thuộc rất
nhiều vào sự hiểu biết của người
dùng Việc giải bài toán trên
máy tính phụ thuộc rất nhiều
vào sự hiểu biết của người dùng
Vậy việc giải bài toán thường
được tiến hành qua những bước
nào?
HS: Suy nghĩ trả lời
Giải bài toán trên máy tính thường được tiến hành qua các bước sau:
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.
Trang 2GV: Kết luận
Bước 4: Hiệu chỉnh.
Bước 5: Viết tài liệu.
Hoạt động 1: Tìm hiểu bước xác
định bài toán.
GV: Các em đã biết cách xác
định bài toán, vậy hãy nhắc lại
khi xác định bài toán cần phải
xác định những thành phần nào?
HS: Trả lời câu hỏi
GV: Kết luận và đưa ra ví dụ
Ví dụ: trong một bài toán Tin
học khi đề cập đến một số
nguyên dương N, là tuổi của một
người, có thể chỉ rõ phạm vi giá
trị của N từ 0 đến 150, để lựa
chọn cách thể hiện N bằng kiểu
dữ liệu thích hợp
1 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 và Output và mối quan hệ giữa chúng Các thông tin đó cần được nghiên cứu cẩn thận để có thể lựa chọn thuật toán, cách thể hiện các đại lượng đã cho, các đại lượng phát sinh trong quá trình giải bài toán và ngôn ngữ lập trình thích hợp
Hoạt động 2: Tìm hiểu bước lựa
chọn hoặc thiết kế thuật toán.
GV: Chúng ta cùng xét ví dụ
Tôi nhờ 2 người cùng đi ra chợ
mua 1 quyển vở và 1 chiếc bút
- Người thứ nhất đi mua bút
mang về rồi lại đi mua quyển
vở
- Người thứ hai đi mua bút, vở
về cùng một lần
Nếu tôi nói đó là một bài toán
thì tôi đã có 2 thuật toán để giải
bài toán này Vậy em hãy cho
biết thuật toán nào tốt hơn?
HS: thuật toán 2
GV: Qua ví dụ trên ta thấy bước
lựa chọn hoặc thiết kế thuật toán
là bước quan trọng nhất để giải
một 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:
* Mỗi thuật toán chỉ giải một bài toán nào
đó, nhưng có thể có nhiều thuật toán khác nhau cùng giải một bài toán Cần thiết kế hoặc chọn một thuật toán phù hợp đã có để giải bài toán cho trước
* Khi thiết kế hoặc lựa chọn thuật toán người
ta thường quan tâm đến các tài nguyên như thời gian thực hiện, số lượng ô nhớ,
* Một tiêu chí khác được rất nhiều người quan tâm là cần thiết kế hoặc lựa chọn thuật toán sao cho việc viết chương trình cho thuật toán đó ít phức tạp
Trang 3GV: Trong các loại tài nguyên,
người ta quan tâm nhiều nhất
đến thời gian vì đó là dạng tài
nguyên không tái tạo được
GV: Em hãy nhắc lại một thuật
toán có thể xây dựng bằng
những cách nào?
HS: Trả lời câu hỏi
Bằng cách liệt kê
Bằng sơ đồ khối
GV: Diễn tả thuật toán nói đơn
giản chính là cách chúng ta xây
dựng thuật toán
GV: Đưa ra ví dụ để học sinh
thực hiện
GV: Hướng dẫn, giải thích
b) Diễn tả thuật toán:
Ví dụ:
Xác định bài toán
- Input: Nhập M, N;
- Output: ƯCLN(M, N).
ý tưởng: Sử dụng những điều đã biết sau:
- Nếu M = N thì giá trị chung đó là ƯCLN của M và N;
- Nếu M < N thì ƯCLN(M, N) = ƯCLN(N M, M);
- Nếu M > N thì ƯCLN(M, N) = ƯCLN(N, M N)
Thuật toán
Thuật toán diễn tả bằng cách liệt kê Bước 1: Nhập M, N;
Bước 2: Nếu M = N thì lấy giá trị chung này
làm ƯCLN rồi chuyển đến bước 5;
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;
Bước 5: Đưa ra kết quả ƯCLN; Kết thúc.
Hoạt động 3: Tìm hiểu bước viết
chương trình.
GV: Viết chương trình là làm
công việc gì?
HS: Suy nghĩ trả lời
GV: Viết chương trình trong
ngôn ngữ lập trình nào thì cần
phải tuân theo đúng quy định
ngữ pháp của ngôn ngữ đó
Chương trình dịch chỉ
có thể phát hiện và thông báo lỗi
về mặt ngữ pháp
3.Viết chương trình:
- Việc viết chương trình là tổng hợp giữa việc lựa chọn cách tổ chức dữ liệu và sử dụng ngôn ngữ lập trình để diễn đạt đúng thuật toán
- Khi viết chương trình nên chọn một ngôn ngữ lập trình hoặc một phần mềm chuyên dụng thích hợp với thuật toán
Hoạt động 4: Tìm hiểu bước
hiệu chỉnh.
GV: Khi nào cần hiệu chỉnh
chương trình?
4 Hiệu chỉnh:
Sau khi chương trình viết song có thể có nhiều lỗi, vì vậy cần phải thử chương trình bằng cách thực hiện với một số input tiêu biểu phụ thuộc vào đặc thù của bài toán
Trang 4HS: Suy nghĩ trả lời
GV: Tổng hợp
Nếu có sai sót, ta phải sửa chữa chương trình rồi thử lại
Hoạt động 5: Tìm hiểu bước viết
tài liệu.
GV: Khi nào thì viết tài liệu và
trong tài liệu cần mô tả những
gì?
HS: Suy nghĩ trả lời
GV: Nhận xét
GV: Tài liệu rất có ích cho
người sử dụng chương trình và
cho việc đề xuất những khả năng
hoàn thiện thêm
5 Viết tài liệu:
Tài liệu phải mô tả 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
IV Củng cố:
- Nhắc lại các bước để giải bài toán trên máy tính
- Lưu ý: Các bước 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ả
V Bài về nhà:
- Trả lời các câu hỏi cuối bài học
- Đọc trước bài 7 và bài 8 tiết sau học