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: xác định bài toán, xây dựng và lựa chọn thuật toán, lựa chọn cấu trúc dữ liệu, viết chương trình, hiệu chỉnh,
Trang 1§6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH
Ngày soạn: ………
Ngày Giảng: ……
Tiết: 17 Lớp: …………
I MỤC TIÊU CẦN ĐẠT
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: xác định bài toán, xây dựng và lựa chọn thuật toán, lựa chọn cấu trúc dữ liệu, viết chương trình, hiệu chỉnh, đưa ra kết quả và hướng dẫn sử dụng
2 Kỹ năng:
Vận dụng giải bài toán trên máy tính
3 Thái độ:
Học sinh yêu thích, nghiêm túc, đúng đắn khi giải toán trên máy tính
II ĐỒ DÙNG DẠY HỌC
1 Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên,
mô hình
2 Chuẩn bị của học sinh: Sách giáo khoa, vở, đồ dùng học tập.
III TIẾN TRÌNH LÊN LỚP, NỘI DUNG BÀI GIẢNG
1 Ổn định lớp (1 ’ )
- Ổn định lớp
- Lớp trưởng báo cáo sĩ số
2 Kiểm tra bài cũ và gợi động cơ (5 ’ )
- Kiểm tra bài cũ
Câu hỏi 1: Thế nào là ngôn ngữ lập trình? Có mấy loại ngôn ngữ lập trình?
Trả lời: - Ngôn ngữ lập trình là ngôn ngữ dùng để viết chương trình cho máy tính
- Có 3 loại ngôn ngữ lập trình: Ngôn ngữ máy, hợp ngữ và ngôn ngữ bậc cao
Câu hỏi 2: Thế nào là ngôn ngữ bậc cao?
Trang 2Trả lời: - Ngôn ngữ bậc cao là ngôn ngữ trong đó các câu lệnh được viết gần với ngôn ngữ tự nhiên, có tính độc lập cao, ít phụ thuộc vào các loại máy cụ thể và nó đều có một chương trình dịch dùng để dịch những chương trình viết bằng ngôn ngữ này sang ngôn ngữ máy
- Gợi động cơ
Biết rằng máy tính là công cụ hỗ trợ con người rất nhiều trong cuộc sông, nhưng để cho máy tính thực hiện giải bài toán thì ta phải đưa vào máy tính lời giải của bài toán đó dưới dạng câu lệnh Vậy các bước để giải một bài toán trên máy tính là gì?
3 Bài giảng
Nội dung Hoạt động của giáo
viên
Hoạt động của học sinh
TG
Việc giải toán trên máy
thường được 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 thuật
toán
Bước 3: Viết chương
tình
Bước 4: Hiệu chỉnh.
Bước 5: Viết tài liệu.
1 Xác định bài toán
- Là việc xác định
Input/Output và mối
quan hệ giữa chúng Từ
đó xác định ngôn ngữ
lập trình và cấu trúc dữ
liệu một cách thích hợp
Ví dụ: Tìm số lớn nhất
trong 3 số a, b, c bất kì?
+ Xác định bài toán:
Input: các số thực a, b, c
Output: GTLN (a, b, c)
2 Lựa chọn hoặc thiết
GV: Khi ta viết một bài
văn bình thường ta phải làm như thế nào?
GV: Tương tự như làm
văn khi ta giải toán trên máy tính thường phải tiến hành qua các bước –
GV giới thiệu các bước giải toán trên máy tính
GV: Xác định bài toán là
cần phải xác định cái gì?
GV: Vậy việc xác định
bài toán nhằm mục đích gì?
GV: Phân tích và nhận
xét
HS: Phải xây
dựng dàn bài chi tiết rồi mới viết bài
HS: Xác định
Input và Output
HS: Nhằm lựa
chọn thuật toán, thể hiện các đại lượng
đã cho, các đại lượng phát sinh
và ngôn ngữ lập trình thích hợp
HS: Nghe
giảng
Trang 3kế thuật toán
a) Lựa chọn thuật toán
- Lựa chọn thuật toán
phù hợp đã có để giải bài
toán
- Các tài nguyên: Thời
gian thực hiện, số lượng
ô nhớ…
- Lựa chọn thuật toán
sao cho việc viết chương
trình ít phức tạp
b) Diễn tả thuật toán
- Bằng cách liệt kê hoặc
sơ đồ khối
-Ví dụ: Tìm UCLN của 2
số nguyên dương M, N
+ Xác định bài toán
Input: M, N
Output: UCLN (M, N)
+ Ý tưởng:
· Nếu M=N thì
UCLN(M,N) =M hoặc N
· Nếu M<N thì UCLN
(M,N)=UCLN(M,N-M)
· Nếu M>N thì UCLN
(M,N)=UCLN(M-N,N)
+ Thuật toán:
· Cách liệt kê
Bước 1: Nhập M, N
Bước 2: Nếu M = N thì
UCLN = M
Bước 3: Nếu M > N thì
M M – N rồi quay lại
B2 để kiểm tra lại
Bước 4: N N – M rồi
GV: Gọi 1 em nhắc lại
khái niệm thuật toán?
GV:Với mỗi bài toán có
phải chỉ có một thuật toán duy nhất?
Định hướng: Mỗi thuật
toán chỉ giải được một bài toán nào đó, nhưng cũng có thể có nhiều thuật toán cùng giải một bài toán, vậy ta phải lựa chọn thuật toán phù hợp nhất để giải bài toán cho trước
- Sau khi chọn thuật toán thích hợp, ta đi tìm cách diễn tả thuật toán
GV: Đưa ra ví dụ, yêu
cầu HS xác định Input/Output
GV: Hướng dẫn và gợi ý
cho HS xây dựng ý tưởng bài toán
GV: Từ ý tưởng trên
chúng ta sẽ cùng nhau đi xây dựng thuật toán
GV: Phân tích các bước
trong thuật toán
HS: Thuật toán
là một dãy hữu hạn các thao tác được sắp xếp theo một trình tự xác định sao cho sau khi thực hiện dãy thao tác ấy, từ input của bài toán, ta nhận được output cần tìm
HS: Chú ý
lắng nghe
HS: Trả lời.
HS: Tham gia
xây dựng bài
Trang 4Nhập M và N
?
N N - M
Đưa ra M-kết thúc M M - N
quay lai B2
Bước 5: Đưa ra UCLN
và kết thúc
· Sơ đồ khối
Sai sai
Đúng đúng
3 Viết chương trình
- Là 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
- Viết chương trình trong
ngôn ngữ nào thì phải
tuân theo quy định ngữ
pháp của ngôn ngữ đó
4 Hiệu chỉnh
Thử chương trình bằng
nhiều bộ Input tiêu biểu
để kiểm tra tính đúng
đắn của thuật toán Nếu
GV: Từ cách liệt kê trên
yêu cầu HS vẽ sơ đồ khối
GV: Yêu cầu HS tìm
UCLN của 25 và 10, của
9 và 11
GV: Cùng HS chữa 1 ví
dụ và yêu cầu HS làm ví
dụ còn lại
GV: Đặt vấn đề
Ta đã có được thuật toán của một bài toán công việc tiếp theo là phải chuyển đổi thuật toán đó sang chương trình
- Trước tiên ta lựa chọn ngôn ngữ lập trình thích hợp Có mấy loại ngôn ngữ lập trình, đó là những loại nào?
GV: Phân tích và nhận
xét
Có nhiều ngôn ngữ lập trình nhưng trong nội dung học môn Tin học ở nhà trường Phổ thông chúng ta chỉ học Ngôn ngữ Pascal (ở lớp 11)
HS: Chú ý
lắng nghe
HS: 1 em lên
bảng vẽ SDK
HS: Tập trung
làm bài
UCLN (25, 10)= 5 UCLN (9, 11)= 1
HS: Chú ý
lắng nghe
HS: Tập trung
suy nghĩ và xây dựng bài
- Có nhiều loại như Basic, Pascal, C, C++, Java…
Trang 5có sai sót ta phải sửa
chương trình rồi thử lại
Qúa trình này gọi là hiệu
chỉnh
Ví dụ: Kiểm chứng tính
đúng đắn của chương
trình giải
PTBH ax2 + bx +c = 0 ta
sử dụng các bộ test sau
△ > 0: a=1, b=4, c=-3
(chương trình đưa ra 2
nghiệm)
△ = 0: a=1, b=-4, c=4
(chương trình đưa ra 1
nghiệm)
△ < 0: a=1, b=2, c=4
(chương trình thông báo
vô nghiệm)
5 Viết tài liệu
- Viết tài liệu là 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
- Tài liệu giúp í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
- Chú ý các bước trên có
thể 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ả
GV: Chương trình được
viết không phải lúc nào cũng đảm bảo hoàn toàn đúng đắn, do đó phải thử chương trình bằng các
bộ Input đặc trưng để phát hiện sai sót
GV: Các bộ
Input/Output tương ứng gọi là gì?
GV: Nêu ví dụ và yêu
cầu HS làm bài
GV: Cho ví dụ
Lấy một số bộ Test với chương trình tìm UCLN của 2 số M và N
GV: Yêu cầu HS lấy
một số ví dụ khác và cho
bộ Test để kiểm tra
GV: Sau khi chương
trình đã hoàn thiện công việc còn lại là viết tài liệu
GV: Thuyết trình bài
giảng
HS: Nghe
giảng và ghi bài
HS: Gọi là
Test
HS: Tập trung
suy nghĩ tham gia xây dựng bài
HS: Tập trung
nghe giảng và ghi bài
4.Củng cố (4 ’ )
- Các bước để giải bài toán trên máy tính.
- Cách lựa chọn thuật toán và viết chương trình
5 Dặn dò (1 ’ )
- Về nhà làm bài 1, 2, 3 SGK trang 51.
Trang 6- Đọc trước bài 7: Phần mềm máy tính.
IV Tự rút kinh nghiệm