Bài 6. Giải bài toán trên máy tính

- 0 / 0
(Tài liệu chưa được thẩm định)
Nguồn:
Người gửi: Hồ Thị Nghĩa
Ngày gửi: 08h:40' 05-11-2011
Dung lượng: 580.5 KB
Số lượt tải: 115
Nguồn:
Người gửi: Hồ Thị Nghĩa
Ngày gửi: 08h:40' 05-11-2011
Dung lượng: 580.5 KB
Số lượt tải: 115
Số lượt thích:
0 người
Kiểm tra bài cũ
Có 3 loại NNLT: ngôn ngữ máy, hợp ngữ và ngôn ngữ bậc cao
Ngôn ngữ máy: là ngôn ngữ duy nhất để viết chương trình mà máy tính trực tiếp hiểu và thực hiện được
ưu điểm: Khai thác triệt để đặc điểm phần cứng của máy
Nhược điểm: Khó khăn trong việc viết và hiểu chương trình
Có mấy loại ngôn ngữ lập trình?
Trình bày đặc điểm của các ngôn ngữ lập trình, liệt kê một số ngôn ngữ lập trình bậc cao?
Hợp ngữ : là ngôn ngữ cho phép người lập trình sử dụng một số từ để thể hiện các lệnh cần thực hiện
Ưu điểm: Sử dụng một số từ viết tắt bằng tiếng anh nên dễ hiểu hơn
Nhược điểm: vẫn còn phức tạp chỉ phù hợp với nhà lập trình chuyên nghiệp
Ngôn ngữ lập trình bậc cao: các câu lệnh gần với ngôn ngữ tự nhiên, độc lập, dễ hiểu,không phụ thuộc vào từng loại máy
Một số NNLT bậc cao: PasCal, C, C++, Visual Basic, .NET,…
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 trên máy tính?
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
Bước 4: Hiệu chỉnh
Bước 5: Viết tài liệu
Bước 1: Xác định bài toán
Tìm ra Input ,Output và mối quan hệ giữa chúng
Ví dụ: Xác định bài toán
Giải phương trình bậc 2 : ax2 + bx +c =0 ( a#0)
Input: Cho a,b,c ( a#0)
Output: Tất cả các nghiệm thỏa mãn ax2 + bx + c=0
Lưu ý: Cần xác định kĩ nhằm lựa chọn cấu trúc dữ liệu và ngôn ngữ lập trình thích hợp.
Xác định bài toán tức là ta phải làm gì?
Bước 2. Lựa chọn hoặc thiết kế thuật toán
Bài toán Thuật toán
Phải chọn thuật toán tối ưu nhất trong những thuật toán đưa ra.
4 tiêu chí:
Dễ hiểu
Trình bày dễ nhìn
Thời gian chạy nhanh
Tốn ít bộ nhớ.
1 - n
1 - 1
Một bài toán có nhiều thuật toán để giải không?
Một thuật toán giải được nhiều bài toán không?
Lựa chọn thuật toán dựa trên các tiêu chí nào?
a. Lựa chọn thuật toán
Bước 2. Lựa chọn hoặc thiết kế thuật toán
b. Diễn tả thuật toán
2 cách: Liệt kê và Sơ đồ khối
Ví dụ: Giải phương trình bậc 2: ax2 + bx +c=0 (a#0)
Ý tưởng:
Nhận xét: = b2 - 4ac
- Nếu > 0 thì thông báo phương trình có 2 nghiệm phân biệt
- Nếu =0 thì thông báo phương trình có nghiệm kép
- Nếu < 0 thì thông báo phương trình vô nghiệm
Thuật toán:
Cách liệt kê
Bước 1: Nhập a, b,c .
Bước 2: ∆b2 – 4ac
Bước 3: Nếu ∆< 0 thì kl: pt vô no rồi kt
Bước 4: Nếu ∆= 0 thì kl: pt có nghiệm kép là x –b/2a rồi kt
Bước 5: Nếu ∆> 0 thì kl: pt có 2 nghiệm là x1,2 (-b±√∆)/2a rồi kt
Có những cách nào để diễn tả thuật toán?
Bước 2. Lựa chọn hoặc thiết kế thuật toán
- Sơ đồ khối:
Nhập a,b,c
<0
Pt vô nghiệm,kt
Đúng
Đúng
Sai
Pt có nghiệm kép x-b/2a,kt
Pt co 2 nghiệm phân biệt
, kt
b*b –4*a*c
=0
Sai
Bước 2. Lựa chọn hoặc thiết kế thuật toán
Mô phỏng thuật toán
Nhập a,b,c
<0
Pt vô nghiệm,kt
Đúng
Đúng
Sai
Pt có nghiệm kép x-b/2a
b*b –4*a*c
Sai
=0
Pt co 2 nghiệm phân biệt
,kt
Nhập 1,-5,6
1
1<0
1=0
Pt có 2 nghiệm phân biệt x1=3,x2=2
Nhập 1,-4,4
0
0<0
0=0
Pt có nghiệm kép x1=x2=2
Nhập 1,4,8
-16
-16<0
Pt vô nghiệm
Bước 3. Viết chương trình
Phải 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
Lưu ý:
Viết chương trì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ữ đó
Chương trình dịch chỉ có thể phát hiện và thông báo các lỗi về mặt ngữ pháp
Trước khi viết chương trình ta phải làm gì?
Bước 4. Hiệu chỉnh
Vd: xác định tính đúng đắn của chương trình giải phương trình bậc 2
Sử dụng 3 bộ Input
a=1, b=-5, c=6
a=1, b=-4, c=4
a=1, b=4, c=8
Bước 5. Viết tài liệu
Viết tài liệu:
Mô tả bài toán
Thuật toán
Thiết kế chương trình
Kết quả thử nghiệm
Hướng dẫn sử dụng chương trình.
=> 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
Cần viết những tài liệu gì?
Củng cố
Cần nắm được:
5 bước để giải bài toán trên máy tính
Công việc cụ thể của mỗi bước
Bài tập:
Nêu các bước giải bài toán tính tổng của dãy số nguyên.
Có 3 loại NNLT: ngôn ngữ máy, hợp ngữ và ngôn ngữ bậc cao
Ngôn ngữ máy: là ngôn ngữ duy nhất để viết chương trình mà máy tính trực tiếp hiểu và thực hiện được
ưu điểm: Khai thác triệt để đặc điểm phần cứng của máy
Nhược điểm: Khó khăn trong việc viết và hiểu chương trình
Có mấy loại ngôn ngữ lập trình?
Trình bày đặc điểm của các ngôn ngữ lập trình, liệt kê một số ngôn ngữ lập trình bậc cao?
Hợp ngữ : là ngôn ngữ cho phép người lập trình sử dụng một số từ để thể hiện các lệnh cần thực hiện
Ưu điểm: Sử dụng một số từ viết tắt bằng tiếng anh nên dễ hiểu hơn
Nhược điểm: vẫn còn phức tạp chỉ phù hợp với nhà lập trình chuyên nghiệp
Ngôn ngữ lập trình bậc cao: các câu lệnh gần với ngôn ngữ tự nhiên, độc lập, dễ hiểu,không phụ thuộc vào từng loại máy
Một số NNLT bậc cao: PasCal, C, C++, Visual Basic, .NET,…
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 trên máy tính?
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
Bước 4: Hiệu chỉnh
Bước 5: Viết tài liệu
Bước 1: Xác định bài toán
Tìm ra Input ,Output và mối quan hệ giữa chúng
Ví dụ: Xác định bài toán
Giải phương trình bậc 2 : ax2 + bx +c =0 ( a#0)
Input: Cho a,b,c ( a#0)
Output: Tất cả các nghiệm thỏa mãn ax2 + bx + c=0
Lưu ý: Cần xác định kĩ nhằm lựa chọn cấu trúc dữ liệu và ngôn ngữ lập trình thích hợp.
Xác định bài toán tức là ta phải làm gì?
Bước 2. Lựa chọn hoặc thiết kế thuật toán
Bài toán Thuật toán
Phải chọn thuật toán tối ưu nhất trong những thuật toán đưa ra.
4 tiêu chí:
Dễ hiểu
Trình bày dễ nhìn
Thời gian chạy nhanh
Tốn ít bộ nhớ.
1 - n
1 - 1
Một bài toán có nhiều thuật toán để giải không?
Một thuật toán giải được nhiều bài toán không?
Lựa chọn thuật toán dựa trên các tiêu chí nào?
a. Lựa chọn thuật toán
Bước 2. Lựa chọn hoặc thiết kế thuật toán
b. Diễn tả thuật toán
2 cách: Liệt kê và Sơ đồ khối
Ví dụ: Giải phương trình bậc 2: ax2 + bx +c=0 (a#0)
Ý tưởng:
Nhận xét: = b2 - 4ac
- Nếu > 0 thì thông báo phương trình có 2 nghiệm phân biệt
- Nếu =0 thì thông báo phương trình có nghiệm kép
- Nếu < 0 thì thông báo phương trình vô nghiệm
Thuật toán:
Cách liệt kê
Bước 1: Nhập a, b,c .
Bước 2: ∆b2 – 4ac
Bước 3: Nếu ∆< 0 thì kl: pt vô no rồi kt
Bước 4: Nếu ∆= 0 thì kl: pt có nghiệm kép là x –b/2a rồi kt
Bước 5: Nếu ∆> 0 thì kl: pt có 2 nghiệm là x1,2 (-b±√∆)/2a rồi kt
Có những cách nào để diễn tả thuật toán?
Bước 2. Lựa chọn hoặc thiết kế thuật toán
- Sơ đồ khối:
Nhập a,b,c
<0
Pt vô nghiệm,kt
Đúng
Đúng
Sai
Pt có nghiệm kép x-b/2a,kt
Pt co 2 nghiệm phân biệt
, kt
b*b –4*a*c
=0
Sai
Bước 2. Lựa chọn hoặc thiết kế thuật toán
Mô phỏng thuật toán
Nhập a,b,c
<0
Pt vô nghiệm,kt
Đúng
Đúng
Sai
Pt có nghiệm kép x-b/2a
b*b –4*a*c
Sai
=0
Pt co 2 nghiệm phân biệt
,kt
Nhập 1,-5,6
1
1<0
1=0
Pt có 2 nghiệm phân biệt x1=3,x2=2
Nhập 1,-4,4
0
0<0
0=0
Pt có nghiệm kép x1=x2=2
Nhập 1,4,8
-16
-16<0
Pt vô nghiệm
Bước 3. Viết chương trình
Phải 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
Lưu ý:
Viết chương trì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ữ đó
Chương trình dịch chỉ có thể phát hiện và thông báo các lỗi về mặt ngữ pháp
Trước khi viết chương trình ta phải làm gì?
Bước 4. Hiệu chỉnh
Vd: xác định tính đúng đắn của chương trình giải phương trình bậc 2
Sử dụng 3 bộ Input
a=1, b=-5, c=6
a=1, b=-4, c=4
a=1, b=4, c=8
Bước 5. Viết tài liệu
Viết tài liệu:
Mô tả bài toán
Thuật toán
Thiết kế chương trình
Kết quả thử nghiệm
Hướng dẫn sử dụng chương trình.
=> 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
Cần viết những tài liệu gì?
Củng cố
Cần nắm được:
5 bước để giải bài toán trên máy tính
Công việc cụ thể của mỗi bước
Bài tập:
Nêu các bước giải bài toán tính tổng của dãy số nguyên.
 







Các ý kiến mới nhất