4 Cñng cè Qua bài học hôm nay các em cần nắm vững các bước để giải một bài toán trªn m¸y tÝnh gåm cã: B1: Xác định bài toán B2: Lùa chän hoÆc thiÕt kÕ thuËt to¸n B3: Viết chương trình B4[r]
Trang 1Chương I: Một Số Khái Niệm Cơ Bản Về Tin Học
Tiết 18, Bài 6: Giải Toán Trên Máy Tính
I Mục Đích Và Yêu Cầu
- Giúp học sinh nắm được trình tự các bước tiến hành giải bài một toán trên máy tính
- Biết cách lựa chọn thuật toán tối ưu cho mỗi bài toán
- Phát triển năng lực tư duy của mỗi học sinh
II Phương Tiện
- giáo viên: sách giáo khoa, giáo án, bảng phụ
- học sinh: sách giáo khoa, sách tham khảo
II Nội Dung Tiết Dạy
1 Tổ chức lớp: ổn định lớp, kiểm tra sĩ số.
2 Kiểm tra bài cũ:
Câu hỏi:
Câu1: Em hiểu thế nào là ngôn ngữ lập trình? Có mấy loại
ngôn ngữ lập trình?
Câu2: Tìm Input, Output của bài toánsau:
Cho 2 số nguyên a,b Tim max của 2 số đó?
3 Tiến trình tiết dạy
Hoạt động của giáo viên Hoạt động của học sinh
- Đặt vấn đề: Chúng ta đã biết máy tính là
công cụ giúp đỡ con người rất nhiều trong
cuộc sống Vì vậy chúng ta phải học cách
sử dụng máy tính Học cách sử dụng máy
tính thực chất là học cách giao cho máy
tính những việc ta muốn nó làm Việc giải
bài toán trên máy tính cũng là cách sử dụng
máy tính Để biết các bước để giải một bài
toán trên máy tính là gì? và thực hiện như
thế nào? ta cùng nhau tìm hiểu nội dung bài
học hôm nay tiết 18, bài 6
“ Giải Toán Trên Máy Tính”
- Học sinh nghe giảng
Trang 2Hoạt động của giáo viên Hoạt động của học sinh Các em đã học cách giải một bài toán thông
thường baogiờ cũng gồm các bước như
- Xác định bài toán
- Nêu ý tưởng bài toán
- Giải bài toán
- Kiểm tra kết quả
Cũng giống như vậy việc giải một bài toán
trên máy tính cũng gồm có 5 bước sau:
- 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
Để hiểu rõ hơn các bước thực hiện như thế
nào ta đi vào tìm hiểu từng bước một như sau
1 Xác định bài toán
- Đây là bước đầu tiên trong quá trình giải
toán trên máy tính
- Câu hỏi: Theo các em xác định bài toán là
xác định những phần nào
- Trước mỗi bài toán ta phải tiến hành xác
định bài toán tức là xác định
+ input: các dữ liệu bài toán cho
+ Output: yêu cầu của bài toán
nhằm mục đích lựa chọn ngôn ngữ lập trình
và xây dựng thuật toán thích hợp
- Chúng ta cùng nhau xét VD sau
Câu hỏi: Xác định bài toán sau:
Cho số nguyên dương a, b.Tìm UCLN của 2
số trên
- Sau khi xác định bài toán ta phải lựa chọn
hoặc thiết kế thuật toán thích hợp để giải bài
đó Ta xét mục 2 của bài học
2 Lựa Chọn Hoặc Thiết Kế Thuật Toán
Đây là bước quan trọng nhất trong quá trình
giải toán trên máy tính
Ta đi vào mục thứ nhất
- Học sinh nghe giảng
- Học sinh ghi bài
-Trả Lời: Xác định input và
output của bài toán
- Học sinh nghe giảng
trả lời: Input: 2 số nguyên
dương a, b Output: UCLN của 2 số a, b
Trang 3a- Lựa chọn thuật toán
Câu hỏi: Nêu khái niệm thuật toán?
Câu hỏi: Thuật toán của bài toán này có thể
dùng để giải đựơc bài toán khác hay không?
Câu hỏi: Vậy mỗi bài toán có phải chỉ có duy
nhất một thuật toán giải bài toán hay không?
- Đúng vậy mỗi bài toán không phải chỉ có
duy nhất một thuật toán.Ta xét bài toán tìm
kiếm ta có 2 thuật toán như sau:
C1: thuật toán tìm kiếm tuần tự
C2: thuật toán tìm kiếm nhị phân
- Như vậy mỗi thuật toán chỉ giải1 bài toán
duy nhất nhưng mỗi bài toán có thể có nhiều
thuật toán giải khác nhau, do đó ta phải lựa
chọn hoặc thiết kế thuật toán tối ưu
- Thuật toán tối ưu là thuật toán có các đặc
điểm sau:
+ Dễ hiểu
+ Trình bày khoa học
+ Thời gian chạy nhanh
+ Tốn ít bộ nhớ
- khi lựa chon thuật toán người ta thường quan
tâm đến thời gian thực hiện, số lượng ô nhớ…
trong đó người ta quan tâm nhất là thời gian
thực hiện
Câu hỏi: Đối với 1 dãy đã được sắp xếp thì
thuật toán Tìm kiếm nhị phân và tìm kiếm
tuần tự thuật toán nào thực hiện ít thao tác
hơn?
- một tiêu chí khác mà nhiều người quan tâm
khi lựa chọn hoặc thiết kế thuật toán là ít phức
tạp
- Sau khi lựa chọn hoặc thiết kế thuật toán ta
phải biểu diễn thuật toán đó
Trả lời: 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ật tự nhất định sao cho sau khi thực hiện dãy các thao tác đó từ input ta thu
được output của bài toán
Trả lời: Không Trả lời: Không
- Học sinh nghe giảng
- Học sinh ghi bài
- Học sinh ghi bài
Trả lời: thuật toán tìm kiếm nhị
phân
Trang 4b- Diễn tả thuật toán
- Câu hỏi: Có mấy cách để diễn tả 1 thuật
toán?
-Ta cùng nhau xét VD cụ thể sau:
VD: Tìm UCLN của 2 số nguyên a, b
xác định bài toán ta đã thực hiện ở bước1
Sau khi xác định bài toán ta cùng nhau xây
dựng ý tưởng thuật toán như sau:
Ta xét các trường hợp của a và b
+ nếu a=b thi ta có ngay UCLN(a,b)=a=b
+ nếu a>b thì UCLN(a,b)=UCLN(b,a-b)
+ nếu a<b thì UCLN(a,b)=UCLN(a,b-a)
Dựa vào ý tưởng thuật toán ta có thể biểu diễn
thuật toán bằng cách liệt kê như sau:
B1: nhập 2 số nguyên a, b
B2: nếu a=b thì đưa ra UCLN rồi kết thúc
B3: nếu a>b thì a->a-b rồi quay lại bước 2
B4: nếu a<b thì b->b-a rồi quay lại bước 2
B5: đưa ra kết luận
Để các em hiểu rõ hơn cô có bảng phụ sau
Lần
=>UCLN(10,15)=UCLN(10,5)=UCLN(5,5)=5
-Sau khi biểu diễn thuật toán ta phải viết
chương trình cho thuật toán đó.Đó là bước 3
của quá trình giải toán trên máy tính
3 Viết Chương Trình
Trả Lời: Có 2 cách, đó là
+ Liệt kê + Sơ đồ khối
- Học sinh nghe giảng kết hợp ghi bài
- Học sinh tự viết cách biểu diễn bằng sơ đồ khối vào vở
Trang 5- Câu hỏi: Có mấy loại ngôn ngữ lập trình?
Đó là những ngôn ngữ nào?
- 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 phù hợp để diễn tảđúng thuật
toán
-Lưu ý khi viết ngôn ngữ nào thì phải tuân
theo đúng quy định của ngôn ngữ đó
VD: trong Pascal và trong C
+Lệnh bắt đầu chương trình
begin {
+ Lệnh kết thúc chương trình
end }
- Trong phần viết thuật toán thì chương trình
dịch chỉ có thể phát hiện lỗi ngữ pháp chứ
không thể phát hiện lỗi thuật toán cho nên sau
khi viết chương trình ta phải kiểm tra lại thuật
toán
Công việc này được thực hiện trong bước 4
hiệu chỉnh
4 Hiệu Chỉnh
- Chương trình được viết không phải khi nào
cũng đảm bảo tính đúng đắn, có thể mắc sai
sót cho nên sau khi viết xong phải thử lại với
các bộ dữ liệu in/output tiêu biểu khác nhau
Các bộ in/output như vậy gọi là các test Nếu
có sai sót ta phải xem xét chương trình rồi
sửa lại cho đúng Quá trình này gọi là hiệu
chỉnh
VD để kiểm tra tính đúng đắn của thuật toán
tìm UCLN như VD trên ta có thể thử với các
bộ test sau
a1, b=3 => UCLN(1,3)=1
a= 7, b=4 => UCLN(7,4)=1
a=7, b=14 => UCLN(7,14)= 7
- Sau khi đã hoàn thành thuật toán và sửa các
lỗi chương trình, bước cuối cùng của quá trình
giải toán trên máy tính là viết tài liệu
Trả Lời: Có 3 loại ngôn ngữ lập
trình là:
+ ngôn ngữ máy + hợp ngữ
+ ngôn ngữ bậc cao
- Học sinh ghi bài
- Học sinh ghi bài
- Học sinh nghe giảng
Trang 65 Viết Tài Liệu
Viết tài liệu nhằm mô tả lại thuật toán, viết
chương trình, và hướng dẫn sử dụng chương
trình đó
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
- GV cho HS đọc SGK mục 5 và trả lời câu
hỏi sau vào vở
Câu hỏi: + Tài liệu này do ai viết?
+ Tài liệu mô tả cái gì?
+ Tài liệu viết cho ai?
- Học sinh ghi bài
- Đọc SGK và thảo luận trả lời câu hỏi vào vở
Trả lời:
+ Tài liệu do người lập trình viết
+ Tài liệu mô tả 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 viết cho người sử dụng chương trình
4 Củng cố
Qua bài học hôm nay các em cần nắm vững các bước để giải một bài toán trên máy tính gồm có:
B1: Xác định bài toán
B2: Lựa chọn hoặc thiết kế thuật toán
B3: Viết chương trình
B4: Hiệu chỉnh
B5: Viết tài liệu
Trong đó đặc biệt chú ýđến bước lựa chọn hoặc thiết kế thuật giải
5 Bài tập về nhà
Yêu cầu học sinh làm bài tập SGK trang 51 và sách BT trang 23,24
6 Rút kinh nghiệm tiết dạy sau
Trang 7Nhận Xét của Giáo viên hướng dẫn chuyên môn
Ngày tháng năm 2007
(Kí ghi rõ họ tên)