Kiến thức: Biết các bước cơ bản khi tiến hành giả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
Trang 1Bài 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 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: nhận biết và giải được 1 số bài toán đơn giản.
3 Thái độ: ham thích và tích cực đóng góp bài học.
II Đồ dùng dạy học:
Giáo viên: SGK, SGV
Học sinh: SGK
III Tiến trình lên lớp:
1 Ổn định lớp và kiểm tra sĩ số (2’):
2 Kiểm tra bài cũ: (5’)
Thế nào ngôn ngữ máy ?
Thế nào là hợp ngữ ?
Để máy tính có thể thực hiện lệnh thì cần có chương trình gì ?
3 Tiến trình tiết dạy:
HOẠT ĐỘNG : Nêu tiến trình thực hiện giải bài toán trên máy tính
3’
3’
Bài 6: GIẢI BÀI TOÁN
TRÊN MÁY TÍNH
Các bư ớc giải bài toán
- Xác định bài toán
- Lựa chọn và xây dựng thuật toán
- Viết chương trình
- Hiệu chỉnh
- Viết tài liệu
1 Xác định bài toán
Các em hãy cho biết, để giải một bài toán trên máy tính chúng ta cần thực hiện những công việc gì?
Trong một bài toán có thể
có nhiều thuật toán khác nhau
do đó chúng ta cũng phải lựa chọn thuật toán tối ưu Ngoài
ra, chúng ta cần phải viết một dãy lệnh để tạo thành chương trình, hiệu chỉnh lại chương trình và viết tài liệu sử dụng chương trình Đây chính là các bước để giải một bài toán
Các em hãy nhắc lại khi xác định bài toán chúng ta phải xác định những yếu tố nào ?
Xác định input, output của bài toán
Ý tưởng giải bài toán
và thuật toán
Input và Output
Trang 25’
3’
10’
Xác định phần INPUT và OUTPUT
của bài toán 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
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, có thể có nhiều thuật toán để giải
Do đó 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
Thuật toán tối ưu: là thuật toán
có các tiêu chí sau:
- Dể hiểu
- Trình bày dể nhìn
- Thời gian chạy nhanh
- Tốn ít bộ nhớ
b Biểu diễn thuật toán
Ví dụ:tìm ước chung lớn nhất (UCLN)
của 2 số nguyên dương M và N
Xác định bài toán.
- Input: nhập M,N (M,N > 0)
- Output: UCLN(M,N)
Ý tưởng: sử dụng những điều đã
biết sau:
- Nếu M=N thì giá trị chung đó là
UCLN(M,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)
Như vậy, input và output là hai thành phần cần xác định để giải bài toán Trong quá trình
từ input cho đến khi tìm được Output chúng ta cần có những thao tác gì tiếp theo ?
Trong một bài toán có thể
có nhiều thuật toán Do đó chúng ta cần lựa chọn thuật toán nào tối ưu để giải bài toán
đã cho
Như vậy, thế nào là thuật toán tối ưu ?
Thuật toán phải làm cho người đọc nhìn thấy và hiểu chúng ta giải bài toán như thế nào Tốc độ là thành phần không thể thiếu đối với những người lập trình chuyên nghiệp
Sau khi tìm và lựa chọn được thuật toán Bước tiếp theo
là chúng ta biểu diễn thuật toán
Sử dụng ví dụ SGK – 48)
Em nào hãy xác định bài toán
Em nào trình bày ý tưởng để giải bài toán trên ?
Giáo viên nhận xét và chính xác hoá lại
Các em hãy biểu diễn thuật toán theo cách liệt kê và sơ đồ khối ?
Cần phải qua thao tác tìm ý tưởng và tìm thuật toán
- Dể hiểu
- Trình bày dể nhìn
- Thời gian chạy nhanh
- Tốn ít bộ nhớ
- Input: nhập M,N (M,N > 0)
- Output:
UCLN(M,N)
- Nếu M=N thì giá trị chung đó là
UCLN(M,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)
Cách liệt kê
B1: Nhập M, N;
B2: Nếu M = N thì
Trang 32’
Thuật toán
Cách liệt kê
B1: Nhập M, N;
B2: Nếu M = N thì UCLN = M;
B3: Nếu M < N thì N = N – M, quay
lại B2;
B4: Nếu M > N thì M = M – N, quay
lại B2;
B5: đưa ra kết quả UCLN
Sơ đồ khối (SGK-49)
3 Viết chương trình
Là việc 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 ta 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 Viết chương tình trong ngôn ngữ
nào thì cần phải tuân theo đúng quy
định ngữ pháp của ngôn ngữ đó
4 Hiệu chỉnh
Sau khi viết xong chương trình cần
phải thử chương trình bằng một số
Input đặc trưng Trong quá trình thử
này nếu phát hiện ra sai sót thì phải sửa
lại chương trình Quá trình này gọi là
hiệu chỉnh
Chúng ta đã biểu diễn thuật toán xong Như thế thuật toán trên đã có thể giải bài toán trên máy tính được chưa ? vì sao ?
Như vậy, chúng ta cần biểu diễn thuật toán qua ngôn ngữ lập trình Cách làm như vậy gọi
là viết chương trình
Mỗi ngôn ngữ lập trình có một cú pháp riêng, do đó cần phải tuân thủ theo cú pháp của mỗi ngôn ngữ lập trình
Mọi thuật toán chúng ta đưa
ra đều thành công hết phải không?
Giả sử chương trình chúng
ta viết sai thì chúng ta cần làm gì?
Cách làm như vậy gọi là hiệu chỉnh chương trình
Sau khi chương trình đã
UCLN = M;
B3: Nếu M < N thì N
= N – M, quay lại B2; B4: Nếu M > N thì M
= M – N, quay lại B2; B5: đưa ra kết quả UCLN
Sơ đồ khối (SGK-49)
Chưa, vì thuật toán chưa được diễn đạt qua ngôn ngữ lập trình
Không, chúng ta cần thử lại mới biêt đúng, sai
Cần chỉnh sửa lại cho đúng
Trang 42’ 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 Tài liệu
này 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
hoàn thành, để người khác sử dụng được chương trình đó thì cần phải có tài liệu hướng dẫn
sử dụng Quá trình như vậy, người ta gọi là viết tài liệu
4 Củng cố: (3’)
Các bước để giải bài toán trên máy tính,
Tiêu chuẩn lựa chọn thuật toán
5 Dặn dò: (2’)
Về nhà học bài,
Xem trước bài 7