I.Mục đích, yêu cầu : - Học sinh nắm được nội dung 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.. - Hiểu rõ hơn các khái niệm như : bài toán, thuật toán, dữ liệu, lệnh, ng
Trang 1Giáo Án 6
GIẢI BÀI TOÁN TRÊN MÁY TÍNH
Giáo viên hướng dẫn : Thầy Trần Doãn Vinh Sinh viên: Đào Ngọc Hà Lớp K56A CNTT - ĐHSPHN
I.Mục đích, yêu cầu :
- Học sinh nắm được nội dung 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
- Hiểu rõ hơn các khái niệm như : 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
- Giúp học sinh thêm yêu thích môn học
II Phương pháp – Phương tiện:
1 Phương pháp:
Kết hợp các phương pháp giảng dạy như thuyết trình, vấn đáp, …
2 Phương tiện :
- Sách giáo khoa Tin học 10
- Vở ghi lý thuyết Tin học 10
- Sách tham khảo (nếu có)
III.Tiến trình lên lớp, nội dung bài giảng:
A Ổn định lớp : (1’):
- Yêu cầu lớp trưởng báo cáo sĩ số
B Kiểm tra bài cũ và gợi động cơ (2’)
Trong quá trình học bài mới sẽ kết hợp kiểm tra bài cũ và cho điểm
Trang 2Trong bài trước, chúng ta đã biết có thể giải bài toán bằng cách
dùng máy tính.Vậy để giải một bài toán bằng máy tính thường được tiến hành như thế nào? Để hiểu rõ hơn, hôm nay chúng ta sẽ học bài: Giải bài toán trên máy tính
C Nội dung bài giảng:
Nội dung Hoạt động giữa thầy và trò Thời
gian
1.Xác định bài toán
Mỗi bài toán gồm 2
thành phần: Input và
Output
Xác định bài toán là
xác định rõ hai thành
phần này và mối quan
hệ giữa chúng Cần xác
định các thông tin đó
cẩn thận để lựa chọn
thuật toán
Thành phần Input cần xác
định rõ phạm vi của các giá trị để chọn cách thể hiện dữ liệu thích hợp
5'
2.Lựa chọn hoặc thiết
kế thuật toán
a Lựa chọn thuật
toán
- Là bước quan trọng
Hỏi:
Thế nào là lệnh và thuật toán?
Không nên theo đuổi việc định nghĩa thật chính xác thế nào là lệnh, chương trình
7'
Trang 3nhất để giải một bài
toán Mỗi bài toán có
thể có nhiều thuật giải
Cần thiết kế hoặc chọn
một thuật toán phù hợp
để giải bài toán cho
trước
Ví dụ :
Bài toán tìm kiếm,
nếu dãy đã sắp xếp
thuật toán tìm kiếm nhị
phân cần ít thao tác hơn
thuật toán tìm kiếm
tuần tự
- Các tiêu chí lựa chọn
hoặc thiết kế thuật toán
:
Thời gian thực hiện
Số lượng ô nhớ
Độ phức tạp của
thuật toán
Chú ý khi lựa chọn
thuật toán cần phải
chọn thuật toán có độ
thời gian thực hiện
nhanh
b Diễn tả thuật toán
mà nên giới thiệu thông qua các chương
trình cụ thể: Ví dụ trên MSDOS cd\ là
một lệnh Lệnh đó có tác dụng quay trở
về tên ổ cứng mà con trỏ DOS đang
đứng Hoặc lệnh dir : cho phép xem
những file đang có trong một thư mục…
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
Yếu tố thời gian phụ thuộc vào nhiều yếu
tố : Ngôn ngữ lập trình, cấu hình máy,
…và số lượng các phép toán trong một chương trình
Hỏi: Có mấy cách để diễn tả thuật toán ?
2 cách:
- Liệt kê (Thuật giải của nhà bác học cổ Ơclid)
- Sơ đồ khối
Là công cụ giúp ta diễn tả thuật toán một cách trực quan Sơ đồ khối được tạo bởi
4 loại khối nối với nhau bằng các cung
10'
Trang 4Ví dụ: Tìm UCLN
của hai số nguyên
dương M và N
Xác định bài toán
- Input: Cho 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(M,N)
- Nếu M < N thì
ƯCLN(M,N) =
ƯCLN(M<N-M)
- Nếu M > N tnì
ƯCLN(M,N) =
ƯCLN(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ì ƯCLN(M,N) = M
- Bước 3: Nếu M > N
thì M = M - N Quay
lại bước 2
- Bước 4: N = N - M
Quay lại bước 2
- Bước 5: Đưa ra kết
qủa ƯCLN rồi kết thúc
Cung
Diễn tả thuật toán trên bằng sơ đồ khối ?
Ví dụ mô phỏng việc thực hiện thuật toán trên:
Đúng
Nhập M và N
M = N ?
Đưa ra M rồi kết thúc
M = M - N Đúng
M=10
N <- N-M N <- N-M M<- M-N
Trang 53 Viết chương trình
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
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
Mỗi ngôn ngữ lập trình có cấu trúc và những quy định ngữ pháp riêng
Chương trinh dịch sẽ phát hiện và thông báo các lỗi về mặt ngữ pháp
4'
4 Hiệu chỉnh
Sau khi viết xong,
cần phải thử chương
trình bằng cách thực
hiện nó với một số bộ
Input phụ thuộc vào
đặc điểm của bài
toán.Bằng cách đó ta
được các bộ Output
tương ứng
Nếu gặp lỗi ta phải sửa
lại chương trình
Quá trình trên gọi là
hiệu chỉnh
Ví dụ:
Đề xuất các Test tiêu biểu để kiểm tra tính đúng đắn của chương trình:
Trả lời:
Giải phương trình ax2 + bx + c = 0 Xét Delta
Delta < 0 phương trình vô nghiệm Delta = 0 phương trình 1 nghiệm kép Delta > 0 phương trình 2 nghiệm phân biệt
8'
Trang 6D Củng cố bài.(2')
Như vậy qua bài này chúng ta đã hiểu rõ hơn về cách máy tính làm việc với một bài toán và cách giải một bài toán bằng máy tính Để có thể làm được một số bài tập chúng ta cần nắm được các bước cần thực hiện khi giải một bài toán bằng máy tính
E Bài tập về nhà.(1')
Tìm hiểu về thuật giải ơclid và áp dụng vào bài toán sau:
Có 15 que diêm, Hai người chơi luân phiên bốc diêm, mỗi lượt, mỗi người bốc từ 1 đến 3 que diêm Người nào phải bôc cuối cùng sẽ thua cuộc Hãy viết thuật giải để người đi trước luôn thắng cuộc
Gợi ý: bằng phương pháp liệt kê ra từng bước
Các bộ Input và
Output tương ứng được
gọi là Test
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 và
hướng dẫn sử dụng
Tài liệu rất có ích cho
người sử dụng chương
trình và cho việc hoàn
thiện thêm chưong
trình
Tất cả 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ả
5'
Trang 7VI Nhận xét, rút kinh nghiệm giờ giảng
Nhận xét đánh giá của giáo viên hướng dẫn